Anope Bug Tracker - Anope Stable (2.0.x series)
View Issue Details
0001627Anope Stable (2.0.x series)[All Projects] Generalpublic2014-12-06 14:112014-12-11 21:40
0001627: +x usermode sometimes set on services restart when it should not be set
When ns_keep_modes option on an account is set, then services give me +x when I restart them, although it does not happen on identify.
1. The server should set usermode +x for each connecting user.
2. The user account should have keepmodes turned on, in my case, after doing it, I set modes +iIwW on myself.
3. I didn't test this in every possible scenario, in my case I had a ssl certificate fingerprint added to the account for login, and my client didn't use any form of SASL authentication.
4. I connect to the IRC server using ssl and my client certificate. when user registration finishes, I get usermode +x set on myself.
5. Because I have an irc operator account with ssl cert fingerprint set and autologin set to true, I am then logged in to the ircop account and subsequently get +o then +hs with appropriate snomask. Also, because my opertype has a vhost "" set, server changes my displayed host to it and unsets +x mode as it should.
6. I see the server notice about me connecting, I believe that it is the time services see me. Services identify me using my fingerprint, and set +iIrwW, so everything seems correct.
7. I restart services. when they return to the network, I get usermode +x set again on me, that in turn unsets the vhost from my opertype, I don't think it should happen as usermode +x was never set on login.
I use server inspircd-2.0.18, anope version 2.0 from git.
No tags attached.
Issue History
2014-12-06 14:11webczatNew Issue
2014-12-11 19:41webczatNote Added: 0006684
2014-12-11 21:40webczatNote Added: 0006685

2014-12-11 21:40   
I tried to fix this issue, probably succeeded. this is the link to the pull request: [^]
2014-12-11 19:41   

I have discovered what actually causes the bug.

When I connect and get +x on connection, my host is cloaked.
When I oper up and my vhost changes, inspircd unsets +x on me, but the mode change is not broadcast to other servers, only vhost change is.
So servers see the vhost change and then reflect this by unsetting +x in their view of the user, but anope does not and thinks the user still has +x, that is a small desync.