X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=apps%2Fsilcd%2Fserver_query.c;h=6475c57301b06b7dcde972704472061994bf0c7a;hp=a8bd816b4dd93ab0613eb785df7212bde95d792c;hb=382d15d447b7a95390decfa783836ae4fe255b3d;hpb=17c5ba9b971a776243f3ba1a7095efc5ce2a4844 diff --git a/apps/silcd/server_query.c b/apps/silcd/server_query.c index a8bd816b..6475c573 100644 --- a/apps/silcd/server_query.c +++ b/apps/silcd/server_query.c @@ -407,6 +407,8 @@ void silc_server_query_parse(SilcServer server, SilcServerQuery query) for (i = 0; i < query->ids_count; i++) silc_free(query->ids[i].id); silc_free(query->ids); + query->ids = NULL; + query->ids_count = 0; silc_free(id); return; } @@ -524,6 +526,8 @@ void silc_server_query_parse(SilcServer server, SilcServerQuery query) for (i = 0; i < query->ids_count; i++) silc_free(query->ids[i].id); silc_free(query->ids); + query->ids = NULL; + query->ids_count = 0; silc_free(id); return; } @@ -535,6 +539,8 @@ void silc_server_query_parse(SilcServer server, SilcServerQuery query) for (i = 0; i < query->ids_count; i++) silc_free(query->ids[i].id); silc_free(query->ids); + query->ids = NULL; + query->ids_count = 0; silc_free(id); return; } @@ -1548,7 +1554,7 @@ SilcBuffer silc_server_query_reply_attrs(SilcServer server, SilcAttributeObjPk pk; SilcAttributeObjService service; unsigned char *tmp; - unsigned char sign[2048]; + unsigned char sign[2048 + 1]; SilcUInt32 sign_len; SILC_LOG_DEBUG(("Constructing Requested Attributes")); @@ -1567,6 +1573,8 @@ SilcBuffer silc_server_query_reply_attrs(SilcServer server, silc_strncat(service.address, sizeof(service.address), server->server_name, strlen(server->server_name)); service.status = !(client_entry->mode & SILC_UMODE_DETACHED); + if (client_entry->connection) + service.idle = time(NULL) - client_entry->data.last_receive; buffer = silc_attribute_payload_encode(buffer, attribute, SILC_ATTRIBUTE_FLAG_VALID, &service, sizeof(service));