X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_cgiirc.cpp;h=ccbaaae320d0aee514841d1b3b38b917bde31a75;hb=86f8294c2de86b8d060abbb02f7c51c0ca0d9ead;hp=0e3e39e0eccd3566d5c2a3ae346155411a675ec4;hpb=84a1569cd60daa64b1ae52a1fff62c0dc4d78850;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_cgiirc.cpp b/src/modules/m_cgiirc.cpp index 0e3e39e0e..ccbaaae32 100644 --- a/src/modules/m_cgiirc.cpp +++ b/src/modules/m_cgiirc.cpp @@ -176,9 +176,9 @@ class ModuleCgiIRC : public Module CommandWebirc cmd; LocalIntExt waiting; - static void RecheckElineAndClass(LocalUser* user) + static void RecheckClass(LocalUser* user) { - user->exempt = (ServerInstance->XLines->MatchesLine("E", user) != NULL); + user->MyClass = NULL; user->SetClass(); user->CheckClass(); } @@ -198,7 +198,7 @@ class ModuleCgiIRC : public Module ChangeIP(user, newip); user->host = user->dhost = user->GetIPString(); user->InvalidateCache(); - RecheckElineAndClass(user); + RecheckClass(user); // Don't create the resolver if the core couldn't put the user in a connect class or when dns is disabled if (user->quitting || ServerInstance->Config->NoUserDns) return; @@ -207,8 +207,8 @@ class ModuleCgiIRC : public Module { bool cached; CGIResolver* r = new CGIResolver(this, cmd.notify, newip, user, (was_pass ? "PASS" : "IDENT"), cached, waiting); - ServerInstance->AddResolver(r, cached); waiting.set(user, waiting.get(user) + 1); + ServerInstance->AddResolver(r, cached); } catch (...) { @@ -225,12 +225,8 @@ public: void init() { OnRehash(NULL); - ServerInstance->AddCommand(&cmd); - ServerInstance->Extensions.Register(&cmd.realhost); - ServerInstance->Extensions.Register(&cmd.realip); - ServerInstance->Extensions.Register(&cmd.webirc_hostname); - ServerInstance->Extensions.Register(&cmd.webirc_ip); - ServerInstance->Extensions.Register(&waiting); + ServiceProvider* providerlist[] = { &cmd, &cmd.realhost, &cmd.realip, &cmd.webirc_hostname, &cmd.webirc_ip, &waiting }; + ServerInstance->Modules->AddServices(providerlist, sizeof(providerlist)/sizeof(ServiceProvider*)); Implementation eventlist[] = { I_OnRehash, I_OnUserRegister, I_OnCheckReady }; ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation)); @@ -299,7 +295,7 @@ public: std::string* webirc_hostname = cmd.webirc_hostname.get(user); user->host = user->dhost = (webirc_hostname ? *webirc_hostname : user->GetIPString()); - RecheckElineAndClass(user); + RecheckClass(user); if (user->quitting) return MOD_RES_DENY;