hellabot: SASL is not working against Oregano

Oragono is a modern IRC server written in Go. When testing SASL against a vanillia setup, it quits with a timeout error:

DBUG[07-02|17:16:16] Starting bot goroutines                 id=ea486971cf90e13e host=127.0.0.1:6667 nick=rfc2119
DBUG[07-02|17:16:16] Connecting                 id=ea486971cf90e13e host=127.0.0.1:6667 nick=rfc2119
INFO[07-02|17:16:16] Connected successfully!                 id=ea486971cf90e13e host=127.0.0.1:6667 nick=rfc2119
DBUG[07-02|17:16:16] Beginning SASL Authentication            id=ea486971cf90e13e host=127.0.0.1:6667 nick=rfc2119
DBUG[07-02|17:16:16] Outgoing                 id=ea486971cf90e13e host=127.0.0.1:6667 nick=rfc2119 data="CAP REQ :sasl"
DBUG[07-02|17:16:16] Incoming                 id=ea486971cf90e13e host=127.0.0.1:6667 nick=rfc2119 raw=":welp.server CAP *ACK sasl" msg.To=* msg.From=welp.server msg.Params="[* ACK sasl]" msg.Trailing=
DBUG[07-02|17:16:16] Outgoing                 id=ea486971cf90e13e host=127.0.0.1:6667 nick=rfc2119 data="NICK rfc2119"
DBUG[07-02|17:16:17] Outgoing                 id=ea486971cf90e13e host=127.0.0.1:6667 nick=rfc2119 data="USER rfc2119 8 * :rfc2119"
DBUG[07-02|17:17:16] Incoming                 id=ea486971cf90e13e host=127.0.0.1:6667 nick=rfc2119 raw="ERROR :Registration timeout: 1m0s" msg.To= msg.From= msg.Params=[] msg.Trailing="Registration timeout: 1m0s"
DBUG[07-02|17:17:16] Recieved SASL ACK                 id=ea486971cf90e13e host=127.0.0.1:6667 nick=rfc2119
DBUG[07-02|17:17:16] Got auth message!                 id=ea486971cf90e13e host=127.0.0.1:6667 nick=rfc2119

the user rfc2119 is registered with NickServ, and I can use an IRC client to authenticate with SASL normally.

Where I think the issue lies is here: https://github.com/whyrusleeping/hellabot/blob/1ea75c7dc208e69c69d330273d6ba35fff38161d/hellabot.go#L162

I don’t know what is mode 8, and according to this modern IRC document:

The second and third parameters of this command SHOULD be sent as one zero (‘0’, 0x30) and one asterisk character (‘*’, 0x2A) by the client, as the meaning of these two parameters varies between different versions of the IRC protocol

Also, please look at the example exchange scenario in the IRCv3 specification. I do not know what is the 8, do you think it cause the error ?

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 19 (8 by maintainers)

Most upvoted comments

LGTM! thank you @ugjka and @flexd

@flexd just did

I know this isn’t the right place for this, but I’m stepping away from this project. @flexd its all you now.