/*
* ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors.
+ * Copyright (c)2001-2015 Alexander Barton (alex@barton.de) and Contributors.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
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),
- 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
- Log(LOG_DEBUG, "Sending CHANINFO commands ...");
-#endif
+ Log(LOG_DEBUG, "Sending CHANINFO commands for \"%s\" ...",
+ Channel_Name(Chan));
modes = Channel_Modes(Chan);
topic = Channel_Topic(Chan);
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 */