]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/socket.h
Various text improvements: consistency, syntax, help and doc updates/fixes.
[user/henk/code/inspircd.git] / include / socket.h
index 8c7cc2e4e06bcdaf6206bc80d5e8d843011c024f..e527bc7f54aa89c86b53253e6a38f4056f80882a 100644 (file)
@@ -32,6 +32,7 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/stat.h>
+#include <sys/un.h>
 #include <netinet/in.h>
 #include <unistd.h>
 #include <fcntl.h>
@@ -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 */
@@ -116,6 +120,13 @@ 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 UNIX socket path to a binary sockaddr.
+                * @param path The path to the UNIX socket.
+                * @param sa The structure to place the result in. Will be zeroed prior to conversion.
+                * @return True if the conversion was successful; otherwise, false.
+                */
+               CoreExport bool untosa(const std::string& path, irc::sockets::sockaddrs& sa);
        }
 }