]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/socket.h
Make the data provider list case insensitive.
[user/henk/code/inspircd.git] / include / socket.h
index aec06b526e53c849120747e3a2c90b0dea7276b9..6ecb230206d07ef4df369ff72777e84a2431613f 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,6 +60,9 @@ 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 */
                        socklen_t sa_size() const;
                        /** Return port number or -1 if invalid */
@@ -116,6 +120,19 @@ 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);
+
+               /** Determines whether the specified file is a UNIX socket.
+                * @param file The path to the file to check.
+                * @return True if the file is a UNIX socket; otherwise, false.
+                */
+               CoreExport bool isunix(const std::string& file);
        }
 }