]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_cgiirc.cpp
Merge pull request #495 from SaberUK/master+fix-libcpp
[user/henk/code/inspircd.git] / src / modules / m_cgiirc.cpp
index 63efd6bae8caf541b844c181cf800c8225b51ddc..7259f9459c74ccd2a07275b094d225548ee47766 100644 (file)
@@ -136,6 +136,10 @@ class CGIResolver : public Resolver
                User* them = ServerInstance->FindUUID(theiruid);
                if ((them) && (!them->quitting))
                {
+                       LocalUser* lu = IS_LOCAL(them);
+                       if (!lu)
+                               return;
+
                        if (notify)
                                ServerInstance->SNO->WriteGlobalSno('a', "Connecting user %s detected as using CGI:IRC (%s), changing real host to %s from %s", them->nick.c_str(), them->host.c_str(), result.c_str(), typ.c_str());
 
@@ -144,7 +148,7 @@ class CGIResolver : public Resolver
                        them->host = result;
                        them->dhost = result;
                        them->InvalidateCache();
-                       them->CheckLines(true);
+                       lu->CheckLines(true);
                }
        }
 
@@ -176,9 +180,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 +202,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;
@@ -251,7 +255,7 @@ public:
                        {
                                if (type == "webirc" && password.empty())
                                {
-                                       ServerInstance->Logs->Log("CONFIG",DEFAULT, "m_cgiirc: Missing password in config: %s", hostmask.c_str());
+                                       ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT, "m_cgiirc: Missing password in config: %s", hostmask.c_str());
                                }
                                else
                                {
@@ -267,7 +271,7 @@ public:
                                        else
                                        {
                                                cgitype = PASS;
-                                               ServerInstance->Logs->Log("CONFIG",DEFAULT, "m_cgiirc.so: Invalid <cgihost:type> value in config: %s, setting it to \"pass\"", type.c_str());
+                                               ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT, "m_cgiirc.so: Invalid <cgihost:type> value in config: %s, setting it to \"pass\"", type.c_str());
                                        }
 
                                        cmd.Hosts.push_back(CGIhost(hostmask, cgitype, password));
@@ -275,7 +279,7 @@ public:
                        }
                        else
                        {
-                               ServerInstance->Logs->Log("CONFIG",DEFAULT, "m_cgiirc.so: Invalid <cgihost:mask> value in config: %s", hostmask.c_str());
+                               ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT, "m_cgiirc.so: Invalid <cgihost:mask> value in config: %s", hostmask.c_str());
                                continue;
                        }
                }
@@ -295,7 +299,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;