commit - b003d469f18c843725de4f6f46b7ca0714e0a984
commit + 07cb8ed9ae14307b7b9335faa957baa340632e57
blob - 0accc5c29d81c02369f53c244b4686cb13b1f0c9
blob + 0ca8703cf4c9831a6cb4f292de80ce9935c028f0
--- doc/Commands.txt
+++ doc/Commands.txt
.
CHANINFO is used by servers to inform each other about a channel:
its modes, channel key, user limits and its topic.
+ .
+ Note: even when <modes> don't include "k" (key) or "l" (limit), both
+ parameters must be given when used; use "*" for "no key" and 0 for
+ "no limit" for the unused parameter in this case.
.
The CHANINFO command is allowed on server-links only.
blob - 380b9078b210deb9a6853cf2c966357efec75481
blob + 8edb76e2169150951fbcdf9cb5611102b346d16f
--- src/ngircd/numeric.c
+++ src/ngircd/numeric.c
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 */