silcclient: Add generic client entry operation context
[silc.git] / lib / silcclient / client_connect.c
index de87143f047ff3f9dc6be0eb51df4c66b2743fd9..de877d54dbfabd7c37081ccbf73deed948633b9e 100644 (file)
@@ -4,7 +4,7 @@
 
   Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 2006 - 2007 Pekka Riikonen
+  Copyright (C) 2006 - 2014 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
@@ -262,6 +262,9 @@ static void silc_client_rekey_completion(SilcSKE ske,
     silc_ske_free(conn->internal->ske);
     conn->internal->ske = NULL;
     silc_fsm_finish(fsm);
+
+    /* Close connection */
+    silc_client_close_connection(client, conn);
     return;
   }
 
@@ -465,7 +468,7 @@ SILC_FSM_STATE(silc_client_st_connect_key_exchange)
 {
   SilcClientConnection conn = fsm_context;
   SilcClient client = conn->client;
-  SilcSKEParamsStruct params;
+  SilcSKEParamsStruct params = {};
   SilcClientID cid;
 
   SILC_LOG_DEBUG(("Starting key exchange protocol"));
@@ -507,12 +510,6 @@ SILC_FSM_STATE(silc_client_st_connect_key_exchange)
     /** Run key exchange (TCP) */
     silc_fsm_next(fsm, silc_client_st_connect_auth_resolve);
 
-  /* Old server version requires empty Client ID in packets.  Remove this
-     backwards support somepoint after 1.1 server is released. */
-  memset(&cid, 0, sizeof(cid));
-  cid.ip.data_len = 4;
-  silc_packet_set_ids(conn->stream, SILC_ID_CLIENT, &cid, 0, NULL);
-
   SILC_FSM_CALL(conn->internal->op = silc_ske_initiator(conn->internal->ske,
                                                        conn->stream,
                                                        &params, NULL));