Do not freak out when seeing unreal ircd wierd name flags.
This commit is contained in:
parent
81239265b9
commit
babaac246d
22
src/irc.c
22
src/irc.c
@ -1345,15 +1345,29 @@ static int irc_353(struct link_server *server, struct line *line)
|
|||||||
names = line->elemv[4];
|
names = line->elemv[4];
|
||||||
|
|
||||||
while (*names) {
|
while (*names) {
|
||||||
eon = names;
|
|
||||||
int ovmask = 0;
|
int ovmask = 0;
|
||||||
/* these should be exclusive */
|
int flagchars = 1;
|
||||||
if (*names == '@') {
|
/* some ircds (e.g. unreal) may display several flags for the
|
||||||
|
same nick */
|
||||||
|
while (flagchars) {
|
||||||
|
switch (*names) {
|
||||||
|
case '@':
|
||||||
names++;
|
names++;
|
||||||
ovmask |= NICKOP;
|
ovmask |= NICKOP;
|
||||||
} else if (*names == '+') {
|
break;
|
||||||
|
case '+':
|
||||||
names++;
|
names++;
|
||||||
ovmask |= NICKVOICED;
|
ovmask |= NICKVOICED;
|
||||||
|
break;
|
||||||
|
case '%': /* unrealircd: halfop */
|
||||||
|
case '&': /* unrealircd: protect */
|
||||||
|
case '~': /* unrealircd: owner */
|
||||||
|
names++;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
flagchars = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
eon = names;
|
eon = names;
|
||||||
while (*eon && *eon != ' ')
|
while (*eon && *eon != ' ')
|
||||||
|
Loading…
Reference in New Issue
Block a user