X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcclient%2Fclient_connect.c;h=ec7e81e50ed3aed892a4859256f737108fc5971a;hb=2899e1a5409cea132653cd67d4e33e9313872e95;hp=c40856a354cebc76eb745beae65d2c10f43b5f12;hpb=bfd23992de9af6392c1a8f8d9b4afd5b353e852c;p=silc.git diff --git a/lib/silcclient/client_connect.c b/lib/silcclient/client_connect.c index c40856a3..ec7e81e5 100644 --- a/lib/silcclient/client_connect.c +++ b/lib/silcclient/client_connect.c @@ -658,6 +658,10 @@ SILC_FSM_STATE(silc_client_st_connected) SilcClientConnection conn = fsm_context; SilcClient client = conn->client; + /* Get SILC protocol version remote supports */ + silc_ske_parse_version(conn->internal->ske, &conn->internal->remote_version, + NULL, NULL, NULL, NULL); + silc_ske_free(conn->internal->ske); conn->internal->ske = NULL; @@ -733,9 +737,11 @@ SILC_TASK_CALLBACK(silc_client_rekey_timer) SilcClientConnection conn = context; /* Signal to start rekey */ - conn->internal->rekey_responder = FALSE; - conn->internal->rekeying = TRUE; - SILC_FSM_EVENT_SIGNAL(&conn->internal->wait_event); + if (!silc_fsm_is_started(&conn->internal->event_thread)) { + conn->internal->rekey_responder = FALSE; + conn->internal->rekeying = TRUE; + SILC_FSM_EVENT_SIGNAL(&conn->internal->wait_event); + } /* Reinstall rekey timer */ silc_schedule_task_add_timeout(conn->internal->schedule,