diff options
-rw-r--r-- | docs/inspircd.conf.example | 10 | ||||
-rw-r--r-- | src/modules/m_sasl.cpp | 19 | ||||
-rw-r--r-- | src/modules/m_services_account.cpp | 9 |
3 files changed, 15 insertions, 23 deletions
diff --git a/docs/inspircd.conf.example b/docs/inspircd.conf.example index 0b8c466ad..5a5a6c7c5 100644 --- a/docs/inspircd.conf.example +++ b/docs/inspircd.conf.example @@ -275,11 +275,15 @@ # module be loaded as well. modes="+x" - # requireident, requiressl, requiresasl: require that users of this - # block have a valid ident response, use SSL, or have authenticated with SASL. - # Requires m_ident, m_sslinfo, or m_sasl respectively + # requireident, requiressl, requireaccount: require that users of this + # block have a valid ident response, use SSL, or have authenticated. + # Requires m_ident, m_sslinfo, or m_services_account respectively. requiressl="on" + # Alternate MOTD file for this connect class. The contents of this file are + # specified using <files secretmotd="filename"> or <execfiles ...> + motd="secretmotd" + # port: What port this user is allowed to connect on. (optional) # The port MUST be set to listen in the bind blocks above. port="6697"> diff --git a/src/modules/m_sasl.cpp b/src/modules/m_sasl.cpp index 3c3b1d2a0..bb2f70448 100644 --- a/src/modules/m_sasl.cpp +++ b/src/modules/m_sasl.cpp @@ -226,8 +226,8 @@ class ModuleSASL : public Module ModuleSASL() : authExt("sasl_auth", this), cap(this, "sasl"), auth(this, authExt, cap), sasl(this, authExt) { - Implementation eventlist[] = { I_OnEvent, I_OnUserRegister, I_OnSetConnectClass }; - ServerInstance->Modules->Attach(eventlist, this, 3); + Implementation eventlist[] = { I_OnEvent, I_OnUserRegister }; + ServerInstance->Modules->Attach(eventlist, this, 2); ServiceProvider* providelist[] = { &auth, &sasl, &authExt }; ServerInstance->Modules->AddServices(providelist, 3); @@ -248,21 +248,6 @@ class ModuleSASL : public Module return MOD_RES_PASSTHRU; } - ModResult OnSetConnectClass(LocalUser* user, ConnectClass* myclass) - { - if (myclass->config->getBool("requiresasl")) - { - const AccountExtItem* ext = GetAccountExtItem(); - if (ext && !ext->get(user)) - return MOD_RES_DENY; - } - return MOD_RES_PASSTHRU; - } - - ~ModuleSASL() - { - } - Version GetVersion() { return Version("Provides support for IRC Authentication Layer (aka: atheme SASL) via AUTHENTICATE.",VF_VENDOR); diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp index 3f1913de4..175e18861 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -120,9 +120,9 @@ class ModuleServicesAccount : public Module ServerInstance->Modules->AddService(m5); ServerInstance->Modules->AddService(accountname); Implementation eventlist[] = { I_OnWhois, I_OnUserPreMessage, I_OnUserPreNotice, I_OnUserPreJoin, I_OnCheckBan, - I_OnDecodeMetaData, I_On005Numeric, I_OnUserPostNick }; + I_OnDecodeMetaData, I_On005Numeric, I_OnUserPostNick, I_OnSetConnectClass }; - ServerInstance->Modules->Attach(eventlist, this, 8); + ServerInstance->Modules->Attach(eventlist, this, 9); } void On005Numeric(std::string &t) @@ -272,8 +272,11 @@ class ModuleServicesAccount : public Module } } - ~ModuleServicesAccount() + ModResult OnSetConnectClass(LocalUser* user, ConnectClass* myclass) { + if (myclass->config->getBool("requireaccount") && !accountname.get(user)) + return MOD_RES_DENY; + return MOD_RES_PASSTHRU; } Version GetVersion() |