diff options
| author | DukePyrolator <DukePyrolator@anope.org> | 2010-12-30 05:50:55 +0100 |
|---|---|---|
| committer | DukePyrolator <DukePyrolator@anope.org> | 2010-12-30 05:50:55 +0100 |
| commit | 2784cd17fc5e0ee4ad0571a6b9e131fa38a93a65 (patch) | |
| tree | 9978409f958f97d4932879c0d65363ec24b799d5 /modules/protocol/unreal32.cpp | |
| parent | 292e1875246a6398cdc9f04ee91d7bb43dc40b45 (diff) | |
| parent | 03cc9eb5c597e37239debac25a7ed6ad4f4d9411 (diff) | |
Merge branch '1.9' of ssh://anope.git.sourceforge.net/gitroot/anope/anope into 1.9
Diffstat (limited to 'modules/protocol/unreal32.cpp')
| -rw-r--r-- | modules/protocol/unreal32.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/modules/protocol/unreal32.cpp b/modules/protocol/unreal32.cpp index 4c0d79ee2..cc4fc23df 100644 --- a/modules/protocol/unreal32.cpp +++ b/modules/protocol/unreal32.cpp @@ -375,6 +375,24 @@ class UnrealIRCdProto : public IRCDProto { ircdproto->SendMode(NickServ, u, "+d 1"); } + + void SendChannel(Channel *c, const Anope::string &modes) + { + /* Unreal does not support updating a channels TS without actually joining a user, + * so we will join and part us now + */ + BotInfo *bi = whosends(c->ci); + if (c->FindUser(bi) == NULL) + { + bi->Join(c, true); + bi->Part(c); + } + else + { + bi->Part(c); + bi->Join(c, true); + } + } }; class Unreal32IRCdMessage : public IRCdMessage @@ -695,9 +713,6 @@ class Unreal32IRCdMessage : public IRCdMessage { c->creation_time = ts; c->Reset(); - - /* Reset mlock */ - check_modes(c); } /* Their TS is newer than ours, our modes > theirs, unset their modes if need be */ else if (ts > c->creation_time) @@ -977,7 +992,7 @@ bool ChannelModeFlood::IsValid(const Anope::string &value) const if (value[0] != ':' && convertTo<unsigned>(value[0] == '*' ? value.substr(1) : value, rest, false) > 0 && rest[0] == ':' && rest.length() > 1 && convertTo<unsigned>(rest.substr(1), rest, false) > 0 && rest.empty()) return true; } - catch (const CoreException &) { } // convertTo fail + catch (const ConvertException &) { } /* '['<number><1 letter>[optional: '#'+1 letter],[next..]']'':'<number> */ size_t end_bracket = value.find(']', 1); |
