Skip to content
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

Weechat does not support WHOX, leading to warnings when parsing numeric 354. #376

Closed
Zarthus opened this Issue Mar 27, 2015 · 11 comments

Comments

Projects
None yet
5 participants
@Zarthus
Copy link
Contributor

commented Mar 27, 2015

Some IRC servers support a custom extended-WHO. This can be read in /VERSION as 'WHOX'.
(/quote help who: https://gist.github.com/Zarthus/3910bb555acebd45e95d).

Freenode is an example network who supports this format.

However, when using this command, Weechat does not properly handle it:

16:22:57    esper =!= │ :insanity.esper.net 354 Weethus 2001:41d0:2:e787::1:1
16:22:57    esper =!= │ irc: too few arguments received from IRC server for command "354" (received: 4 arguments, expected: at least 5)
16:22:57    esper =!= │ irc: failed to parse command "354" (please report to developers):
16:22:58    esper  -- │ [#zarthus] End of /WHO list.

This is during /WHO #zarthus %i (it is not specific to this command. /WHO Zarthus %i also generates this, and /WHO Zarthus %a does as well).

Everyone in the weechat channel (that responded) can reproduce the issue, and will not get any output on WHO's with two or more parameters using the percent symbol, with one weechat will error.

To be exact, with two or more characters after the symbol, the following is the only thing returned:

01:39:31 freenode  -- │ [Zarthus] End of /WHO list.

Debian 7.8, Weechat 1.2-dev (just before javascript support), as well as the latest master
I tested with an old client (Weechat 0.4.2), and that did not seem to have this issue.
It's not a plugin either, I tested with all of them unloaded.

(ps: whilst not significant at all, it seems like the colon on '(please report to developers):' is out of place. Maybe it should be removed?)

@Mikaela

This comment has been minimized.

Copy link
Contributor

commented Mar 27, 2015

Did you enable account-notify? I think it's required for whox.

@Shawn-Smith

This comment has been minimized.

Copy link
Contributor

commented Mar 27, 2015

account-notify is not a requirement for whox. or at least it shouldn't be, whox has uses outside of account notification.

@Zarthus

This comment has been minimized.

Copy link
Contributor Author

commented Mar 27, 2015

@Mikaela - I don't know what account-notify is or how to check if it is enabled. So I'd imagine it's set at the default option.

@Mikaela

This comment has been minimized.

Copy link
Contributor

commented Mar 27, 2015

or at least it shouldn't be

and here there is the bug.

I don't know what account-notify is or how to check if it is enabled. So I'd imagine it's set at the default option.

/help irc.server_default.capabilities and after setting that, reconnect.

@Zarthus

This comment has been minimized.

Copy link
Contributor Author

commented Mar 27, 2015

@Mikaela

│19:33:34    esper  -- │ irc: client capability, server supports: account-notify away-notify extended-join multi-prefix sasl tls
│19:33:34    esper  -- │ irc: client capability, requesting: account-notify sasl
│19:33:34    esper  -- │ irc: client capability, enabled: account-notify sasl
│19:33:36    esper  -- │ You are now logged in as Zarthus. (Weethus!Zarthus@zarth.us)
 │19:34:07    esper =!= │ irc: too few arguments received from IRC server for command "354" (received: 4 arguments, expected: at least 5)
 │19:34:07    esper =!= │ irc: failed to parse command "354" (please report to developers):
 │19:34:07    esper =!= │ :availo.esper.net 354 Weethus 2001:41d0:52:400::651
 │19:34:07    esper  -- │ [Weethus] End of /WHO list.

Nope, that didn't fix it.

Edit:

I took the liberty of updating to master (v1.1-175-g507fc25) to ensure it wasn't recently fixed, and it was not.

@Shawn-Smith

This comment has been minimized.

Copy link
Contributor

commented Mar 27, 2015

I can't seem to reproduce this on that network, even without account-notify enabled.

Joined two channels, #zarthus and #diablo, and did /who #chan %i on them both with no issues. I even found the same IP you did on one of the channels.

[17:29:16]* -- | 2001:41d0:52:400::651

[17:29:16]*esperirc -+| :anarchy.esper.net 354 testnick 2001:41d0:52:400::651

Edit :: Tried this on two different servers on that network with the same results, anarchy.* and insanity.*

Do you use a bouncer or similar software?

@Zarthus

This comment has been minimized.

Copy link
Contributor Author

commented Mar 28, 2015

I don't use a bouncer with weechat, no.

@Mikaela

This comment has been minimized.

Copy link
Contributor

commented Mar 28, 2015

I have no idea what causes this, but I can use some whox without any issues, but I am able to reproduce this at freenode with /WHO #weechat %i

WeeChat 1.2-dev (git: v1.1-171-gc2f07bd) Copyright (C) 2003-2015, compiled on Mar 24 2015 17:03:34
ZNC - 1.7.x-git-118-9814f2a - http://znc.in
IPv6: yes, SSL: yes, DNS: threads, charset: yes
@Zarthus

This comment has been minimized.

Copy link
Contributor Author

commented Mar 28, 2015

It seems like %ai "works", but just %a or %i doesn't. %ai however does not genereate any output aside from 'END OF WHO'.

(for people interested in the irc conversation for this, it happened in #weechat at 00:00 UTC starting at <Zarthus> Can a few of you try '/WHO Zarthus %i' and see if your buffer generates an error or if all is fine?)

Everyone in the weechat channel (that responded) can reproduce the issue, and will not get any output on WHO's with two or more parameters using the percent symbol, with one weechat will error.

@Mikaela

This comment has been minimized.

Copy link
Contributor

commented Mar 28, 2015

It seems like %ai "works", but just %a or %i doesn't. %ai however does not genereate any output aside from 'END OF WHO'.

This is another bug in WeeChat as the server does respond. Performing the WHO request with *raw ZNC module loaded that shows all raw messages passing ZNC:

2015-03-28 02:40:06+0200 < *raw> YOU -> [WHO Zarthus %airn]
2015-03-28 02:40:06+0200 < *raw> IRC -> [:rajaniemi.freenode.net 354 Mikaela 255.255.255.255 Zarthus Zarthus :Zarthus]
2015-03-28 02:40:06+0200 < *raw> IRC -> [:rajaniemi.freenode.net 315 Mikaela Zarthus :End of /WHO list.]

And as said before, WeeChat only shows

2015-03-28 02:40:06+0200 -- [Zarthus] End of /WHO list.

@flashcode flashcode added the bug label Mar 28, 2015

maxteufel added a commit to maxteufel/weechat that referenced this issue May 4, 2015

irc: avoid warnings for unsupported WHOX messages
Fixes weechat#376. This avoids warnings for WHOX messages that we do not parse/
understand yet. Previously, IRC_PROTOCOL_MIN_ARGS was 5 where it should
have been 4 (which avoids warnings for WHOX commands only requesting one
WHOX type). Changing the behavior to support all different WHOX types
seems like a bad idea to me, as it's quite hard to figure out which
information was requested with the WHOX command.

maxteufel added a commit to maxteufel/weechat that referenced this issue May 4, 2015

irc: avoid warnings for unsupported WHOX messages
Fixes weechat#376. This avoids warnings for WHOX messages that we do not parse/
understand yet. Previously, IRC_PROTOCOL_MIN_ARGS was 5 where it should
have been 4 (which avoids warnings for WHOX commands only requesting one
WHOX type). Changing the behavior to support all different WHOX types
seems like a bad idea to me, as it's quite hard to figure out which
information was requested with the WHOX command.
@maxteufel

This comment has been minimized.

Copy link
Contributor

commented May 4, 2015

The too few arguments warning was caused by IRC_PROTOCOL_MIN_ARGS being set to a wrong value (5 instead of 4). End of who being the only line when using more than two options is intended because we can't (without catching/storing WHOX messages sent to the server) know the content of the result. See #419.

@flashcode flashcode self-assigned this May 6, 2015

@flashcode flashcode added this to the 1.2 milestone May 6, 2015

@flashcode flashcode modified the milestones: 1.3, 1.2 May 17, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.