projects
/
NeonServV5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
*** VERSION 5.3.0 ***
[NeonServV5.git]
/
src
/
WHOHandler.c
diff --git
a/src/WHOHandler.c
b/src/WHOHandler.c
index f7287a3cf367a48cad2f0543f0b22d1b342d72a1..c7906f1cef6c793ee997d9f50f4dbed29fd3337d 100644
(file)
--- a/
src/WHOHandler.c
+++ b/
src/WHOHandler.c
@@
-1,4
+1,4
@@
-/* WHOHandler.c - NeonServ v5.
2
+/* WHOHandler.c - NeonServ v5.
3
* Copyright (C) 2011 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
* Copyright (C) 2011 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
@@
-75,6
+75,7
@@
void clear_whoqueue(struct ClientSocket *client) {
free(entry);
}
client->whoqueue_last = NULL;
free(entry);
}
client->whoqueue_last = NULL;
+ client->whoqueue_first = NULL;
}
void get_userlist(struct ChanNode *chan, userlist_callback_t callback, void *data) {
}
void get_userlist(struct ChanNode *chan, userlist_callback_t callback, void *data) {
@@
-208,6
+209,9
@@
void recv_whohandler_354(struct ClientSocket *client, char **argv, unsigned int
case '@':
chanuserflags |= CHANUSERFLAG_OPPED;
break;
case '@':
chanuserflags |= CHANUSERFLAG_OPPED;
break;
+ case '%':
+ chanuserflags |= CHANUSERFLAG_HALFOPPED;
+ break;
case '+':
chanuserflags |= CHANUSERFLAG_VOICED;
break;
case '+':
chanuserflags |= CHANUSERFLAG_VOICED;
break;
@@
-224,7
+228,7
@@
void recv_whohandler_354(struct ClientSocket *client, char **argv, unsigned int
struct UserNode *user = getUserByNick(argv[4]);
struct ChanUser *chanuser;
struct UserNode *user = getUserByNick(argv[4]);
struct ChanUser *chanuser;
- if((chanuserflags & CHANUSERFLAG_INVISIBLE) &&
!isBot(user
)) {
+ if((chanuserflags & CHANUSERFLAG_INVISIBLE) &&
(!user || !isBot(user)
)) {
user = createTempUser(argv[4]);
user->flags |= USERFLAG_ISTMPUSER;
chan->flags |= CHANFLAG_HAVE_INVISIBLES;
user = createTempUser(argv[4]);
user->flags |= USERFLAG_ISTMPUSER;
chan->flags |= CHANFLAG_HAVE_INVISIBLES;
@@
-237,7
+241,7
@@
void recv_whohandler_354(struct ClientSocket *client, char **argv, unsigned int
if(!(chanuser = getChanUser(user, chan))) {
chanuser = addChanUser(chan, user);
}
if(!(chanuser = getChanUser(user, chan))) {
chanuser = addChanUser(chan, user);
}
- chanuser->flags = (chanuser->flags & ~
CHANUSERFLAG_OPPED_OR_VOICED
) | chanuserflags;
+ chanuser->flags = (chanuser->flags & ~
(CHANUSERFLAG_OPPED_OR_VOICED | CHANUSERFLAG_INVISIBLE)
) | chanuserflags;
}
user->flags = (user->flags & ~USERFLAG_ISIRCOP) | userflags;
user->last_who = time(0);
}
user->flags = (user->flags & ~USERFLAG_ISIRCOP) | userflags;
user->last_who = time(0);