View Issue Details

IDProjectCategoryView StatusLast Update
0005015unrealircdpublic2017-10-07 13:39
ReporterKoraggAssigned Tosyzop 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version4.0.13 
Target VersionFixed in Version4.0.16 
Summary0005015: set::allow-userhost-change force-rejoin not working
DescriptionFirst of all thank you very much for viewing my issue 0005012 and taking it into consideration. I was not aware of the set::allow-userhost-change force-rejoin option and implemented it, yet it appears to be a bit buggy: when someone has been assigned a vhost via HostServ and uses /hs off to turn it off, when user mode +x is reset, the cycling of channels is NOT performed; only when the vhost is enabled.
This behaviour does not seem to be intended, and this is with the default UnrealIRCd cloaking module.
Steps To ReproduceThe UnrealIRCd version is 4.0.13 and the services utilized are Anope IRC Services version 2.0.5
TagsNo tags attached.
3rd party modules

Activities

syzop

2017-09-24 11:16

administrator   ~0019885

I'll take a look. Sounds easy to reproduce :)
Probably an oversight in the source code somewhere. Funny nobody mentioned it before.

syzop

2017-10-07 13:37

administrator   ~0019893

Thanks for the bug report.

I ended up doing this in a big commit:
https://github.com/unrealircd/unrealircd/commit/5124e60b7cd12da3d0d261b671c0a55b2bbc5f05

commit 5124e60b7cd12da3d0d261b671c0a55b2bbc5f05
Author: Bram Matthys <syzop@vulnscan.org>
Date: Sat Oct 7 13:31:30 2017 +0200

    Add "CAP chghost" support. Internal recode of userhost changes.
    Fix force-rejoin not working if doing SVSMODE -x/+x (Koragg, 0005015).
    
    Note to module coders:
    Please use the following procedure in case of an user/host change:
    * userhost_save_current(acptr);
    * << change username or hostname here (or both) >>
    * userhost_changed(acptr);
    This function will take care of notifying other clients about
    the userhost change, such as doing PART+JOIN+MODE if force-rejoin
    is enabled, and sending :xx CHGHOST user host messages to
    "CAP chghost" capable clients.
    
    Also, small note to everyone:
    If force-rejoin is enabled we will not send the PART+JOIN+MODE to
    "CAP chghost" capable clients. Doing so is just a hack to notify
    people of a userhost change. "CAP chghost" users can thus benefit
    from the reduced noise in this respect.

syzop

2017-10-07 13:39

administrator   ~0019895

Also, if you find any other places where we are missing host change notification, then do let me know. I think they are all covered (and there were many) but it's always possible to miss one.

Issue History

Date Modified Username Field Change
2017-09-24 11:11 syzop New Issue
2017-09-24 11:11 syzop Status new => assigned
2017-09-24 11:11 syzop Assigned To => syzop
2017-09-24 11:11 syzop Issue generated from: 0005012
2017-09-24 11:13 syzop Reporter syzop => Koragg
2017-09-24 11:13 syzop Severity feature => minor
2017-09-24 11:13 syzop Status assigned => new
2017-09-24 11:13 syzop Product Version => 4.0.13
2017-09-24 11:13 syzop Summary IRCv3 chghost caps support => set::allow-userhost-change force-rejoin not working
2017-09-24 11:13 syzop Description Updated View Revisions
2017-09-24 11:13 syzop Steps to Reproduce Updated View Revisions
2017-09-24 11:16 syzop Note Added: 0019885
2017-10-07 13:37 syzop Status new => resolved
2017-10-07 13:37 syzop Resolution open => fixed
2017-10-07 13:37 syzop Fixed in Version => 4.0.16
2017-10-07 13:37 syzop Note Added: 0019893
2017-10-07 13:39 syzop Note Added: 0019895