diff options
author | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2014-08-07 15:51:33 -0700 |
---|---|---|
committer | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2014-08-07 15:51:33 -0700 |
commit | 2f93a2e442c251d0d9de5e828a66acd40086e28d (patch) | |
tree | 987f6181c3ae5cdc402e7d400266b68c2fa55985 /includes/Socket.h | |
parent | d36ef7155563734d372d4bb950c6945ce7fb8b1a (diff) |
Adding full c-ares support into Balau - untested.
Diffstat (limited to 'includes/Socket.h')
-rw-r--r-- | includes/Socket.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/includes/Socket.h b/includes/Socket.h index 22bf972..0909763 100644 --- a/includes/Socket.h +++ b/includes/Socket.h @@ -18,8 +18,6 @@ namespace Balau { -struct DNSRequest; - class Socket : public Selectable { public: Socket() throw (GeneralException); @@ -34,19 +32,29 @@ class Socket : public Selectable { bool connect(const char * hostname, int port); IO<Socket> accept() throw (GeneralException); bool listen(); - bool resolved(); + bool resolved() { return m_resolved; } private: Socket(int fd); virtual ssize_t recv(int sockfd, void *buf, size_t len, int flags); virtual ssize_t send(int sockfd, const void *buf, size_t len, int flags); + void resolve(const char * hostname); + void initAddr(sockaddr_in6 & out); + void resolved(sockaddr_in6 & out); + String m_name; bool m_connected = false; bool m_connecting = false; bool m_listening = false; + int m_resolving = 0; + bool m_resolved = false; + bool m_resolve4Failed = false; + bool m_resolve6Failed = false; + Events::Custom m_resolveEvent; + struct in_addr m_resolvedAddr4; + struct in6_addr m_resolvedAddr6; sockaddr_in6 m_localAddr, m_remoteAddr; - DNSRequest * m_req = NULL; }; class ListenerBase : public StacklessTask { |