projects
/
NeonServV5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed event_neonserv_kick and user-free-after-kick problem
[NeonServV5.git]
/
src
/
WHOHandler.c
diff --git
a/src/WHOHandler.c
b/src/WHOHandler.c
index e470abbda19a278d12385e341d6124005f7622c9..b0b8ddc51771f22fa5c349f255f31fd01147c2dc 100644
(file)
--- a/
src/WHOHandler.c
+++ b/
src/WHOHandler.c
@@
-177,6
+177,7
@@
void get_userauth(struct UserNode *user, userauth_callback_t callback, void *dat
entry = addWHOQueueEntry(bot);
entry->type = WHOQUEUETYPE_ISONQUEUE | WHOQUEUETYPE_USERAUTH;
entry->user = user;
entry = addWHOQueueEntry(bot);
entry->type = WHOQUEUETYPE_ISONQUEUE | WHOQUEUETYPE_USERAUTH;
entry->user = user;
+ user->flags |= USERFLAG_IS_ON_WHO_QUEUE;
entry->callback[0] = callback;
int i;
for(i = 1; i < MAXCALLBACKS; i++)
entry->callback[0] = callback;
int i;
for(i = 1; i < MAXCALLBACKS; i++)
@@
-308,6
+309,10
@@
void recv_whohandler_315(struct ClientSocket *client, char **argv, unsigned int
callback(client, entry->user->nick, NULL, entry->data[i]);
}
}
callback(client, entry->user->nick, NULL, entry->data[i]);
}
}
+ entry->user->flags &= ~USERFLAG_IS_ON_WHO_QUEUE;
+ if(entry->user->flags & USERFLAG_FREE_AFTER_WHO) {
+ delUser(entry->user, 1);
+ }
}
free(entry);
}
}
free(entry);
}