]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/socket.h
Add #include <sys/select.h> to select engine, we probably need it
[user/henk/code/inspircd.git] / include / socket.h
index 3e681f1c4b27b4fde7e2fa428e26cfcb30cfad4b..4387797df0c350ad638729f083d46a41d27d785b 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  Inspire is copyright (C) 2002-2004 ChatSpike-Dev.
+ *  InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
  *                       E-mail:
  *                <brain@chatspike.net>
  *               <Craig@chatspike.net>
  * ---------------------------------------------------
  */
 
-#include <sstream>
-#include <string>
-
-enum InspSocketState { I_DISCONNECTED, I_CONNECTING, I_CONNECTED, I_LISTENING };
-
-class InspSocket
-{
-private:
-        int fd;
-       std::string host;
-       int port;
-       InspSocketState state;
-public:
-       InspSocket();
-       InspSocket(std::string host, int port, bool listening);
-       void Poll();
-       virtual int OnConnected();
-       virtual int OnError();
-       virtual int OnDisconnect();
-       virtual int OnIncomingConnection();
-       ~InspSocket();
-};
+#ifndef INSPIRCD_SOCKET_H
+#define INSPIRCD_SOCKET_H
+
+#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 */
+#ifdef IPV6
+
+typedef struct sockaddr_in6 insp_sockaddr;
+typedef struct in6_addr     insp_inaddr;
+
+#else
+
+typedef struct sockaddr_in  insp_sockaddr;
+typedef struct in_addr      insp_inaddr;
+
+#endif
+
+int OpenTCPSocket(); 
+bool BindSocket(int sockfd, insp_sockaddr client, insp_sockaddr server, int port, char* addr);
+int BindPorts(bool bail);
+
+#endif