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

Let Identify/Login run before joining channels on reconnect... #274

Closed
AlbinoGeek opened this issue Nov 4, 2020 · 9 comments · Fixed by #344
Closed

Let Identify/Login run before joining channels on reconnect... #274

AlbinoGeek opened this issue Nov 4, 2020 · 9 comments · Fixed by #344

Comments

@AlbinoGeek
Copy link

As it is now, channel rejoin happens immediately upon reconnect (from system resume, etc.) -- which means that joining channels with a +r literally doesn't work, as you are redirected to some other channel, and as a result, the chat log is cleared. Couple this with the fact the client has no real chat log, and you have a destructive experience.

It defeats the entire purpose of having the client save my NickServ / IDENT password.

@SilverRainZ
Copy link
Member

Hello.

Let Identify/Login run before joining channels on reconnect

I thinks Srain already act like this now.

Are you login by typing /msg NickServ identify <password>?

@SilverRainZ SilverRainZ self-assigned this Nov 8, 2020
@AlbinoGeek
Copy link
Author

on reconnect is the issue here. I do not use the command explicitly because under the advanced tab of the main client, you can choose for the client to login for me. However, it tries to join channels before authenticating if the program is reconnecting.

Reconnection happens due to network loss or system resume from suspend.

@SilverRainZ
Copy link
Member

Sorry for responsing so late.

I think i know where the problem is. Have you check the "remember password" togglebutton when you login?

@AlbinoGeek
Copy link
Author

Right, I do have Remember Password toggled.

Again, this issue happens on reconnect specifically.

IRC flow should be:

CONNECT
USER
IDENT
LOGIN (NickServ, etc.)
JOIN (...)

srain flow is instead:

CONNECT
USER
JOIN (...) // fails because I'm not logged in and the channels require +r
IDENT
LOGIN (NickServ, etc.)

@AlbinoGeek
Copy link
Author

Had I not explained the issue well enough?

Normal IRC clients will login before joining channels, srain does not.

Therefore, the channel joins fail (because they require +r)

@SilverRainZ
Copy link
Member

Hi AlbinoGeek, you have explianed it well.

Couple this with the fact the client has no real chat log

Srain has chat log, see: https://doc.srain.im/en/latest/misc.html#chat-logs

srain flow is instead: ...

Srain's flow is almost same as other IRC client. but srain doesn't save you password in memory, it only query password from dbus secret service, you doesn't toggle "remember password", so srain get nothing, so you are no login when you reconnected. We can treat it as a bug, but how to fix it is debatable.

@AlbinoGeek
Copy link
Author

AlbinoGeek commented Feb 25, 2021 via email

@AlbinoGeek
Copy link
Author

Currently, when you resume your computer from standby, the following message will show up in every channel:

ERROR[477] You need a registered nick to join that channel.

Why? Because srain is rejoining channels before logging in.

And yes, it does in fact login, but only after NickServ asks it to. (e.g: it doesn't even attempt to pre-empt NickServ, even though it would know full well it was logged in before my computer was suspended...

The server log on a reconnect is as follows:

Server capabilities: unrealircd.org/plaintext-policy=user=allow,oper=warn,server=allow unrealircd.org/link-security=0 extended-join chghost cap-notify userhost-in-names multi-prefix away-notify account-notify sasl=PLAIN,AUTHCOOKIE tls

Requesting capabilities: cap-notify sasl 

Acknowledged capabilities: cap-notify sasl=PLAIN,AUTHCOOKIE

Logging in with msg-nickserv...

[ IRCd welcome message ]
[ IRCd extended welcome message ]
[ IRCd extended message of the day ]
[ InfoServ message of the day ]

// <-- srain attempts to join channels, and obviously fails

mode MyUsername +iwxzR  by MyUsername

// <-- srain should be attempting to join channels here, after the IRCd confirms a +R mode set....

@SilverRainZ
Copy link
Member

SASL auth is always run before rejoin, but NickServ auth doesn't, I wil fix this recently.

cc @starsareintherose

@SilverRainZ SilverRainZ changed the title [FEATURE REQUEST] Let Identify/Login run before joining channels on reconnect... Let Identify/Login run before joining channels on reconnect... Dec 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants