]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - unix/uxplink.c
Giant const-correctness patch of doom!
[PuTTY.git] / unix / uxplink.c
index 4f991ba88551252e51c2f0067d98ecfcf43c933e..64c3cabcdacc66afd58e6ec87b9684e14725a863 100644 (file)
@@ -29,7 +29,7 @@ void *logctx;
 
 static struct termios orig_termios;
 
-void fatalbox(char *p, ...)
+void fatalbox(const char *p, ...)
 {
     struct termios cf;
     va_list ap;
@@ -46,7 +46,7 @@ void fatalbox(char *p, ...)
     }
     cleanup_exit(1);
 }
-void modalfatalbox(char *p, ...)
+void modalfatalbox(const char *p, ...)
 {
     struct termios cf;
     va_list ap;
@@ -63,7 +63,7 @@ void modalfatalbox(char *p, ...)
     }
     cleanup_exit(1);
 }
-void nonfatal(char *p, ...)
+void nonfatal(const char *p, ...)
 {
     struct termios cf;
     va_list ap;
@@ -75,7 +75,7 @@ void nonfatal(char *p, ...)
     fputc('\n', stderr);
     postmsg(&cf);
 }
-void connection_fatal(void *frontend, char *p, ...)
+void connection_fatal(void *frontend, const char *p, ...)
 {
     struct termios cf;
     va_list ap;
@@ -92,7 +92,7 @@ void connection_fatal(void *frontend, char *p, ...)
     }
     cleanup_exit(1);
 }
-void cmdline_error(char *p, ...)
+void cmdline_error(const char *p, ...)
 {
     struct termios cf;
     va_list ap;
@@ -119,8 +119,6 @@ char *platform_default_s(const char *name)
 {
     if (!strcmp(name, "TermType"))
        return dupstr(getenv("TERM"));
-     if (!strcmp(name, "UserName"))
-       return get_username();
     if (!strcmp(name, "SerialLine"))
        return dupstr("/dev/ttyS0");
     return NULL;
@@ -448,7 +446,7 @@ int from_backend_eof(void *frontend_handle)
     return FALSE;   /* do not respond to incoming EOF with outgoing */
 }
 
-int get_userpass_input(prompts_t *p, unsigned char *in, int inlen)
+int get_userpass_input(prompts_t *p, const unsigned char *in, int inlen)
 {
     int ret;
     ret = cmdline_get_passwd_input(p, in, inlen);
@@ -883,6 +881,18 @@ int main(int argc, char **argv)
      */
     cmdline_run_saved(conf);
 
+    /*
+     * If we have no better ideas for the remote username, use the local
+     * one, as 'ssh' does.
+     */
+    if (conf_get_str(conf, CONF_username)[0] == '\0') {
+       char *user = get_username();
+       if (user) {
+           conf_set_str(conf, CONF_username, user);
+           sfree(user);
+       }
+    }
+
     /*
      * Apply subsystem status.
      */