summaryrefslogtreecommitdiff
path: root/includes/Socket.h
diff options
context:
space:
mode:
authorNicolas "Pixel" Noble <pixel@nobis-crew.org>2014-08-07 15:51:33 -0700
committerNicolas "Pixel" Noble <pixel@nobis-crew.org>2014-08-07 15:51:33 -0700
commit2f93a2e442c251d0d9de5e828a66acd40086e28d (patch)
tree987f6181c3ae5cdc402e7d400266b68c2fa55985 /includes/Socket.h
parentd36ef7155563734d372d4bb950c6945ce7fb8b1a (diff)
Adding full c-ares support into Balau - untested.
Diffstat (limited to 'includes/Socket.h')
-rw-r--r--includes/Socket.h16
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 {