diff options
| author | 2019-05-15 15:11:31 +0100 | |
|---|---|---|
| committer | 2019-05-15 15:26:55 +0100 | |
| commit | 1d5b18de82a90317291a10acb3b9132324c0e98b (patch) | |
| tree | be49087463332fcb617dd88567afce5cea6eb8c6 /src/modules/m_sslmodes.cpp | |
| parent | Merge branch 'insp3' into master. (diff) | |
| parent | Document the --disable-auto-extras configure option. (diff) | |
Merge branch 'insp3' into master.
Diffstat (limited to 'src/modules/m_sslmodes.cpp')
| -rw-r--r-- | src/modules/m_sslmodes.cpp | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/modules/m_sslmodes.cpp b/src/modules/m_sslmodes.cpp index ba774a135..8a9b5d28d 100644 --- a/src/modules/m_sslmodes.cpp +++ b/src/modules/m_sslmodes.cpp @@ -23,6 +23,7 @@ #include "inspircd.h" +#include "modules/ctctags.h" #include "modules/ssl.h" enum @@ -132,7 +133,9 @@ class SSLModeUser : public ModeHandler } }; -class ModuleSSLModes : public Module +class ModuleSSLModes + : public Module + , public CTCTags::EventListener { private: UserCertificateAPI api; @@ -141,7 +144,8 @@ class ModuleSSLModes : public Module public: ModuleSSLModes() - : api(this) + : CTCTags::EventListener(this) + , api(this) , sslm(this, api) , sslquery(this, api) { @@ -153,13 +157,13 @@ class ModuleSSLModes : public Module { if (!api) { - user->WriteNumeric(ERR_SECUREONLYCHAN, cname, "Cannot join channel; unable to determine if you are a SSL user (+z)"); + user->WriteNumeric(ERR_SECUREONLYCHAN, cname, "Cannot join channel; unable to determine if you are an SSL user (+z is set)"); return MOD_RES_DENY; } if (!api->GetCertificate(user)) { - user->WriteNumeric(ERR_SECUREONLYCHAN, cname, "Cannot join channel; SSL users only (+z)"); + user->WriteNumeric(ERR_SECUREONLYCHAN, cname, "Cannot join channel; SSL users only (+z is set)"); return MOD_RES_DENY; } } @@ -167,7 +171,7 @@ class ModuleSSLModes : public Module return MOD_RES_PASSTHRU; } - ModResult OnUserPreMessage(User* user, const MessageTarget& msgtarget, MessageDetails& details) override + ModResult HandleMessage(User* user, const MessageTarget& msgtarget) { if (msgtarget.type != MessageTarget::TYPE_USER) return MOD_RES_PASSTHRU; @@ -184,7 +188,7 @@ class ModuleSSLModes : public Module if (!api || !api->GetCertificate(user)) { /* The sending user is not on an SSL connection */ - user->WriteNumeric(ERR_CANTSENDTOUSER, target->nick, "You are not permitted to send private messages to this user (+z set)"); + user->WriteNumeric(ERR_CANTSENDTOUSER, target->nick, "You are not permitted to send private messages to this user (+z is set)"); return MOD_RES_DENY; } } @@ -193,7 +197,7 @@ class ModuleSSLModes : public Module { if (!api || !api->GetCertificate(target)) { - user->WriteNumeric(ERR_CANTSENDTOUSER, target->nick, "You must remove usermode 'z' before you are able to send private messages to a non-ssl user."); + user->WriteNumeric(ERR_CANTSENDTOUSER, target->nick, "You must remove user mode 'z' before you are able to send private messages to a non-SSL user."); return MOD_RES_DENY; } } @@ -201,6 +205,16 @@ class ModuleSSLModes : public Module return MOD_RES_PASSTHRU; } + ModResult OnUserPreMessage(User* user, const MessageTarget& target, MessageDetails& details) override + { + return HandleMessage(user, target); + } + + ModResult OnUserPreTagMessage(User* user, const MessageTarget& target, CTCTags::TagMessageDetails& details) override + { + return HandleMessage(user, target); + } + ModResult OnCheckBan(User *user, Channel *c, const std::string& mask) override { if ((mask.length() > 2) && (mask[0] == 'z') && (mask[1] == ':')) @@ -219,7 +233,7 @@ class ModuleSSLModes : public Module Version GetVersion() override { - return Version("Provides user and channel mode +z to allow for SSL-only channels, queries and notices.", VF_VENDOR); + return Version("Provides user and channel mode +z to allow for SSL-only channels, queries and notices", VF_VENDOR); } }; |
