]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_sasl.cpp
Remove the -Dssize_t declaration now its typedeffed.
[user/henk/code/inspircd.git] / src / modules / m_sasl.cpp
index 069fbdec8076dcabaf5c723d64f0e84f507f1a99..938449bbb3f0a445cf8ca2727eff94779084ede6 100644 (file)
@@ -34,8 +34,8 @@ class SaslAuthenticator : public classbase
        bool state_announced;
 
  public:
-       SaslAuthenticator(User *user_, std::string method, InspIRCd *instance, Module *ctor)
-               : ServerInstance(instance), user(user_), state(SASL_INIT), state_announced(false)
+       SaslAuthenticator(User *user_, std::string method, Module *ctor)
+               : user(user_), state(SASL_INIT), state_announced(false)
        {
                parameterlist params;
                params.push_back("*");
@@ -152,9 +152,10 @@ class CommandAuthenticate : public Command
  public:
        SimpleExtItem<SaslAuthenticator>& authExt;
        GenericCap& cap;
-       CommandAuthenticate (InspIRCd* Instance, Module* Creator, SimpleExtItem<SaslAuthenticator>& ext, GenericCap& Cap)
-               : Command(Instance, Creator, "AUTHENTICATE", 0, 1, true), authExt(ext), cap(Cap)
+       CommandAuthenticate(Module* Creator, SimpleExtItem<SaslAuthenticator>& ext, GenericCap& Cap)
+               : Command(Creator, "AUTHENTICATE", 1), authExt(ext), cap(Cap)
        {
+               works_before_reg = true;
        }
 
        CmdResult Handle (const std::vector<std::string>& parameters, User *user)
@@ -167,7 +168,7 @@ class CommandAuthenticate : public Command
 
                        SaslAuthenticator *sasl = authExt.get(user);
                        if (!sasl)
-                               authExt.set(user, new SaslAuthenticator(user, parameters[0], ServerInstance, creator));
+                               authExt.set(user, new SaslAuthenticator(user, parameters[0], creator));
                        else if (sasl->SendClientMessage(parameters) == false)  // IAL abort extension --nenolod
                        {
                                sasl->AnnounceState();
@@ -182,8 +183,7 @@ class CommandSASL : public Command
 {
  public:
        SimpleExtItem<SaslAuthenticator>& authExt;
-       CommandSASL(InspIRCd* Instance, Module* Creator, SimpleExtItem<SaslAuthenticator>& ext)
-               : Command(Instance, Creator, "SASL", 0, 2), authExt(ext)
+       CommandSASL(Module* Creator, SimpleExtItem<SaslAuthenticator>& ext) : Command(Creator, "SASL", 2), authExt(ext)
        {
                this->disabled = true; // should not be called by users
        }
@@ -223,15 +223,16 @@ class ModuleSASL : public Module
        CommandAuthenticate auth;
        CommandSASL sasl;
  public:
-       ModuleSASL(InspIRCd* Me)
-               : Module(Me), authExt("sasl_auth", this), cap(this, "sasl"), auth(Me, this, authExt, cap), sasl(Me, this, authExt)
+       ModuleSASL()
+               : authExt("sasl_auth", this), cap(this, "sasl"), auth(this, authExt, cap), sasl(this, authExt)
        {
-               Implementation eventlist[] = { I_OnEvent, I_OnUserRegister, I_OnPostConnect, I_OnUserDisconnect, I_OnCleanup };
-               ServerInstance->Modules->Attach(eventlist, this, 5);
+               Implementation eventlist[] = { I_OnEvent, I_OnUserRegister, I_OnPostConnect, I_OnUserDisconnect };
+               ServerInstance->Modules->Attach(eventlist, this, 4);
 
                ServerInstance->AddCommand(&auth);
                ServerInstance->AddCommand(&sasl);
 
+               Extensible::Register(&authExt);
                if (!ServerInstance->Modules->Find("m_services_account.so") || !ServerInstance->Modules->Find("m_cap.so"))
                        ServerInstance->Logs->Log("m_sasl", DEFAULT, "WARNING: m_services_account.so and m_cap.so are not loaded! m_sasl.so will NOT function correctly until these two modules are loaded!");
        }
@@ -254,10 +255,10 @@ class ModuleSASL : public Module
 
        Version GetVersion()
        {
-               return Version("$Id$",VF_VENDOR,API_VERSION);
+               return Version("Provides support for IRC Authentication Layer (aka: atheme SASL) via AUTHENTICATE.",VF_VENDOR,API_VERSION);
        }
 
-       void OnEvent(Event *ev)
+       void OnEvent(Event &ev)
        {
                cap.HandleEvent(ev);
        }