Subject: Re: bug#10162: [PATCH] 24.0.91; rcirc autojoin broken (freenode/oftc) when rcirc-authenticate-before-join is set

From: Steve Scott <[email-masked]>
Date: Mon, 03 Jun 2019 19:54:16 -0300

There are three cases, and authenticate needs to be called for two of them:

1) auto-authenticate + authenticate-before-join
Use the hook to ensure authentication completes before joining.

2) auto-authenticate but not "before join"
In this case, authenticate must still be called but the hook is not
required because the order is not important.

3) no auto-authenticate
Just join the channels without authenticating.

The "Otherwise" comment refers to the 3rd case:
if auto-authenticate is set but no authinfo is specified we just join
the channels.

I'm not sure authenticate-before-join is even necessary. I would
recommend authenticating before joining be the way it works but that's
probably a separate discussion.

Noam Postavsky writes:

> Steve Scott <[email-masked]> writes:
>
>> Since the hostname returned by irc.freenode.net can be something other
>> than irc.freenode.net, e.g. niven.freenode.net, the entries for
>> rcirc-authinfo and rcirc-server-alist will not match.
>
> Thanks, I was hitting this, and based on your explanation, I changed my
> rcirc-authinfo entry to "[.]freenode[.]net\\'" instead of
> "irc.freenode.net" and autojoin started working.
>
>> +    (if (and rcirc-auto-authenticate-flag
>> +	     ;; We have to ensure that there's an authentication
>> +	     ;; entry for that server.  Otherwise,
>> +             ;; there's no point in calling authenticate.
>> +	     (let (auth-required)
>> +	       (dolist (s rcirc-authinfo auth-required)
>> +		 (when (string-match (car s) rcirc-server)
>> +		   (setq auth-required t)))))
>> +        (if rcirc-authenticate-before-join
>
> But it looks like we're still calling authenticate, even in the
> "otherwise" case, even though you say there's no point?