Open jesopo opened 5 years ago
This ins't really a candidate for FAIL
- do we have anything like WARN
? if not, should we?
WARN
suggested (by me) in ircv3/ircv3-specifications#357 a few moments ago. We could indeed have something like it. Seems like a useful addition.
On the idea of this, in Oragono we have a mode where all client needs to be logged in via SASL before connection registration can complete. Freenode and other nets also do the same for certain classes of connections (particularly for proxies and such), makes sense to deliver this in a similar way using FAIL
on connection to indicate it (I may pull this into the ACC
spec when I get around to updating that thing).
Literally just ran in to an issue caused by this on @slingamn's net. znc's *nickserv
module didn't catch the client being asked for authentication because the source of the NOTICE
was the IRC server - not nickserv
which the module looks for.
It's even worse than that: ZNC requires the message to contain both the English word "identify" and at least one of some other magic English-language strings.
https://github.com/znc/znc/blob/458ce602aa8b14ab870371e26ccec9d29c77bb97/modules/nickserv.cpp#L101
@slingamn Yeah, I've touched that code but it's frustrating that it works the way it does. Kind of amazing that it works on as many networks as it does, as-is.
ZNC's nickserv module is a workaround for networks which don't support SASL.
https://github.com/ircv3/ircv3-specifications/pull/276 defines the ACCOUNT_REQUIRED
code, can be either a FAIL
(if a command fails to process, or e.g. you need SASL setup to connect to the network, etc), or a WARN
(if you need to authenticate to prevent your nickname from getting changed, for example).
I think there should be a standardised way (e.g. a numeric) for a server to inform a client that they are using a nickname/account that requires authentication, e.g. in the scenario of...
There should be a parsable standardised way to communicate this (in addition to the
NOTICE
) so that clients can e.g. give a popup to the user to request credentials (like HTTP Authentication popups)