New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WHOx screwing up channels userlist #739

Open
key2peace opened this Issue Oct 27, 2018 · 5 comments

Comments

Projects
None yet
2 participants
@key2peace

key2peace commented Oct 27, 2018

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

@michaelortmann

This comment has been minimized.

Member

michaelortmann commented Oct 27, 2018

Hei key2peace,

i think you mean .channel instead of .chaninfo ?

.set use-354 ? .set net-type ? undernet?

i still can't reproduce
[...]

@key2peace

This comment has been minimized.

key2peace commented Oct 28, 2018

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 ;)

@michaelortmann

This comment has been minimized.

Member

michaelortmann commented Oct 28, 2018

Thank you, now its repeatable and thus fixable.

@key2peace

This comment has been minimized.

key2peace commented Oct 28, 2018

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).

@michaelortmann

This comment has been minimized.

Member

michaelortmann commented Oct 28, 2018

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.

@michaelortmann michaelortmann referenced a pull request that will close this issue Oct 28, 2018

Open

Fix 354 whox with workaround until 005 support #741

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment