]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspsocket.cpp
Remove FindDescriptor wrapper for GetRef, it doesn't do anything useful and in fact...
[user/henk/code/inspircd.git] / src / inspsocket.cpp
index 391d7fe82d4367b161a685a661a0ea76214ded98..a46dffec8323f8f63272643c244d361ba72932c8 100644 (file)
@@ -3,7 +3,7 @@
  *       +------------------------------------+
  *
  *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
- * See: http://www.inspircd.org/wiki/index.php/Credits
+ * See: http://wiki.inspircd.org/Credits
  *
  * This program is free but copyrighted software; see
  *            the file COPYING for details.
@@ -170,15 +170,15 @@ bool BufferedSocket::BindAddr(const std::string &ip_to_bind)
 {
        ConfigReader Conf(this->ServerInstance);
        bool v6 = false;
-#ifdef IPV6
-       /* Are we looking for a binding to fit an ipv6 host? */
-       if ((ip_to_bind.empty()) || (ip_to_bind.find(':') != std::string::npos))
-               v6 = true;
-#endif
 
        // Case one: If they provided an IP, try bind it
        if (!ip_to_bind.empty())
        {
+#ifdef IPV6
+               // Check whether or not they are binding to an IPv6 IP..
+               if (ip_to_bind.find(':') != std::string::npos)
+                       v6 = true;
+#endif
                // And if it fails, don't do anything.
                return this->DoBindMagic(ip_to_bind, v6);
        }
@@ -192,6 +192,14 @@ bool BufferedSocket::BindAddr(const std::string &ip_to_bind)
                // set current IP to the <bind> tag
                std::string current_ip = Conf.ReadValue("bind","address",j);
 
+#ifdef IPV6
+               // Check whether this <bind> is for an ipv6 address
+               if (current_ip.find(':') != std::string::npos)
+                       v6 = true;
+               else
+                       v6 = false;
+#endif
+
                // Make sure IP is nothing local
                if (current_ip == "*" || current_ip == "127.0.0.1" || current_ip.empty() || current_ip == "::1")
                        continue;