X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/cbe2d68fd7c7c7bac692b3a2d200a5d2429ab201..0a4022a169cfdd133882ecae233352e769685a1d:/unix/uxcons.c diff --git a/unix/uxcons.c b/unix/uxcons.c index 80ed246e..b5bf840b 100644 --- a/unix/uxcons.c +++ b/unix/uxcons.c @@ -16,6 +16,8 @@ int console_batch_mode = FALSE; +static void *console_logctx = NULL; + /* * Clean up and exit. */ @@ -33,6 +35,14 @@ void update_specials_menu(void *frontend) { } +void notify_remote_exit(void *frontend) +{ +} + +void timer_change_notify(long next) +{ +} + void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, char *keystr, char *fingerprint) { @@ -41,13 +51,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" - "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" - "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" @@ -63,7 +73,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" - "The new key fingerprint is:\n" + "The new %s key fingerprint is:\n" "%s\n" "Connection abandoned.\n"; static const char wrongmsg[] = @@ -72,7 +82,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" - "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" @@ -97,18 +107,18 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, if (ret == 2) { /* key was different */ if (console_batch_mode) { - fprintf(stderr, wrongmsg_batch, fingerprint); + fprintf(stderr, wrongmsg_batch, keytype, fingerprint); cleanup_exit(1); } - fprintf(stderr, wrongmsg, fingerprint); + fprintf(stderr, wrongmsg, keytype, fingerprint); 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); } - fprintf(stderr, absentmsg, fingerprint); + fprintf(stderr, absentmsg, keytype, fingerprint); fflush(stderr); } @@ -133,18 +143,17 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, } /* - * Ask whether the selected cipher is acceptable (since it was + * Ask whether the selected algorithm is acceptable (since it was * below the configured 'warn' threshold). - * cs: 0 = both ways, 1 = client->server, 2 = server->client */ -void askcipher(void *frontend, char *ciphername, int cs) +void askalg(void *frontend, const char *algtype, const char *algname) { static const char msg[] = - "The first %scipher supported by the server is\n" + "The first %s supported by the server is\n" "%s, which is below the configured warning threshold.\n" "Continue with connection? (y/n) "; static const char msg_batch[] = - "The first %scipher supported by the server is\n" + "The first %s supported by the server is\n" "%s, which is below the configured warning threshold.\n" "Connection abandoned.\n"; static const char abandoned[] = "Connection abandoned.\n"; @@ -152,17 +161,11 @@ void askcipher(void *frontend, char *ciphername, int cs) char line[32]; if (console_batch_mode) { - fprintf(stderr, msg_batch, - (cs == 0) ? "" : - (cs == 1) ? "client-to-server " : "server-to-client ", - ciphername); + fprintf(stderr, msg_batch, algtype, algname); cleanup_exit(1); } - fprintf(stderr, msg, - (cs == 0) ? "" : - (cs == 1) ? "client-to-server " : "server-to-client ", - ciphername); + fprintf(stderr, msg, algtype, algname); fflush(stderr); { @@ -258,9 +261,15 @@ void old_keyfile_warning(void) fputs(message, stderr); } +void console_provide_logctx(void *logctx) +{ + console_logctx = logctx; +} + void logevent(void *frontend, const char *string) { - log_eventlog(logctx, string); + if (console_logctx) + log_eventlog(console_logctx, string); } int console_get_line(const char *prompt, char *str, @@ -272,6 +281,7 @@ int console_get_line(const char *prompt, char *str, if (console_batch_mode) { if (maxlen > 0) str[0] = '\0'; + return 0; } else { tcgetattr(0, &oldmode); newmode = oldmode; @@ -294,8 +304,9 @@ int console_get_line(const char *prompt, char *str, if (is_pw) fputs("\n", stdout); + + return 1; } - return 1; } void frontend_keypress(void *handle) @@ -305,3 +316,18 @@ void frontend_keypress(void *handle) */ return; } + +int is_interactive(void) +{ + return isatty(0); +} + +/* + * X11-forwarding-related things suitable for console. + */ + +const char platform_x11_best_transport[] = "unix"; + +char *platform_get_x_display(void) { + return dupstr(getenv("DISPLAY")); +}