updates.
[silc.git] / lib / silcclient / client_notify.c
index 14b3b591f053c83c7a190fcf3155b3f84fb399a9..2bd0aeb695d992758fece77a7d64433fdef91c20 100644 (file)
@@ -33,6 +33,7 @@ static void silc_client_notify_by_server_pending(void *context)
 {
   SilcPacketContext *p = (SilcPacketContext *)context;
   silc_client_notify_by_server(p->context, p->sock, p);
+  silc_socket_free(p->sock);
 }
 
 /* Destructor for the pending command callback */
@@ -53,7 +54,7 @@ static void silc_client_notify_by_server_resolve(SilcClient client,
   SilcBuffer idp = silc_id_payload_encode(client_id, SILC_ID_CLIENT);
 
   p->context = (void *)client;
-  p->sock = conn->sock;
+  p->sock = silc_socket_dup(conn->sock);
 
   silc_client_send_command(client, conn, SILC_COMMAND_WHOIS, ++conn->cmd_ident,
                           1, 3, idp->data, idp->len);
@@ -84,7 +85,7 @@ void silc_client_notify_by_server(SilcClient client,
   SilcChannelUser chu;
   SilcIDCacheEntry id_cache = NULL;
   unsigned char *tmp;
-  unsigned int tmp_len, mode;
+  uint32 tmp_len, mode;
 
   payload = silc_notify_payload_parse(buffer);
   if (!payload)
@@ -718,7 +719,7 @@ void silc_client_notify_by_server(SilcClient client,
        * from channels as they quit as well.
        */
       SilcClientEntry *clients = NULL;
-      unsigned int clients_count = 0;
+      uint32 clients_count = 0;
       int i;
 
       for (i = 1; i < silc_argument_get_arg_num(args); i++) {