diff options
| author | DukePyrolator <DukePyrolator@anope.org> | 2013-06-18 07:35:47 +0200 |
|---|---|---|
| committer | DukePyrolator <DukePyrolator@anope.org> | 2013-06-18 07:35:47 +0200 |
| commit | fc527b464a45c35126028fbf48ebe6edc0744405 (patch) | |
| tree | 2af66f3060facdb453c97103142f7e1bda8160cc /modules | |
| parent | a93b315bd3ede4dfec190ec4d3e25db2b028384a (diff) | |
checking for ssl users when ajoining ssl only channels on inspircd, fixes 1466
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/commands/ns_ajoin.cpp | 2 | ||||
| -rw-r--r-- | modules/protocol/inspircd12.cpp | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/modules/commands/ns_ajoin.cpp b/modules/commands/ns_ajoin.cpp index 836e0cf6d..0304c7394 100644 --- a/modules/commands/ns_ajoin.cpp +++ b/modules/commands/ns_ajoin.cpp @@ -284,7 +284,7 @@ class NSAJoin : public Module continue; else if (c->HasMode("ADMINONLY") && !u->HasMode("ADMIN")) continue; - else if (c->HasMode("SSL") && !u->HasMode("SSL")) + else if (c->HasMode("SSL") && !(u->HasMode("SSL") || u->HasExt("SSL"))) continue; else if (c->MatchesList(u, "BAN") == true && c->MatchesList(u, "EXCEPT") == false) need_invite = true; diff --git a/modules/protocol/inspircd12.cpp b/modules/protocol/inspircd12.cpp index cc1c5eb4c..c257f5d1e 100644 --- a/modules/protocol/inspircd12.cpp +++ b/modules/protocol/inspircd12.cpp @@ -947,7 +947,8 @@ struct IRCDMessageMetadata : IRCDMessage User *u = User::Find(params[0]); if (!u) return; - std::string data = params[2].c_str(); + u->Extend("SSL"); + Anope::string data = params[2].c_str(); size_t pos1 = data.find(' ') + 1; size_t pos2 = data.find(' ', pos1); if ((pos2 - pos1) >= 32) // inspircd supports md5 and sha1 fingerprint hashes -> size 32 or 40 bytes. |
