projects
/
silc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
updates.
[silc.git]
/
lib
/
silcclient
/
client.c
diff --git
a/lib/silcclient/client.c
b/lib/silcclient/client.c
index eaf4db454aad1a40604ea88f23dc66b6f3dd545b..8403f44a30f8dabef3c9e37b1707f633a008bfdc 100644
(file)
--- a/
lib/silcclient/client.c
+++ b/
lib/silcclient/client.c
@@
-141,6
+141,7
@@
SilcClientConnection silc_client_add_connection(SilcClient client,
conn->remote_host = strdup(hostname);
conn->remote_port = port;
conn->context = context;
conn->remote_host = strdup(hostname);
conn->remote_port = port;
conn->context = context;
+ conn->pending_commands = silc_dlist_init();
/* Add the connection to connections table */
for (i = 0; i < client->conns_count; i++)
/* Add the connection to connections table */
for (i = 0; i < client->conns_count; i++)
@@
-165,6
+166,8
@@
void silc_client_del_connection(SilcClient client, SilcClientConnection conn)
for (i = 0; i < client->conns_count; i++)
if (client->conns[i] == conn) {
for (i = 0; i < client->conns_count; i++)
if (client->conns[i] == conn) {
+ if (conn->pending_commands)
+ silc_dlist_uninit(conn->pending_commands);
silc_free(conn);
client->conns[i] = NULL;
}
silc_free(conn);
client->conns[i] = NULL;
}
@@
-1195,6
+1198,8
@@
void silc_client_close_connection(SilcClient client,
memset(conn->hmac_key, 0, conn->hmac_key_len);
silc_free(conn->hmac_key);
}
memset(conn->hmac_key, 0, conn->hmac_key_len);
silc_free(conn->hmac_key);
}
+ if (conn->pending_commands)
+ silc_dlist_uninit(conn->pending_commands);
conn->sock = NULL;
conn->remote_port = 0;
conn->sock = NULL;
conn->remote_port = 0;
@@
-1208,6
+1213,7
@@
void silc_client_close_connection(SilcClient client,
conn->local_id_data = NULL;
conn->remote_host = NULL;
conn->current_channel = NULL;
conn->local_id_data = NULL;
conn->remote_host = NULL;
conn->current_channel = NULL;
+ conn->pending_commands = NULL;
silc_client_del_connection(client, conn);
}
silc_client_del_connection(client, conn);
}
@@
-1277,7
+1283,6
@@
void silc_client_notify_by_server(SilcClient client,
SilcNotifyPayload payload;
SilcNotifyType type;
SilcArgumentPayload args;
SilcNotifyPayload payload;
SilcNotifyType type;
SilcArgumentPayload args;
- int i;
SilcClientID *client_id = NULL;
SilcChannelID *channel_id = NULL;
SilcClientID *client_id = NULL;
SilcChannelID *channel_id = NULL;
@@
-1321,7
+1326,7
@@
void silc_client_notify_by_server(SilcClient client,
SilcPacketContext *p = silc_packet_context_dup(packet);
p->context = (void *)client;
p->sock = sock;
SilcPacketContext *p = silc_packet_context_dup(packet);
p->context = (void *)client;
p->sock = sock;
- silc_client_command_pending(
SILC_COMMAND_WHOIS
,
+ silc_client_command_pending(
conn,SILC_COMMAND_WHOIS, 0
,
silc_client_notify_by_server_pending, p);
goto out;
}
silc_client_notify_by_server_pending, p);
goto out;
}
@@
-1367,7
+1372,7
@@
void silc_client_notify_by_server(SilcClient client,
SilcPacketContext *p = silc_packet_context_dup(packet);
p->context = (void *)client;
p->sock = sock;
SilcPacketContext *p = silc_packet_context_dup(packet);
p->context = (void *)client;
p->sock = sock;
- silc_client_command_pending(
SILC_COMMAND_WHOIS
,
+ silc_client_command_pending(
conn, SILC_COMMAND_WHOIS, 0
,
silc_client_notify_by_server_pending, p);
goto out;
}
silc_client_notify_by_server_pending, p);
goto out;
}
@@
-1541,7
+1546,7
@@
void silc_client_notify_by_server(SilcClient client,
SilcPacketContext *p = silc_packet_context_dup(packet);
p->context = (void *)client;
p->sock = sock;
SilcPacketContext *p = silc_packet_context_dup(packet);
p->context = (void *)client;
p->sock = sock;
- silc_client_command_pending(
SILC_COMMAND_WHOIS
,
+ silc_client_command_pending(
conn, SILC_COMMAND_WHOIS, 0
,
silc_client_notify_by_server_pending, p);
goto out;
}
silc_client_notify_by_server_pending, p);
goto out;
}
@@
-1872,7
+1877,6
@@
void silc_client_channel_message(SilcClient client,
SilcChannelUser chu;
SilcIDCacheEntry id_cache = NULL;
SilcClientID *client_id = NULL;
SilcChannelUser chu;
SilcIDCacheEntry id_cache = NULL;
SilcClientID *client_id = NULL;
- int i;
char *nickname;
/* Sanity checks */
char *nickname;
/* Sanity checks */
@@
-2011,7
+2015,6
@@
void silc_client_remove_from_channels(SilcClient client,
SilcIDCacheList list;
SilcChannelEntry channel;
SilcChannelUser chu;
SilcIDCacheList list;
SilcChannelEntry channel;
SilcChannelUser chu;
- int i;
if (!silc_idcache_find_by_id(conn->channel_cache, SILC_ID_CACHE_ANY,
SILC_ID_CHANNEL, &list))
if (!silc_idcache_find_by_id(conn->channel_cache, SILC_ID_CACHE_ANY,
SILC_ID_CHANNEL, &list))
@@
-2055,7
+2058,6
@@
void silc_client_replace_from_channels(SilcClient client,
SilcIDCacheList list;
SilcChannelEntry channel;
SilcChannelUser chu;
SilcIDCacheList list;
SilcChannelEntry channel;
SilcChannelUser chu;
- int i;
if (!silc_idcache_find_by_id(conn->channel_cache, SILC_ID_CACHE_ANY,
SILC_ID_CHANNEL, &list))
if (!silc_idcache_find_by_id(conn->channel_cache, SILC_ID_CACHE_ANY,
SILC_ID_CHANNEL, &list))