]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/socket.h
Add ModeParser::IsModeChar to standardise mode validation.
[user/henk/code/inspircd.git] / include / socket.h
index 52294fe719eb329018375ed4bfbd1f054cf4b077..8c7cc2e4e06bcdaf6206bc80d5e8d843011c024f 100644 (file)
@@ -116,17 +116,12 @@ namespace irc
                 * @return true if the conversion was successful, false if not.
                 */
                CoreExport bool aptosa(const std::string& addr, int port, irc::sockets::sockaddrs& sa);
-
-               /** Convert a binary sockaddr to an address-port pair
-                * @param sa The structure to convert
-                * @param addr the IP address
-                * @param port the port
-                * @return true if the conversion was successful, false if unknown address family
-                */
-               CoreExport bool satoap(const irc::sockets::sockaddrs& sa, std::string& addr, int &port);
        }
 }
 
+/** A list of failed port bindings, used for informational purposes on startup */
+typedef std::vector<std::pair<irc::sockets::sockaddrs, int> > FailedPortList;
+
 #include "socketengine.h"
 /** This class handles incoming connections on client ports.
  * It will create a new User for every valid connection
@@ -136,15 +131,23 @@ class CoreExport ListenSocket : public EventHandler
 {
  public:
        reference<ConfigTag> bind_tag;
-       std::string bind_addr;
-       int bind_port;
-       /** Human-readable bind description */
-       std::string bind_desc;
+       const irc::sockets::sockaddrs bind_sa;
+
+       class IOHookProvRef : public dynamic_reference_nocheck<IOHookProvider>
+       {
+        public:
+               IOHookProvRef()
+                       : dynamic_reference_nocheck<IOHookProvider>(NULL, std::string())
+               {
+               }
+       };
+
+       typedef TR1NS::array<IOHookProvRef, 2> IOHookProvList;
 
-       /** The IOHook provider which handles connections on this socket,
-        * NULL if there is none.
+       /** IOHook providers for handling connections on this socket,
+        * may be empty.
         */
-       dynamic_reference_nocheck<IOHookProvider> iohookprov;
+       IOHookProvList iohookprovs;
 
        /** Create a new listening socket
         */