From 3aff28a0144848f416058ac40bbdb7e0d9567a49 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Tue, 1 May 2007 16:50:46 +0000 Subject: [PATCH] Added backwards support for old server. Send empty Client ID during SKE. --- lib/silcclient/client_connect.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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)); -- 2.43.0