X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fsocket.h;h=47e89070f0fb034dc21f165c3050e2a3501bfbe4;hb=0e6b18ff9180fc7794cea53d0566411b9afb0d7e;hp=9d6c56a182f9c05a426b8758c6067ef7f8113c31;hpb=3b595d39a50e38283768bc6ec8aeb9e73071224f;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/socket.h b/include/socket.h index 9d6c56a18..47e89070f 100644 --- a/include/socket.h +++ b/include/socket.h @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -59,8 +60,11 @@ namespace irc struct sockaddr sa; struct sockaddr_in in4; struct sockaddr_in6 in6; + struct sockaddr_un un; + /** Return the family of the socket (e.g. AF_INET). */ + int family() const; /** Return the size of the structure for syscall passing */ - int sa_size() const; + socklen_t sa_size() const; /** Return port number or -1 if invalid */ int port() const; /** Return IP only */ @@ -84,7 +88,7 @@ namespace irc /** Construct a CIDR mask from the string. Will normalize (127.0.0.1/8 => 127.0.0.0/8). */ cidr_mask(const std::string& mask); /** Construct a CIDR mask of a given length from the given address */ - cidr_mask(const irc::sockets::sockaddrs& addr, int len); + cidr_mask(const irc::sockets::sockaddrs& addr, unsigned char len); /** Equality of bits, type, and length */ bool operator==(const cidr_mask& other) const; /** Ordering defined for maps */ @@ -119,6 +123,9 @@ namespace irc } } +/** A list of failed port bindings, used for informational purposes on startup */ +typedef std::vector > FailedPortList; + #include "socketengine.h" /** This class handles incoming connections on client ports. * It will create a new User for every valid connection @@ -128,10 +135,7 @@ class CoreExport ListenSocket : public EventHandler { public: reference 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 {