View Issue Details

IDProjectCategoryView StatusLast Update
0004782unrealircdpublic2016-12-05 09:34
ReporterKnuX Assigned Tosyzop  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version4.0.9 
Fixed in Version4.0.10 
Summary0004782: Linked uline server receive SID for JOIN without asking for SID protocol
DescriptionHi,

I hope I didn't make any mistake in my configuration ;)

I have some custom services connected to my ircd as Ulines servers. They don't send the "recommanded" "SID" in the PROTOCTL command (https://www.unrealircd.org/docs/Server_protocol:PROTOCTL_command#SID_.28Recommended.29). I did not take the time to implement it.

So. Upgrading from the latest UnrealIRCD 3.x, my services doesn't work anymore as expected. It's because the IRC server send the "JOIN" from users connected from other server as ":<UID> JOIN #<chan>" instead of ":<nickname> JOIN #<chan>". If the user is connected to the server where the service is linked, my bot receive the correct nickname.

Here is some logs ("<-" are incoming messages through the uline link, "->" are outgoing messages) :
<- NICK KnuX 1 1480886911 ident fw01.prodin.orbus.fr ircdev02.myserver.net 0 +iwx * Skyrock-FD37C91C.prodin.orbus.fr rBLCGQ== :fullname
<- :202E2I31Z JOIN #chan
<- :ircdev02.myserver.net MODE #test +o KnuX 1480888945
Steps To Reproduce1. Have 2 IRC servers : 01 and 02
2. Connect uline service to 01
3. Connect an user on 02 and make him join #chan
4. => the service will see an UID instead of the nickname
Additional InformationMAP :
* ircdev01.myserver.net (4) 201
* |-boo.myserver.net (4)
* `-ircdev02.myserver.net (5) 202
* `-channels.myserver.net (1)

Logs during the linking process :
-> PASS :****
-> PROTOCTL NICKv2 NICKIP CLK
-> SERVER boo.myserver.net 1480885514 :MyServer IRC Services
<- :ircdev01.myserver.net NOTICE * :*** Looking up your hostname...
<- :ircdev01.myserver.net NOTICE * :*** Found your hostname
<- PASS :****
<- PROTOCTL NOQUIT NICKv2 SJOIN SJOIN2 UMODE2 VL SJ3 TKLEXT TKLEXT2 NICKIP ESVID
<- PROTOCTL CHANMODES=beIqa,kLf,l,psmntirzMQNRTOVKDdGPZSCc PREFIX=(ohv)@%+ NICKCHARS= SID=201 MLOCK TS=1480885515 EXTSWHOIS
<- SERVER ircdev01.myserver.net 1 :U4000-Fhin6OoEM-201 Serveur de Chat de MyServer
<- :ircdev01.myserver.net SMO o :(link) Link ircdev01.myserver.net -> boo.myserver.net[@172.18.104.188.20444] established

Note :
- The service don't send any PROTOCTL SID=xxx.
- During the synchronization, the service receive correct nickname for *all* users, even foreign users
- No issue with only 1 IRC server, of course!
TagsNo tags attached.
3rd party modulesno

Activities

syzop

2016-12-05 09:17

administrator   ~0019547

Last edited: 2016-12-05 09:18

Confirmed.

Not using SJOIN (in PROTOCTL) is rare, though, which would explain why this bug wasn't catched earlier.

Bug caused by nenolod in 2013.

syzop

2016-12-05 09:34

administrator   ~0019548

Fixed:
https://github.com/unrealircd/unrealircd/commit/65caabbb97e5253f1cb546a4b5a55f74caa6efbe
(the first two occurences are harmless, it's the last line replaced which is the actual fix)

Thanks :)

Issue History

Date Modified Username Field Change
2016-12-04 23:22 KnuX New Issue
2016-12-05 09:17 syzop Assigned To => syzop
2016-12-05 09:17 syzop Status new => confirmed
2016-12-05 09:17 syzop Note Added: 0019547
2016-12-05 09:18 syzop Note Edited: 0019547
2016-12-05 09:34 syzop Status confirmed => resolved
2016-12-05 09:34 syzop Resolution open => fixed
2016-12-05 09:34 syzop Fixed in Version => 4.0.10
2016-12-05 09:34 syzop Note Added: 0019548