projects
/
silc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Mark cache->expire = 0 in JOIN notify handling to assure that
[silc.git]
/
apps
/
silcd
/
packet_receive.c
diff --git
a/apps/silcd/packet_receive.c
b/apps/silcd/packet_receive.c
index 2068c18bdf8219b817f6efa9e57d528f6ba5cc76..c0bda1432fee1a80bf82967dcf251b208ac041f0 100644
(file)
--- a/
apps/silcd/packet_receive.c
+++ b/
apps/silcd/packet_receive.c
@@
-43,7
+43,7
@@
void silc_server_notify(SilcServer server,
SilcClientEntry client = NULL, client2 = NULL;
SilcServerEntry server_entry = NULL;
SilcChannelClientEntry chl;
SilcClientEntry client = NULL, client2 = NULL;
SilcServerEntry server_entry = NULL;
SilcChannelClientEntry chl;
- SilcIDCacheEntry cache;
+ SilcIDCacheEntry cache
= NULL
;
SilcHashTableList htl;
SilcUInt32 mode;
unsigned char *tmp;
SilcHashTableList htl;
SilcUInt32 mode;
unsigned char *tmp;
@@
-166,11
+166,11
@@
void silc_server_notify(SilcServer server,
entry for the client. */
client = silc_idlist_find_client_by_id(server->global_list,
client_id, server->server_type,
entry for the client. */
client = silc_idlist_find_client_by_id(server->global_list,
client_id, server->server_type,
-
NULL
);
+
&cache
);
if (!client) {
client = silc_idlist_find_client_by_id(server->local_list,
client_id, server->server_type,
if (!client) {
client = silc_idlist_find_client_by_id(server->local_list,
client_id, server->server_type,
-
NULL
);
+
&cache
);
if (!client) {
/* If router did not find the client the it is bogus */
if (server->server_type != SILC_SERVER) {
if (!client) {
/* If router did not find the client the it is bogus */
if (server->server_type != SILC_SERVER) {
@@
-239,6
+239,10
@@
void silc_server_notify(SilcServer server,
channel->user_count++;
channel->disabled = FALSE;
channel->user_count++;
channel->disabled = FALSE;
+ /* Make sure we don't expire clients that are on channel */
+ if (cache)
+ cache->expire = 0;
+
/* Update statistics */
if (server->server_type == SILC_ROUTER) {
if (sock->type != SILC_SOCKET_TYPE_ROUTER)
/* Update statistics */
if (server->server_type == SILC_ROUTER) {
if (sock->type != SILC_SOCKET_TYPE_ROUTER)