SILC_FSM_* macro API changes.
[silc.git] / lib / silcclient / client_keyagr.c
index 52dca47c040be11f66ac6e3782fbc0fd95c6b742..63aed9d1dc065c0498105ffafeccbba4645c722a 100644 (file)
@@ -4,7 +4,7 @@
 
   Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 2001 - 2006 Pekka Riikonen
+  Copyright (C) 2001 - 2007 Pekka Riikonen
 
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -186,7 +186,7 @@ static void silc_client_keyagr_completion(SilcSKE ske,
   silc_client_keyagr_free(client, conn, client_entry);
 }
 
-/* Starts key agreement as responder.  */
+/* Starts key agreement as responder. */
 
 static void silc_client_process_key_agreement(SilcClient client,
                                              SilcClientConnection conn,
@@ -362,6 +362,8 @@ void silc_client_send_key_agreement(SilcClient client,
 
   if (!client_entry)
     return;
+  if (conn->internal->disconnected)
+    return;
 
   if (client_entry->internal.ke) {
     completion(client, conn, client_entry, SILC_KEY_AGREEMENT_ALREADY_STARTED,
@@ -414,7 +416,7 @@ void silc_client_send_key_agreement(SilcClient client,
       port = params->local_port;
       if (!port) {
        /* Get listener port */
-       int sock;
+       SilcSocket sock;
        silc_socket_stream_get_info(stream, &sock, NULL, NULL, NULL);
        port = silc_net_get_local_port(sock);
       }