From b4b2a7bd1b80c4b8e31cfb8adb7e33a08051260d Mon Sep 17 00:00:00 2001 From: rburchell Date: Wed, 17 Dec 2008 19:22:35 +0000 Subject: [PATCH] Forward-port 0f3414de39df90405cf6c98a51194e957e8e5afa from 1.8: don't set +d when setting svid on a user w/ unreal protocol. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1830 5417fbe8-f217-4b02-8779-1006273d7864 --- src/protocol/unreal32.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/protocol/unreal32.c b/src/protocol/unreal32.c index 97e523e44..acfcc8c73 100644 --- a/src/protocol/unreal32.c +++ b/src/protocol/unreal32.c @@ -555,7 +555,15 @@ class UnrealIRCdProto : public IRCDProto if (ac <= 0) break; --ac; ++av; - if (av) user->svid = strtoul(*av, NULL, 0); + if (av) + user->svid = strtoul(*av, NULL, 0); + + /* Unreal annoyingly uses +d for deaf as well as svid, so if a svid was set, unset +d (this actually means that + * in practice, we could lose someone's svid if they set +d after identifying, so this fix is crap) + * XXX: fix it better + */ + if (user->svid) + user->mode &= ~UMODE_d; break; case 'o': if (add) {