Merge branch 'master' of git://valera-ext.nynaeve.net/silc into silc.1.1.branch
[silc.git] / apps / irssi / src / silc / core / silc-servers.c
index e16fb02cdc056fef1116a982f49259c3bf0d7483..9dd1c8e25030a81b18c99fcef6c70540e3c327fd 100644 (file)
@@ -1,7 +1,7 @@
 /*
   silc-server.c : irssi
 
-  Copyright (C) 2000 - 2007 Timo Sirainen
+  Copyright (C) 2000 - 2008 Timo Sirainen
                             Pekka Riikonen <priikone@silcnet.org>
 
   This program is free software; you can redistribute it and/or modify
@@ -415,6 +415,7 @@ static void sig_connected_stream_created(SilcSocketStreamStatus status,
   params.timeout_secs = settings_get_int("key_exchange_timeout_secs");
   params.rekey_secs = settings_get_int("key_exchange_rekey_secs");
   params.pfs = settings_get_bool("key_exchange_rekey_pfs");
+  params.context = server;
 
   /* Try to read detached session data and use it if found. */
   file = silc_get_session_filename(server);
@@ -466,6 +467,12 @@ static void sig_disconnected(SILC_SERVER_REC *server)
   if (!IS_SILC_SERVER(server))
     return;
 
+  /* If we have a prompt in progress, then abort it. */
+  if (server->prompt_op) {
+    silc_async_abort(server->prompt_op, NULL, NULL);
+    server->prompt_op = NULL;
+  }
+
   if (server->conn) {
     /* Close connection */
     silc_client_close_connection(silc_client, server->conn);