X-Git-Url: http://git.silc.fi/gitweb/?p=silc.git;a=blobdiff_plain;f=apps%2Firssi%2Fsrc%2Fsilc%2Fcore%2Fclient_ops.c;h=b3b6cdbc59b2112d4eab5898dae76dd594cd28d0;hp=25db9eae17f7fcce96171ca588cd9594e9a15ac7;hb=b953803ae59ea3e66e3ed799b90dbb66a9002fce;hpb=bd463a75d37dd2ec164dc14dee4bb2550d6a778a diff --git a/apps/irssi/src/silc/core/client_ops.c b/apps/irssi/src/silc/core/client_ops.c index 25db9eae..b3b6cdbc 100644 --- a/apps/irssi/src/silc/core/client_ops.c +++ b/apps/irssi/src/silc/core/client_ops.c @@ -2487,8 +2487,8 @@ silc_verify_public_key_internal(SilcClient client, SilcClientConnection conn, "server" : "client"); int i; + server = (SILC_SERVER_REC*)conn->context; if (conn_type != SILC_CONN_CLIENT) { - server = (SILC_SERVER_REC*)conn->context; SILC_VERIFY(server); if (!server) { if (completion) @@ -2497,6 +2497,12 @@ silc_verify_public_key_internal(SilcClient client, SilcClientConnection conn, } } + /* If we have pending public key prompt already up */ + if (server && server->prompt_op) { + silc_async_abort(server->prompt_op, NULL, NULL); + server->prompt_op = NULL; + } + if (silc_pkcs_get_type(public_key) != SILC_PKCS_SILC) { printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, SILCTXT_PUBKEY_UNSUPPORTED,