# arch-tag: automatic-ChangeLog--srvx@srvx.net--2004-srvx/srvx--devo--1.3
#
+2004-05-21 12:38:39 GMT Michael Poole <mdpoole@troilus.org> patch-64
+
+ Summary:
+ Fix helpserv whine when helpers leave the channel; fix ?devoiceall
+ Revision:
+ srvx--devo--1.3--patch-64
+
+ Remove the parting modeNode before making callbacks, so callbacks
+ don't get confused and think the user is still in the channel.
+
+ In ?devoiceall, OpServ should only remove voice from users who have it.
+
+ modified files:
+ ChangeLog src/hash.c src/opserv.c
+
+
2004-05-17 09:44:35 GMT adam <adam@gamesurge.net> patch-63
Summary:
if (!mNode)
return;
- for (n=0; n<pf_used; n++)
- pf_list[n](mNode, reason);
-
/* remove modeNode from channel and user */
modeList_remove(&channel->members, mNode);
modeList_remove(&user->channels, mNode);
+
+ /* make callbacks */
+ for (n=0; n<pf_used; n++)
+ pf_list[n](mNode, reason);
+
+ /* free memory */
free(mNode);
if (!deleting && !channel->members.used && !channel->locks && !(channel->modes & MODE_REGISTERED))
change = mod_chanmode_alloc(channel->members.used);
for (ii = count = 0; ii < channel->members.used; ++ii) {
struct modeNode *mn = channel->members.list[ii];
- if (mn->modes & MODE_VOICE)
+ if (!(mn->modes & MODE_VOICE))
continue;
change->args[count].mode = MODE_REMOVE | MODE_VOICE;
change->args[count++].member = mn;