Closed key2peace closed 5 years ago
Hei key2peace,
i think you mean .channel instead of .chaninfo ?
.set use-354 ? .set net-type ? undernet?
i still can't reproduce [...]
https://github.com/eggheads/eggdrop/blob/develop/src/mod/irc.mod/chan.c#L1103-L1125
eggdrop does not care about the amount of args it receives, it needs to count the number of args to see how many it receives without the gecos first to see WHICH style of whox it gets, for a 'normal' whox it would be 7 (with gecos), oh, and while at it, fix the typo, it's ircu, not iru ;)
Thank you, now its repeatable and thus fixable.
Yeah, please do, as this behaviour screws with a lot of stuff in eggdrop, like if eggdrop doesn't find itself in the WHO output because nick is on a different place, it reissues a JOIN thinking it ain't present (once).
We better don't distinguish the new whox syntax via parameter count, but via 005 numeric WHOX. until then, disabling 354 in eggdrop.conf is possible via "set use-354 0".
However, i committed a workaround PR, because 005 support (#438) won't make it into 1.8.4 i guess.
Eggdrop does not distinguish between the by eggdrop issued WHOx and a scripted one, and simply parses the RAW 354 reply in both cases, screwing up the channels userlist. This is in the case of the reproduction test the i(ip) parameter messing stuff up, since the ip will shift the argument order eggdrop expects in the reply. Solution would be to count the amount of returned args of the 354, up to the : stating the start of the gecos field.
Reproduction test: .tcl putserv "WHO [anychanwithusers] %xcnihurf" .channel [anychanwithusers]
Will produce something like: NICKNAME HANDLE JOIN IDLE USER@HOST mx-ll-223.206.234-196.dynamic.3b * --- 2d ~nmrbkn@223.206.234.196
Blame: https://github.com/eggheads/eggdrop/blob/develop/src/mod/irc.mod/chan.c#L1103-L1125