From: Pekka Riikonen Date: Tue, 1 May 2007 16:50:46 +0000 (+0000) Subject: Added backwards support for old server. Send empty Client ID X-Git-Tag: 1.2.beta1~356 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=3aff28a0144848f416058ac40bbdb7e0d9567a49;p=crypto.git Added backwards support for old server. Send empty Client ID during SKE. --- diff --git a/lib/silcclient/client_connect.c b/lib/silcclient/client_connect.c index ee8eb611..f43e13d3 100644 --- a/lib/silcclient/client_connect.c +++ b/lib/silcclient/client_connect.c @@ -180,7 +180,7 @@ static void silc_client_ke_completion(SilcSKE ske, silc_ske_free_rekey_material(rekey); silc_fsm_next(fsm, silc_client_st_connect_error); - SILC_FSM_CALL_CONTINUE(fsm); + SILC_FSM_CALL_CONTINUE_SYNC(fsm); return; } @@ -202,7 +202,7 @@ static void silc_client_ke_completion(SilcSKE ske, silc_ske_free_rekey_material(rekey); silc_fsm_next(fsm, silc_client_st_connect_error); - SILC_FSM_CALL_CONTINUE(fsm); + SILC_FSM_CALL_CONTINUE_SYNC(fsm); return; } @@ -223,7 +223,7 @@ static void silc_client_ke_completion(SilcSKE ske, silc_ske_free_rekey_material(rekey); silc_fsm_next(fsm, silc_client_st_connect_error); - SILC_FSM_CALL_CONTINUE(fsm); + SILC_FSM_CALL_CONTINUE_SYNC(fsm); return; } @@ -463,6 +463,7 @@ SILC_FSM_STATE(silc_client_st_connect_key_exchange) SilcClientConnection conn = fsm_context; SilcClient client = conn->client; SilcSKEParamsStruct params; + SilcClientID cid; SILC_LOG_DEBUG(("Starting key exchange protocol")); @@ -503,6 +504,12 @@ 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, ¶ms, NULL));