Example #1
0
int hchannel_del(hchannel *hchan)
{
    hchannel *tmp, **ptr = &hchannels;

    for (;*ptr;ptr = &(*ptr)->next)
        if (*ptr == hchan)
            break;

    assert(*ptr != NULL);

    tmp = hchan->next;

    hcensor_del_all(&(hchan->censor));
    hterm_del_all(&hchan->channel_hterms);
    htopic_del_all(&hchan->topic);
    hstat_del_channel(hchan);
    free(hchan->stats);

    while (hchan->htickets)
        hticket_del(hchan->htickets, hchan);

    localpartchannel(helpmodnick, hchan->real_channel, "Channel Removed");

    free(hchan);

    *ptr = tmp;

    return 0;
}
Example #2
0
void hticket_remove_expired(void)
{
    hchannel *hchan;
    hticket **tmp;
    for (hchan = hchannels;hchan;hchan = hchan->next)
    {
        tmp = &hchan->htickets;
        while (*tmp)
            if ((*tmp)->time_expiration < time(NULL))
                hticket_del(*tmp, hchan);
            else
                tmp = &(*tmp)->next;
    }
}