]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/socket.h
Routing more socket includes through socket.h
[user/henk/code/inspircd.git] / include / socket.h
index 051d9a4533f9f845bf8be7d12eb86df8dd2f3b17..1dd2e6827372b33fa6e2ab564418b7764d1020f9 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>
  * ---------------------------------------------------
  */
 
-#ifndef __INSP_SOCKET_H__
-#define __INSP_SOCKET_H__
+#ifndef INSPIRCD_SOCKET_H
+#define INSPIRCD_SOCKET_H
 
+/* This is where we'll define wrappers for socket IO stuff, for neat winsock compatability */
+
+#ifndef WIN32
+
+#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 <sstream>
-#include <string>
-
-enum InspSocketState { I_DISCONNECTED, I_CONNECTING, I_CONNECTED, I_LISTENING, I_ERROR };
-enum InspSocketError { I_ERR_TIMEOUT, I_ERR_SOCKET, I_ERR_CONNECT };
-
-class InspSocket
-{
-private:
-        int fd;
-       std::string host;
-       int port;
-       InspSocketState state;
-        sockaddr_in addr;
-        in_addr addy;
-        time_t timeout_end;
-        bool timeout;
-       pollfd polls;
-       char ibuf[1024];
-public:
-       InspSocket();
-       InspSocket(std::string host, int port, bool listening, unsigned long maxtime);
-       virtual bool OnConnected();
-       virtual void OnError(InspSocketError e);
-       virtual int OnDisconnect();
-       virtual bool OnDataReady();
-       virtual void OnTimeout();
-       virtual void OnClose();
-       virtual char* Read();
-       virtual int Write(std::string data);
-       virtual int OnIncomingConnection();
-       void SetState(InspSocketState s);
-       bool Poll();
-       virtual void Close();
-       virtual ~InspSocket();
-};
+#include <netdb.h>
+#include <errno.h>
+
+#else
+
+#include <windows_defs.h>
+#include <winsock2.h>
+
+#endif
+
+#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