projects
/
silc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
136127f
)
Mark client entry invalid when killed and when notified non-existing
author
Pekka Riikonen
<priikone@silcnet.org>
Sat, 30 Aug 2008 11:15:49 +0000
(14:15 +0300)
committer
Pekka Riikonen
<priikone@silcnet.org>
Sat, 30 Aug 2008 11:15:49 +0000
(14:15 +0300)
lib/silcclient/command_reply.c
patch
|
blob
|
history
diff --git
a/lib/silcclient/command_reply.c
b/lib/silcclient/command_reply.c
index 910aab545be02edd180c36a8dbc8e3cca64077fb..29e05e73fe086b419299d922f1e196da594b2cfa 100644
(file)
--- a/
lib/silcclient/command_reply.c
+++ b/
lib/silcclient/command_reply.c
@@
-118,6
+118,7
@@
static void silc_client_command_process_error(SilcClientCommandContext cmd,
client_entry = silc_client_get_client_by_id(client, conn, &id.u.client_id);
if (client_entry) {
silc_client_remove_from_channels(client, conn, client_entry);
client_entry = silc_client_get_client_by_id(client, conn, &id.u.client_id);
if (client_entry) {
silc_client_remove_from_channels(client, conn, client_entry);
+ client_entry->internal.valid = FALSE;
silc_client_del_client(client, conn, client_entry);
silc_client_unref_client(client, conn, client_entry);
}
silc_client_del_client(client, conn, client_entry);
silc_client_unref_client(client, conn, client_entry);
}
@@
-947,6
+948,7
@@
SILC_FSM_STATE(silc_client_command_reply_kill)
/* Remove the client */
if (client_entry) {
silc_client_remove_from_channels(client, conn, client_entry);
/* Remove the client */
if (client_entry) {
silc_client_remove_from_channels(client, conn, client_entry);
+ client_entry->internal.valid = FALSE;
silc_client_del_client(client, conn, client_entry);
silc_client_unref_client(client, conn, client_entry);
}
silc_client_del_client(client, conn, client_entry);
silc_client_unref_client(client, conn, client_entry);
}