X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/a21a6a9ab0bfdbb0ea76a7c7d9a21d0f8ec70fa1..2833957974b5c33f4470ef8772efd6ba746d205b:/windows/wincons.c diff --git a/windows/wincons.c b/windows/wincons.c index 757f753b..d3ff56d1 100644 --- a/windows/wincons.c +++ b/windows/wincons.c @@ -33,8 +33,21 @@ void cleanup_exit(int code) exit(code); } -void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, - char *keystr, char *fingerprint) +void set_busy_status(void *frontend, int status) +{ +} + +void notify_remote_exit(void *frontend) +{ +} + +void timer_change_notify(long next) +{ +} + +int verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, + char *keystr, char *fingerprint, + void (*callback)(void *ctx, int result), void *ctx) { int ret; HANDLE hin; @@ -99,12 +112,12 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, ret = verify_host_key(host, port, keytype, keystr); if (ret == 0) /* success - key matched OK */ - return; + return 1; if (ret == 2) { /* key was different */ if (console_batch_mode) { fprintf(stderr, wrongmsg_batch, keytype, fingerprint); - cleanup_exit(1); + return 0; } fprintf(stderr, wrongmsg, keytype, fingerprint); fflush(stderr); @@ -112,7 +125,7 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, if (ret == 1) { /* key was absent */ if (console_batch_mode) { fprintf(stderr, absentmsg_batch, keytype, fingerprint); - cleanup_exit(1); + return 0; } fprintf(stderr, absentmsg, keytype, fingerprint); fflush(stderr); @@ -128,9 +141,10 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, if (line[0] != '\0' && line[0] != '\r' && line[0] != '\n') { if (line[0] == 'y' || line[0] == 'Y') store_host_key(host, port, keytype, keystr); + return 1; } else { fprintf(stderr, abandoned); - cleanup_exit(0); + return 0; } } @@ -139,21 +153,21 @@ void update_specials_menu(void *frontend) } /* - * 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) +int askalg(void *frontend, const char *algtype, const char *algname, + void (*callback)(void *ctx, int result), void *ctx) { HANDLE hin; DWORD savemode, i; 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"; @@ -161,17 +175,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); - cleanup_exit(1); + fprintf(stderr, msg_batch, algtype, algname); + return 0; } - fprintf(stderr, msg, - (cs == 0) ? "" : - (cs == 1) ? "client-to-server " : "server-to-client ", - ciphername); + fprintf(stderr, msg, algtype, algname); fflush(stderr); hin = GetStdHandle(STD_INPUT_HANDLE); @@ -182,10 +190,10 @@ void askcipher(void *frontend, char *ciphername, int cs) SetConsoleMode(hin, savemode); if (line[0] == 'y' || line[0] == 'Y') { - return; + return 1; } else { fprintf(stderr, abandoned); - cleanup_exit(0); + return 0; } } @@ -193,7 +201,8 @@ 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). */ -int askappend(void *frontend, Filename filename) +int askappend(void *frontend, Filename filename, + void (*callback)(void *ctx, int result), void *ctx) { HANDLE hin; DWORD savemode, i;