X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fpacket_receive.c;h=46b0aac16c8e3da3184c30bb2a3ec7e12f157f74;hb=73583bd1ba302719fa687b8fa6b7619205ac4f33;hp=2d254cfd65a878bf23379f357a1ca561890e719c;hpb=5159d7204e05ab1fbefdc5fd351ec4da021ce577;p=silc.git diff --git a/apps/silcd/packet_receive.c b/apps/silcd/packet_receive.c index 2d254cfd..46b0aac1 100644 --- a/apps/silcd/packet_receive.c +++ b/apps/silcd/packet_receive.c @@ -2036,6 +2036,7 @@ void silc_server_rekey(SilcServer server, { SilcProtocol protocol; SilcServerRekeyInternalContext *proto_ctx; + SilcIDListData idata = (SilcIDListData)sock->user_data; SILC_LOG_DEBUG(("Start")); @@ -2045,6 +2046,7 @@ void silc_server_rekey(SilcServer server, proto_ctx->server = (void *)server; proto_ctx->sock = sock; proto_ctx->responder = TRUE; + proto_ctx->pfs = idata->rekey->pfs; /* Perform rekey protocol. Will call the final callback after the protocol is over. */ @@ -2052,6 +2054,7 @@ void silc_server_rekey(SilcServer server, &protocol, proto_ctx, silc_server_rekey_final); sock->protocol = protocol; - /* Run the protocol */ - protocol->execute(server->timeout_queue, 0, protocol, sock->sock, 0, 0); + if (proto_ctx->pfs == FALSE) + /* Run the protocol */ + protocol->execute(server->timeout_queue, 0, protocol, sock->sock, 0, 0); }