View Issue Details

IDProjectCategoryView StatusLast Update
0006115unrealircdpublic2023-02-08 12:03
ReporterBlackBishop Assigned Tosyzop  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version6.0.3 
Fixed in Version6.0.7 
Summary0006115: host change on vhost even with SASL / feature request: autojoin delay
DescriptionCurrently some users have vhosts requested via anope's hostserv.
The problem is unrealircd's autojoin is too fast that anope doesn't get the chance to change the hostname fast enough.
I tried setting the password on connect or even auth via SASL.
With password on connect there are 3 lines ( connect, authed, host changed). With SASL just connect and host change.
So I see the user connecting with one ip ( even if it is cloaked ) then another one that says it changed its host.
A way to avoid this would be a small delay on the autojoin ?
Steps To Reproducehave a username with vhost via anope's operserv
set-up autojoin in the ircd
TagsNo tags attached.
3rd party modules

Activities

Amiga600

2022-05-27 01:22

reporter   ~0022525

Just an idea but a temporary solution for you would be to remove all "JOIN" commands from your "Perform on Connect" area, and use Anopes AJOIN feature: /NS AJOIN ADD <channel>

Another idea is to put in a delay in your "Perform" box, so it has chance to Identify the user before they join channels (I use mIRC for example with this line: .timer 1 10 /Join #Unreal-Support

Amiga600

2022-05-27 01:33

reporter   ~0022526

Yes autojoin (and the one for Staff autojoin) would be good with maybe a 30-40 second delay so that these sorts of things can be done beforehand

BlackBishop

2022-05-27 08:46

reporter   ~0022528

Thanks for the fast reply!
I did think at all of those, I do have them set for myself.

I wasn't referring to me but the rest of the users who don't have any perform.
Some of them aren't registered either and I don't want to impose that on them. They're not affected in any way.
Some of them use various kiwiirc or irccloud. It would be hard to start now and tell everybody to change or modify what they're doing since I relied on the autojoin feature for so long.
Not all are technical enough to understand.
That's why I was using unreal's autojoin. It was an easy way to just join.

The easier solution would without asking the rest of the "world" to do "backflips" is to change something where the autojoin is being done...

Amiga600

2022-05-27 09:23

reporter   ~0022531

Yes absolutely, Totally agree there

Additionally perhaps have a small user customizable delay, maybe even with a message "This network has autojoin enabled, You will be auto joined into channel #X in 30 seconds .."

for example:

auto-join { channel "#X"; timeout 30; }
oper-auto-join { channel "#Staff"; timeout 30; }

syzop

2023-02-08 12:02

administrator   ~0022728

Last edited: 2023-02-08 12:03

Today I have made a change in UnrealIRCd so the vhost/vident can be set during SASL by services. This means there will be no more host change. The ident and host will be correct straight from the start.

https://github.com/unrealircd/unrealircd/commit/977c4b433a51b1a5c88bd271f85cfde60968fd2d
commit 977c4b433a51b1a5c88bd271f85cfde60968fd2d
Author: Bram Matthys <[email protected]>
Date:   Wed Feb 8 10:39:36 2023 +0100

    Make it so services can CHGHOST/CHGIDENT in the SASL / registration phase.
    This so users can come online directly with the correct vhost set,
    and not first with a standard (usually cloaked) host while auto-(re-)joining
    followed by a CHGHOST later.
    
    This is a long outstanding wish from users, I think.
    
    Services can simply send a CHGHOST/CHGIDENT to the UID, for example
    right before they send the SASL ... D S message (SASL succeeded)
    they can send like: CHGHOST 002ABCDEF some.nice.host
    
    Then UnrealIRCd 6.0.7-git and later will handle the CHGHOST even if
    the user is not known yet. Technically, the server where the UID is
    on will handle the message. And remote servers that don't know the
    user with this UID yet will forward to the server with the SID-portion
    of the UID. The CHGHOST will not be a broadcast but the vhost will
    show up in the UID protocol message that introduces the user.
    For CHGIDENT it is a similar story.
    
    Light testing has been done but more extensive testing is welcomed.

I have submitted a PR to anope to implement the functionality here: https://github.com/anope/anope/pull/304
And I suppose we should do the same for Atheme.

Issue History

Date Modified Username Field Change
2022-05-26 13:45 BlackBishop New Issue
2022-05-27 01:22 Amiga600 Note Added: 0022525
2022-05-27 01:33 Amiga600 Note Added: 0022526
2022-05-27 08:46 BlackBishop Note Added: 0022528
2022-05-27 09:23 Amiga600 Note Added: 0022531
2022-06-05 08:51 syzop Priority low => normal
2023-02-08 12:01 syzop Summary feature request: autojoin delay to prevent host change message => host change on vhost even with SASL / feature request: autojoin delay
2023-02-08 12:02 syzop Assigned To => syzop
2023-02-08 12:02 syzop Status new => resolved
2023-02-08 12:02 syzop Resolution open => fixed
2023-02-08 12:02 syzop Fixed in Version => 6.0.7
2023-02-08 12:02 syzop Note Added: 0022728
2023-02-08 12:03 syzop Note Edited: 0022728