]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/socket.h
Tons more docs
[user/henk/code/inspircd.git] / include / socket.h
index b7b2b3d40009f82f8194859fc5a7e44e762e8b0c..92cd57130af1cea54de5865b822692b762448ee7 100644 (file)
 #ifndef INSPIRCD_SOCKET_H
 #define INSPIRCD_SOCKET_H
 
-/* This is where we'll define wrappers for socket IO stuff, for neat winsock compatability */
-
+#include <arpa/inet.h>
 #include <sys/time.h>
 #include <sys/resource.h>
 #include <sys/types.h>
 #include <sys/socket.h>
+#include <sys/stat.h>
 #include <netinet/in.h>
 #include <unistd.h>
 #include <fcntl.h>
 #include <poll.h>
+#include <netdb.h>
+#include <errno.h>
 
 #include "inspircd_config.h"
 
-/* macros to the relevant system address description structs */
+namespace irc
+{
+       namespace sockets
+       {
+
+       /* macros to the relevant system address description structs */
 #ifdef IPV6
 
-typedef struct sockaddr_in6 insp_sockaddr;
-typedef struct in6_addr     insp_inaddr;
+               typedef struct sockaddr_in6 insp_sockaddr;
+               typedef struct in6_addr     insp_inaddr;
+#define AF_FAMILY AF_INET6
+#define PF_PROTOCOL PF_INET6
 
 #else
 
-typedef struct sockaddr_in  insp_sockaddr;
-typedef struct in_addr      insp_inaddr;
+               typedef struct sockaddr_in  insp_sockaddr;
+               typedef struct in_addr      insp_inaddr;
+#define AF_FAMILY AF_INET
+#define PF_PROTOCOL PF_INET
 
 #endif
 
-int OpenTCPSocket(); 
-bool BindSocket(int sockfd, insp_sockaddr client, insp_sockaddr server, int port, char* addr);
-int BindPorts(bool bail);
+               bool MatchCIDRBits(unsigned char* address, unsigned char* mask, unsigned int mask_bits);
+               bool MatchCIDR(const char* address, const char* cidr_mask);
+               bool MatchCIDR(const char* address, const char* cidr_mask, bool match_with_username);
+
+               const char* insp_ntoa(insp_inaddr n);
+               int insp_aton(const char* a, insp_inaddr* n);
+
+               void Blocking(int s);
+               void NonBlocking(int s);
+
+               int OpenTCPSocket(); 
+       };
+};
 
 #endif