The CChan constructor makes sure that the channel name begins with a valid
channel prefix. Thus, this could change the name of the resulting channel.
When you edited an irc network which already had a channel "#foo", were
connected to IRC (so ZNC knows which prefixes are valid) and added a channel
"foo", this would lead to a problem:
Webadmin checks and sees that there is no channel "foo" yet. Webadmin creates a
new CChan instance for "foo". The CChan constructor notices that "f" is not a
valid channel prefix and instead calls itself "#foo". Then,
CIRCNetwork::AddChan() would see that this channel already exists, delete the
given channel and return false.
However, webadmin didn't check this result and would continue changing settings
on an already destroyed CChan instance.
Fix this by checking if the channel exists after CChan had its chance to mess
with the channel name. Also handle failures from CIRCNetwork::AddChan().
Fixes#528.
Signed-off-by: Uli Schlachter <psychon@znc.in>
On QuakeNet's ircd you can't unset user mode +x once set. But loading
the Q module will set it immediately, possibly requiring a reconnect
if you don't want to use a cloaked host.
Signed-off-by: Anders Bergh <anders1@gmail.com>
Use case: On QuakeNet you can /msg Q CHANLEV #chan <yourself> +j to
be invited once you authenticate. Anyone known on the channel (mode +k)
is able to set/unset chanlev +j for themselves.
Signed-off-by: Anders Bergh <anders1@gmail.com>
The ClearBindHost and ClearUserBindHost success messages do not make a distinction on whether it's a network bind host that's being cleared or whether it's a user bind host that's being cleared. I think that this should be reworded to make the distinction.
Somehow I ended up only testing the automatic detection and the error message
from --enable-charset. I totally forgot that --disable-charset should skip the
whole check.
Thanks to Robby for reporting this.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This override the auto detection. If --enable-charset is given, but icu can't be
found, configure will error out.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This adds a short reason to the summary at the end of configure (for options
where it makes sense, e.g. not debug or ipv6).
Example:
charset: no (icu-uc not found via pkg-config)
Signed-off-by: Uli Schlachter <psychon@znc.in>