Commit Diff
Diff:
aeebde4642580e806c04a339bb9befd1ece61775
cd38e9580e428103cef39e2e29f62472b2f336d3
Commit:
cd38e9580e428103cef39e2e29f62472b2f336d3
Tree:
96e60d4252e78ed956e6ea4e3c62edcc12596f33
Author:
Federico G. Schwindt <fgsch@lodoss.net>
Committer:
Federico G. Schwindt <fgsch@lodoss.net>
Date:
Sun Aug 11 19:57:11 2013 UTC
Message:
Fix 2 bugs introduced in 74514b8c23 Channel_Modes() and Channel_Topic() return static memory that is zeroed at creation time. Fix checking for empty modes and topic so they're propagated correctly.
blob - 17ecbf9308c9c17b455b81f1b6d9ea5e55c0c96e
blob + 0978a19dfb30f9afcc1c2f937798a44be6f82a89
--- src/ngircd/irc-channel.c
+++ src/ngircd/irc-channel.c
@@ -688,7 +688,7 @@ IRC_CHANINFO( CLIENT *Client, REQUEST *Req )
return CONNECTED;
if (Req->argv[1][0] == '+') {
- if (!Channel_Modes(chan)) {
+ if (!*Channel_Modes(chan)) {
/* OK, this channel doesn't have modes yet,
* set the received ones: */
Channel_SetModes(chan, &Req->argv[1][1]);
@@ -727,7 +727,7 @@ IRC_CHANINFO( CLIENT *Client, REQUEST *Req )
if (arg_topic > 0) {
/* We got a topic */
- if (!Channel_Topic( chan ) && Req->argv[arg_topic][0]) {
+ if (!*Channel_Topic(chan) && Req->argv[arg_topic][0]) {
/* OK, there is no topic jet */
Channel_SetTopic(chan, Client, Req->argv[arg_topic]);
IRC_WriteStrChannelPrefix(Client, chan, from, false,
IRCNow