]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - include/socket.h
499a4d375fa869054cc33eaaf8e73b61f7fc8fae
[user/henk/code/inspircd.git] / include / socket.h
1 /*       +------------------------------------+
2  *       | Inspire Internet Relay Chat Daemon |
3  *       +------------------------------------+
4  *
5  *  Inspire is copyright (C) 2002-2004 ChatSpike-Dev.
6  *                       E-mail:
7  *                <brain@chatspike.net>
8  *                <Craig@chatspike.net>
9  *     
10  * Written by Craig Edwards, Craig McLure, and others.
11  * This program is free but copyrighted software; see
12  *            the file COPYING for details.
13  *
14  * ---------------------------------------------------
15  */
16
17 #include <sys/types.h>
18 #include <sys/socket.h>
19 #include <netinet/in.h>
20 #include <sstream>
21 #include <string>
22
23 enum InspSocketState { I_DISCONNECTED, I_CONNECTING, I_CONNECTED, I_LISTENING, I_ERROR };
24
25 class InspSocket
26 {
27 private:
28         int fd;
29         std::string host;
30         int port;
31         InspSocketState state;
32         sockaddr_in addr;
33         in_addr addy;
34         time_t timeout_end;
35         bool timeout;
36 public:
37         InspSocket();
38         InspSocket(std::string host, int port, bool listening, unsigned long maxtime);
39         virtual int OnConnected();
40         virtual int OnError();
41         virtual int OnDisconnect();
42         virtual int OnDataReady();
43         virtual int OnIncomingConnection();
44         void SetState(InspSocketState s);
45         void EngineTrigger();
46         virtual ~InspSocket();
47 };