X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver.c;h=5c93bed5ff664308ecffe150b7bc1ed49fdcecec;hb=8d1a8bbf644f67f86e7e1b95cf51d6d49406251f;hp=02b1cc894524885a72876b72154f1b7585d0580a;hpb=5e5526c98cc281231e020220a3a9c3eaa31df68f;p=silc.git diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 02b1cc89..5c93bed5 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -772,7 +772,7 @@ SILC_TASK_CALLBACK(silc_server_connect_to_router_second) silc_free(ctx->dest_id); silc_free(ctx); silc_schedule_task_del_by_callback(server->schedule, - silc_server_failure_callback); + silc_server_failure_callback); silc_server_disconnect_remote(server, sock, "Server closed connection: " "Key exchange failed"); return; @@ -1215,6 +1215,7 @@ SILC_TASK_CALLBACK(silc_server_accept_new_connection_final) SilcServer server = (SilcServer)ctx->server; SilcSocketConnection sock = ctx->sock; SilcServerHBContext hb_context; + SilcUnknownEntry entry = (SilcUnknownEntry)sock->user_data; void *id_entry = NULL; SILC_LOG_DEBUG(("Start")); @@ -1241,6 +1242,8 @@ SILC_TASK_CALLBACK(silc_server_accept_new_connection_final) return; } + entry->data.last_receive = time(NULL); + switch (ctx->conn_type) { case SILC_SOCKET_TYPE_CLIENT: { @@ -1363,7 +1366,7 @@ SILC_TASK_CALLBACK(silc_server_accept_new_connection_final) out: silc_schedule_task_del_by_callback(server->schedule, - silc_server_failure_callback); + silc_server_failure_callback); silc_protocol_free(protocol); if (ctx->packet) silc_packet_context_free(ctx->packet); @@ -1493,7 +1496,6 @@ SILC_TASK_CALLBACK(silc_server_packet_process) /* Get keys and stuff from ID entry */ idata = (SilcIDListData)sock->user_data; if (idata) { - idata->last_receive = time(NULL); cipher = idata->receive_key; hmac = idata->hmac_receive; } @@ -1673,6 +1675,7 @@ void silc_server_packet_parse_type(SilcServer server, SilcPacketContext *packet) { SilcPacketType type = packet->type; + SilcIDListData idata = (SilcIDListData)sock->user_data; SILC_LOG_DEBUG(("Parsing packet type %d", type)); @@ -1750,6 +1753,7 @@ void silc_server_packet_parse_type(SilcServer server, SILC_LOG_DEBUG(("Channel Message packet")); if (packet->flags & SILC_PACKET_FLAG_LIST) break; + idata->last_receive = time(NULL); silc_server_channel_message(server, sock, packet); break; @@ -1803,6 +1807,7 @@ void silc_server_packet_parse_type(SilcServer server, SILC_LOG_DEBUG(("Private Message packet")); if (packet->flags & SILC_PACKET_FLAG_LIST) break; + idata->last_receive = time(NULL); silc_server_private_message(server, sock, packet); break;