CHANNEL *c;
struct list_head *head;
struct list_elem *elem;
+ time_t t;
assert(Client != NULL);
head = Class_GetList(CLASS_GLINE);
elem = Lists_GetFirst(head);
while (elem) {
+ t = Lists_GetValidity(elem) - time(NULL);
if (!IRC_WriteStrClient(Client, "GLINE %s %ld :%s",
Lists_GetMask(elem),
- (long)(Lists_GetValidity(elem) - time(NULL)),
+ t > 0 ? (long)t : 0,
Lists_GetReason(elem)))
return DISCONNECTED;
elem = Lists_GetNext(elem);
static bool
Send_CHANINFO(CLIENT * Client, CHANNEL * Chan)
{
- char *modes, *topic;
+ char *modes, *topic, *key;
bool has_k, has_l;
#ifdef DEBUG
Channel_Name(Chan), modes, topic);
}
/* "CHANINFO <chan> +<modes> <key> <limit> :<topic>" */
+ key = Channel_Key(Chan);
return IRC_WriteStrClient(Client, "CHANINFO %s +%s %s %lu :%s",
Channel_Name(Chan), modes,
- has_k ? Channel_Key(Chan) : "*",
+ has_k ? (key && *key ? key : "*") : "*",
has_l ? Channel_MaxUsers(Chan) : 0, topic);
} /* Send_CHANINFO */