summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modes/umode_s.cpp2
-rw-r--r--src/users.cpp6
2 files changed, 7 insertions, 1 deletions
diff --git a/src/modes/umode_s.cpp b/src/modes/umode_s.cpp
index 93bc60cac..0f1764a7e 100644
--- a/src/modes/umode_s.cpp
+++ b/src/modes/umode_s.cpp
@@ -30,8 +30,8 @@ ModeAction ModeUserServerNoticeMask::OnModeChange(User* source, User* dest, Chan
if (!dest->modes[UM_SNOMASK])
dest->snomasks.reset();
- parameter = dest->ProcessNoticeMasks(parameter.c_str());
dest->modes[UM_SNOMASK] = true;
+ parameter = dest->ProcessNoticeMasks(parameter.c_str());
return MODEACTION_ALLOW;
}
else
diff --git a/src/users.cpp b/src/users.cpp
index 0a196d798..a8a1ba6b3 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -90,6 +90,12 @@ std::string User::ProcessNoticeMasks(const char *sm)
*c++;
}
+ std::string s = this->FormatNoticeMasks();
+ if (s.length() == 0)
+ {
+ this->modes[UM_SNOMASK] = false;
+ }
+
return output;
}