-/*
- * del_banid
- *
- * If `change' is true, delete `banid' from channel `chptr'.
- * Returns `false' if removal was (or would have been) successful.
- */
-static int del_banid(struct Channel *chptr, char *banid, int change)
-{
- struct SLink **ban;
- struct SLink *tmp;
-
- if (!banid)
- return -1;
- for (ban = &(chptr->banlist); *ban; ban = &((*ban)->next)) {
- if (0 == ircd_strcmp(banid, (*ban)->value.ban.banstr))
- {
- tmp = *ban;
- if (change)
- {
- struct Membership* member;
- *ban = tmp->next;
- MyFree(tmp->value.ban.banstr);
- MyFree(tmp->value.ban.who);
- free_link(tmp);
- /*
- * Erase ban-valid-bit, for channel members that are banned
- */
- for (member = chptr->members; member; member = member->next_member)
- if (CHFL_BANVALIDMASK == (member->status & CHFL_BANVALIDMASK))
- ClearBanValid(member); /* `tmp' == channel member */
- }
- return 0;
- }
- }
- return -1;
-}
-