* Restore the proper tty parameters when exiting because of a dead server connection.
authorArt Cancro <ajc@citadel.org>
Fri, 16 Jan 2009 20:49:12 +0000 (20:49 +0000)
committerArt Cancro <ajc@citadel.org>
Fri, 16 Jan 2009 20:49:12 +0000 (20:49 +0000)
citadel/getmail.c
citadel/ipc_c_tcp.c
citadel/sendcommand.c
citadel/userlist.c
citadel/whobbs.c

index 104921162b5e2c17fc65ecb181d7042ec4efd9a6..03efd8ba28dc64989a538e5d53eccded66d70b05 100644 (file)
@@ -396,3 +396,12 @@ int main(int argc, char **argv)
        }
        return 0;
 }
+
+
+/*
+ * Stub function
+ */
+void stty_ctdl(int cmd) {
+}
+
+
index bc68721c6aa9e768199ef70027fe8dce2843abe3..787ac36746928ca4ce97ca4b7b280d18da271f92 100644 (file)
 #include "snprintf.h"
 #endif
 
-/*
- * FIXME: rewrite all of Ford's stuff here, it won't work with multiple
- * instances
- */
+/* Note that some of these functions may not work with multiple instances. */
 
 static void (*deathHook)(void) = NULL;
 int (*error_printf)(char *s, ...) = (int (*)(char *, ...))printf;
@@ -48,39 +45,27 @@ void setIPCErrorPrintf(int (*func)(char *s, ...)) {
 }
 
 void connection_died(CtdlIPC* ipc, int using_ssl) {
-       if (deathHook != NULL)
+       if (deathHook != NULL) {
                deathHook();
+       }
 
-       error_printf("\r\nYour connection to %s is broken.\n",
-                       ipc->ServInfo.humannode);
+       stty_ctdl(SB_RESTORE);
+       fprintf(stderr, "\r\n\n\n");
+       fprintf(stderr, "Your connection to %s is broken.\n", ipc->ServInfo.humannode);
 
 #ifdef HAVE_OPENSSL
        if (using_ssl) {
-               error_printf("Last error: %s\n",
-                               ERR_reason_error_string(ERR_get_error()));
+               printf(stderr, "Last error: %s\n", ERR_reason_error_string(ERR_get_error()));
+               SSL_free(ipc->ssl);
+               ipc->ssl = NULL;
        } else
 #endif
-               error_printf("Last error: %s\n", strerror(errno));
+               fprintf(stderr, "Last error: %s\n", strerror(errno));
 
-       error_printf("Please re-connect and log in again.\n");
+       fprintf(stderr, "Please re-connect and log in again.\n");
        fflush(stderr);
        fflush(stdout);
-
-#ifdef HAVE_OPENSSL
-       SSL_free(ipc->ssl);
-       ipc->ssl = NULL;
-#endif
        shutdown(ipc->sock, 2);
        ipc->sock = -1;
-        printf ("About to exit because of dead socket.\n");
-        exit (1);
-}
-
-
-/*
-static void ipc_timeout(int signum)
-{
-       error_printf("\rConnection timed out.\n");
-       logoff(NULL, 3);
+        exit(1);
 }
-*/
index 45ff15c5daa99c089879bbe54f4aa31dae4da871..2f8a3cfdb86e907f135525c0c382b93d080b7f99 100644 (file)
@@ -305,3 +305,11 @@ int main(int argc, char **argv)
        }
        return 0;
 }
+
+/*
+ * Stub function
+ */
+void stty_ctdl(int cmd) {
+}
+
+
index 33a0bc85fe27b290b6703cb40f16b5f796d5c89f..3f78cea6fb0e03b61aa2c852984de2864838a2d8 100644 (file)
@@ -105,3 +105,11 @@ char *strerror(int e)
        return(buf);
 }
 #endif
+
+
+/*
+ * Stub function
+ */
+void stty_ctdl(int cmd) {
+}
+
index f4114bb55802da9686328108c23c7b765d6d2162..e3523aae96d0aace9574da5ca3bd494abd754155 100644 (file)
@@ -182,6 +182,13 @@ int main(int argc, char **argv)
 }
 
 
+/*
+ * Stub function
+ */
+void stty_ctdl(int cmd) {
+}
+
+
 #ifndef HAVE_STRERROR
 /*
  * replacement strerror() for systems that don't have it