X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fproto-common.c;h=93751e39d59ef7caa1e823f9dc793483e038c35f;hb=490476e9ef4a331b38fdaffa2c8b0b7729603915;hp=d5ebc8ac4a55e42409efec447cd77da134b6aa6c;hpb=0af3064ecc785cc8f341f9322c2047201687d86b;p=srvx.git diff --git a/src/proto-common.c b/src/proto-common.c index d5ebc8a..93751e3 100644 --- a/src/proto-common.c +++ b/src/proto-common.c @@ -578,13 +578,20 @@ mod_chanmode_apply(struct userNode *who, struct chanNode *channel, struct mod_ch break; } break; - default: - assert((change->args[ii].mode & (MODE_REMOVE|MODE_CHANOP|MODE_VOICE)) != 0); + case MODE_CHANOP: + case MODE_VOICE: + case MODE_VOICE|MODE_CHANOP: + case MODE_REMOVE|MODE_CHANOP: + case MODE_REMOVE|MODE_VOICE: + case MODE_REMOVE|MODE_VOICE|MODE_CHANOP: if (change->args[ii].mode & MODE_REMOVE) change->args[ii].member->modes &= ~change->args[ii].mode; else change->args[ii].member->modes |= change->args[ii].mode; break; + default: + assert(0 && "Invalid mode argument"); + continue; } } }