]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_cgiirc.cpp
m_spanningtree Call the collision handler with the proper parameter (client ip instea...
[user/henk/code/inspircd.git] / src / modules / m_cgiirc.cpp
index f1ead276d504415c31b3f005b9abae0dd8409262..330c1b6c4e40448a30514071599df740ea7d9b6b 100644 (file)
@@ -1,16 +1,28 @@
-/*       +------------------------------------+
- *       | Inspire Internet Relay Chat Daemon |
- *       +------------------------------------+
+/*
+ * InspIRCd -- Internet Relay Chat Daemon
+ *
+ *   Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
+ *   Copyright (C) 2007-2008 John Brooks <john.brooks@dereferenced.net>
+ *   Copyright (C) 2008 Pippijn van Steenhoven <pip88nl@gmail.com>
+ *   Copyright (C) 2006-2008 Craig Edwards <craigedwards@brainbox.cc>
+ *   Copyright (C) 2007 Robin Burchell <robin+git@viroteck.net>
+ *   Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
+ *   Copyright (C) 2006 Oliver Lupton <oliverlupton@gmail.com>
  *
- *  InspIRCd: (C) 2002-2010 InspIRCd Development Team
- * See: http://wiki.inspircd.org/Credits
+ * This file is part of InspIRCd.  InspIRCd is free software: you can
+ * redistribute it and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation, version 2.
  *
- * This program is free but copyrighted software; see
- *            the file COPYING for details.
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+ * details.
  *
- * ---------------------------------------------------
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+
 #include "inspircd.h"
 
 #ifndef WINDOWS
@@ -279,24 +291,22 @@ public:
        {
                std::string *webirc_hostname = cmd.webirc_hostname.get(user);
                std::string *webirc_ip = cmd.webirc_ip.get(user);
+               if (!webirc_ip)
+                       return;
+               ServerInstance->Users->RemoveCloneCounts(user);
+               user->SetClientIP(webirc_ip->c_str());
+               user->InvalidateCache();
                if (webirc_hostname && webirc_hostname->length() < 64)
-               {
-                       user->host = *webirc_hostname;
-                       user->dhost = *webirc_hostname;
-                       user->InvalidateCache();
-               }
-               if (webirc_ip)
-               {
-                       ServerInstance->Users->RemoveCloneCounts(user);
-                       user->SetClientIP(webirc_ip->c_str());
-                       user->InvalidateCache();
-                       cmd.webirc_ip.unset(user);
-                       ServerInstance->Users->AddLocalClone(user);
-                       ServerInstance->Users->AddGlobalClone(user);
-                       user->SetClass();
-                       user->CheckClass();
-                       user->CheckLines(true);
-               }
+                       user->host = user->dhost = *webirc_hostname;
+               else
+                       user->host = user->dhost = user->GetIPString();
+               user->InvalidateCache();
+               ServerInstance->Users->AddLocalClone(user);
+               ServerInstance->Users->AddGlobalClone(user);
+               user->SetClass();
+               user->CheckClass();
+               user->CheckLines(true);
+               cmd.webirc_ip.unset(user);
                cmd.webirc_hostname.unset(user);
        }