0b290bbcb3181aa7ad5b40be4408ac1b61742794
[openblackhole/openblackhole-enigma2.git] / lib / network / serversocket.h
1 #ifndef __serversocket_h
2 #define __serversocket_h
3
4 #include "socket.h"
5
6 class eServerSocket: public eSocket
7 {
8         void notifier(int handle);
9         int okflag;
10         std::string strRemoteHost;
11 protected:
12         virtual void newConnection(int socket) = 0;
13         int startListening(struct addrinfo *addr);
14         int bind(int sockfd, struct sockaddr *addr, socklen_t addrlen);
15         int listen(int sockfd, int backlog);
16         int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
17 public:
18         /* INET serversocket constructor */
19         eServerSocket(int port, eMainloop *ml);
20         /* UNIX serversocket constructor */
21         eServerSocket(std::string path, eMainloop *ml);
22         virtual ~eServerSocket();
23         bool ok();
24         std::string RemoteHost() { return strRemoteHost;}
25 };
26
27 #endif /* __serversocket_h */