znc / znc

Official repository for the ZNC IRC bouncer
https://znc.in/
Apache License 2.0
2k stars 377 forks source link

ZNC prepending "#" in channel name if trying to join a channel without it. #1794

Open RealKindOne opened 3 years ago

RealKindOne commented 3 years ago

gothkat on Libera.Chat discovered this bug,

If you send a join command without the # znc will join the channel. The join time seems to be delayed?

/join 0 causes you to part all channels (as intended) and then joins #0 (unintended).

/join asdfasdf causes you to join #asdfasdf.

[2021-06-09 01:13:29.404982] (KindOne/foobar) ZNC -> IRC [WHO KindOne-]
[2021-06-09 01:13:29.414983] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:13:29.921Z :irc.foobar.net 352 KindOne- * KindOne 192.168.254.222 irc.foobar.net KindOne- H :0 Got ZNC?]
[2021-06-09 01:13:29.414983] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:13:29.921Z :irc.foobar.net 352 KindOne- * KindOne 192.168.254.222 irc.foobar.net KindOne- H :0 Got ZNC?]
[2021-06-09 01:13:29.625995] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:13:29.921Z :irc.foobar.net 315 KindOne- KindOne- :End of /WHO list.]
[2021-06-09 01:13:29.625995] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:13:29.921Z :irc.foobar.net 315 KindOne- KindOne- :End of /WHO list.]
[2021-06-09 01:13:42.248717] (KindOne/foobar) CLI -> ZNC [JOIN ###abcdefg]
[2021-06-09 01:13:42.249717] (KindOne/foobar) ZNC -> IRC [JOIN ###abcdefg :]
[2021-06-09 01:13:42.254717] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:13:42.759Z :KindOne-!KindOne@192.168.254.222 JOIN ###abcdefg * :Got ZNC?]
[2021-06-09 01:13:42.254717] (KindOne/foobar) ZNC -> IRC [MODE ###abcdefg]
[2021-06-09 01:13:42.254717] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:13:42.759Z :KindOne-!KindOne@192.168.254.222 JOIN ###abcdefg * :Got ZNC?]
[2021-06-09 01:13:42.316721] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:13:42.759Z :irc.foobar.net MODE ###abcdefg +nt]
[2021-06-09 01:13:42.368724] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:13:42.759Z :irc.foobar.net MODE ###abcdefg +nt]
[2021-06-09 01:13:42.368724] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:13:42.759Z :irc.foobar.net 353 KindOne- = ###abcdefg :@KindOne-!KindOne@192.168.254.222]
[2021-06-09 01:13:42.368724] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:13:42.759Z :irc.foobar.net 353 KindOne- = ###abcdefg :@KindOne-!KindOne@192.168.254.222]
[2021-06-09 01:13:42.368724] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:13:42.759Z :irc.foobar.net 366 KindOne- ###abcdefg :End of /NAMES list.]
[2021-06-09 01:13:42.368724] (KindOne/foobar) ZNC -> IRC [MODE ###abcdefg +stn]
[2021-06-09 01:13:42.368724] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:13:42.759Z :irc.foobar.net 366 KindOne- ###abcdefg :End of /NAMES list.]
[2021-06-09 01:13:42.372724] (KindOne/foobar) CLI -> ZNC [MODE ###abcdefg]
[2021-06-09 01:13:42.372724] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:13:42.372Z :irc.foobar.net 324 KindOne- ###abcdefg +nt]
[2021-06-09 01:13:42.384724] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:13:42.818Z :irc.foobar.net 324 KindOne- ###abcdefg +nt]
[2021-06-09 01:13:42.384724] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:13:42.818Z :irc.foobar.net 329 KindOne- ###abcdefg 1623215622]
[2021-06-09 01:13:42.582736] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:13:42.879Z :KindOne-!KindOne@192.168.254.222 MODE ###abcdefg +s ]
[2021-06-09 01:13:42.582736] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:13:42.879Z :KindOne-!KindOne@192.168.254.222 MODE ###abcdefg +s]
[2021-06-09 01:13:49.611138] (KindOne/foobar) CLI -> ZNC [JOIN 0]
[2021-06-09 01:13:49.611138] (KindOne/foobar) ZNC -> IRC [JOIN 0 :]
[2021-06-09 01:13:49.620138] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:13:50.128Z :KindOne-!KindOne@192.168.254.222 PART ###abcdefg]
[2021-06-09 01:13:49.621138] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:13:50.128Z :KindOne-!KindOne@192.168.254.222 PART ###abcdefg]
[2021-06-09 01:14:01.182800] (KindOne/foobar) ZNC -> IRC [JOIN #0]
[2021-06-09 01:14:01.187800] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:14:01.695Z :KindOne-!KindOne@192.168.254.222 JOIN #0 * :Got ZNC?]
[2021-06-09 01:14:01.188800] (KindOne/foobar) ZNC -> IRC [MODE #0]
[2021-06-09 01:14:01.188800] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:14:01.695Z :KindOne-!KindOne@192.168.254.222 JOIN #0 * :Got ZNC?]
[2021-06-09 01:14:01.241803] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:14:01.695Z :irc.foobar.net 332 KindOne- #0 :random off topic linux talk, beginning of oftc]
[2021-06-09 01:14:01.241803] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:14:01.695Z :irc.foobar.net 332 KindOne- #0 :random off topic linux talk, beginning of oftc]
[2021-06-09 01:14:01.241803] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:14:01.695Z :irc.foobar.net 333 KindOne- #0 KindOne 1622055835]
[2021-06-09 01:14:01.241803] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:14:01.695Z :irc.foobar.net 333 KindOne- #0 KindOne 1622055835]
[2021-06-09 01:14:01.241803] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:14:01.695Z :irc.foobar.net 353 KindOne- = #0 :KindOne-!KindOne@192.168.254.222 @KindOne_!kindone@knows.everything.about.computers.due.too.windows.usage @ChanServ!ChanServ@services.]
[2021-06-09 01:14:01.241803] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:14:01.695Z :irc.foobar.net 353 KindOne- = #0 :KindOne-!KindOne@192.168.254.222 @KindOne_!kindone@knows.everything.about.computers.due.too.windows.usage @ChanServ!ChanServ@services.]
[2021-06-09 01:14:01.241803] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:14:01.695Z :irc.foobar.net 366 KindOne- #0 :End of /NAMES list.]
[2021-06-09 01:14:01.242803] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:14:01.695Z :irc.foobar.net 366 KindOne- #0 :End of /NAMES list.]
[2021-06-09 01:14:01.263804] (KindOne/foobar) CLI -> ZNC [MODE #0]
[2021-06-09 01:14:01.263804] (KindOne/foobar) ZNC -> IRC [MODE #0]
[2021-06-09 01:14:01.274805] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:14:01.723Z :irc.foobar.net 324 KindOne- #0 +nt]
[2021-06-09 01:14:01.274805] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:14:01.723Z :irc.foobar.net 329 KindOne- #0 1622055834]
[2021-06-09 01:14:01.475816] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:14:01.779Z :irc.foobar.net 324 KindOne- #0 +nt]
[2021-06-09 01:14:01.475816] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:14:01.779Z :irc.foobar.net 324 KindOne- #0 +nt]
[2021-06-09 01:14:01.475816] (KindOne/foobar) IRC -> ZNC [@time=2021-06-09T05:14:01.779Z :irc.foobar.net 329 KindOne- #0 1622055834]
[2021-06-09 01:14:01.476816] (KindOne/foobar) ZNC -> CLI [@time=2021-06-09T05:14:01.779Z :irc.foobar.net 329 KindOne- #0 1622055834]

Edit: My testing: ZNC 1.8.2 (cygwin) solanum ircd (git head/master) mIRC 7.65

RealKindOne commented 3 years ago

I finally did a git bisect, commit 5cb50eccd1ad8f8750415511313bdeb2723ab5b3 created this bug.

$ git bisect bad
5cb50eccd1ad8f8750415511313bdeb2723ab5b3 is the first bad commit
commit 5cb50eccd1ad8f8750415511313bdeb2723ab5b3
Author: Alexey Sokolov <alexey+znc@asokolov.org>
Date:   Wed Feb 14 08:30:21 2018 +0000

    Save channel key on user JOIN even if user was not on the channel yet,

    which is the usual case.

    Fix #1223

:040000 040000 416df96ce5dfac7fb42328f9a6f343890b3fba4d b82ba1b98cfceec66e686986836f5f677193b56f M  src
:040000 040000 1feabba49b25b8e14ff6d0a70a170e4a9f48de41 264f166691c57e29843ea2fbf9072aa4a408db56 M  test