And just to prove that psftp.c really is now platform-independent
[u/mdw/putty] / unix / uxcons.c
index 844b674..5e3949b 100644 (file)
@@ -16,6 +16,8 @@
 
 int console_batch_mode = FALSE;
 
 
 int console_batch_mode = FALSE;
 
+static void *console_logctx = NULL;
+
 /*
  * Clean up and exit.
  */
 /*
  * Clean up and exit.
  */
@@ -25,9 +27,14 @@ void cleanup_exit(int code)
      * Clean up.
      */
     sk_cleanup();
      * Clean up.
      */
     sk_cleanup();
+    random_save_seed();
     exit(code);
 }
 
     exit(code);
 }
 
+void update_specials_menu(void *frontend)
+{
+}
+
 void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
                         char *keystr, char *fingerprint)
 {
 void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
                         char *keystr, char *fingerprint)
 {
@@ -36,13 +43,13 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
     static const char absentmsg_batch[] =
        "The server's host key is not cached. You have no guarantee\n"
        "that the server is the computer you think it is.\n"
     static const char absentmsg_batch[] =
        "The server's host key is not cached. You have no guarantee\n"
        "that the server is the computer you think it is.\n"
-       "The server's key fingerprint is:\n"
+       "The server's %s key fingerprint is:\n"
        "%s\n"
        "Connection abandoned.\n";
     static const char absentmsg[] =
        "The server's host key is not cached. You have no guarantee\n"
        "that the server is the computer you think it is.\n"
        "%s\n"
        "Connection abandoned.\n";
     static const char absentmsg[] =
        "The server's host key is not cached. You have no guarantee\n"
        "that the server is the computer you think it is.\n"
-       "The server's key fingerprint is:\n"
+       "The server's %s key fingerprint is:\n"
        "%s\n"
        "If you trust this host, enter \"y\" to add the key to\n"
        "PuTTY's cache and carry on connecting.\n"
        "%s\n"
        "If you trust this host, enter \"y\" to add the key to\n"
        "PuTTY's cache and carry on connecting.\n"
@@ -58,7 +65,7 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
        "cached. This means that either the server administrator\n"
        "has changed the host key, or you have actually connected\n"
        "to another computer pretending to be the server.\n"
        "cached. This means that either the server administrator\n"
        "has changed the host key, or you have actually connected\n"
        "to another computer pretending to be the server.\n"
-       "The new key fingerprint is:\n"
+       "The new %s key fingerprint is:\n"
        "%s\n"
        "Connection abandoned.\n";
     static const char wrongmsg[] =
        "%s\n"
        "Connection abandoned.\n";
     static const char wrongmsg[] =
@@ -67,7 +74,7 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
        "cached. This means that either the server administrator\n"
        "has changed the host key, or you have actually connected\n"
        "to another computer pretending to be the server.\n"
        "cached. This means that either the server administrator\n"
        "has changed the host key, or you have actually connected\n"
        "to another computer pretending to be the server.\n"
-       "The new key fingerprint is:\n"
+       "The new %s key fingerprint is:\n"
        "%s\n"
        "If you were expecting this change and trust the new key,\n"
        "enter \"y\" to update PuTTY's cache and continue connecting.\n"
        "%s\n"
        "If you were expecting this change and trust the new key,\n"
        "enter \"y\" to update PuTTY's cache and continue connecting.\n"
@@ -92,18 +99,18 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
 
     if (ret == 2) {                   /* key was different */
        if (console_batch_mode) {
 
     if (ret == 2) {                   /* key was different */
        if (console_batch_mode) {
-           fprintf(stderr, wrongmsg_batch, fingerprint);
+           fprintf(stderr, wrongmsg_batch, keytype, fingerprint);
            cleanup_exit(1);
        }
            cleanup_exit(1);
        }
-       fprintf(stderr, wrongmsg, fingerprint);
+       fprintf(stderr, wrongmsg, keytype, fingerprint);
        fflush(stderr);
     }
     if (ret == 1) {                   /* key was absent */
        if (console_batch_mode) {
        fflush(stderr);
     }
     if (ret == 1) {                   /* key was absent */
        if (console_batch_mode) {
-           fprintf(stderr, absentmsg_batch, fingerprint);
+           fprintf(stderr, absentmsg_batch, keytype, fingerprint);
            cleanup_exit(1);
        }
            cleanup_exit(1);
        }
-       fprintf(stderr, absentmsg, fingerprint);
+       fprintf(stderr, absentmsg, keytype, fingerprint);
        fflush(stderr);
     }
 
        fflush(stderr);
     }
 
@@ -183,7 +190,7 @@ void askcipher(void *frontend, char *ciphername, int cs)
  * Ask whether to wipe a session log file before writing to it.
  * Returns 2 for wipe, 1 for append, 0 for cancel (don't log).
  */
  * Ask whether to wipe a session log file before writing to it.
  * Returns 2 for wipe, 1 for append, 0 for cancel (don't log).
  */
-int askappend(void *frontend, char *filename)
+int askappend(void *frontend, Filename filename)
 {
     static const char msgtemplate[] =
        "The session log file \"%.*s\" already exists.\n"
 {
     static const char msgtemplate[] =
        "The session log file \"%.*s\" already exists.\n"
@@ -200,15 +207,12 @@ int askappend(void *frontend, char *filename)
 
     char line[32];
 
 
     char line[32];
 
-    if (cfg.logxfovr != LGXF_ASK) {
-       return ((cfg.logxfovr == LGXF_OVR) ? 2 : 1);
-    }
     if (console_batch_mode) {
     if (console_batch_mode) {
-       fprintf(stderr, msgtemplate_batch, FILENAME_MAX, filename);
+       fprintf(stderr, msgtemplate_batch, FILENAME_MAX, filename.path);
        fflush(stderr);
        return 0;
     }
        fflush(stderr);
        return 0;
     }
-    fprintf(stderr, msgtemplate, FILENAME_MAX, filename);
+    fprintf(stderr, msgtemplate, FILENAME_MAX, filename.path);
     fflush(stderr);
 
     {
     fflush(stderr);
 
     {
@@ -256,8 +260,15 @@ void old_keyfile_warning(void)
     fputs(message, stderr);
 }
 
     fputs(message, stderr);
 }
 
-void logevent(void *frontend, char *string)
+void console_provide_logctx(void *logctx)
+{
+    console_logctx = logctx;
+}
+
+void logevent(void *frontend, const char *string)
 {
 {
+    if (console_logctx)
+       log_eventlog(console_logctx, string);
 }
 
 int console_get_line(const char *prompt, char *str,
 }
 
 int console_get_line(const char *prompt, char *str,
@@ -290,7 +301,7 @@ int console_get_line(const char *prompt, char *str,
        str[i] = '\0';
 
        if (is_pw)
        str[i] = '\0';
 
        if (is_pw)
-           fputs("\r\n", stdout);
+           fputs("\n", stdout);
     }
     return 1;
 }
     }
     return 1;
 }