diff options
Diffstat (limited to 'Swiften/Network/CAresDomainNameResolver.cpp')
-rw-r--r-- | Swiften/Network/CAresDomainNameResolver.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Swiften/Network/CAresDomainNameResolver.cpp b/Swiften/Network/CAresDomainNameResolver.cpp index 6daba3d..c0bf8a0 100644 --- a/Swiften/Network/CAresDomainNameResolver.cpp +++ b/Swiften/Network/CAresDomainNameResolver.cpp @@ -1,55 +1,58 @@ // TODO: Check the second param of postEvent. We sometimes omit it. Same // goes for the PlatformDomainNameResolver. #include "Swiften/Network/CAresDomainNameResolver.h" +#include "Swiften/Base/Platform.h" +#ifndef SWIFTEN_PLATFORM_WINDOWS #include <netdb.h> #include <arpa/inet.h> +#endif #include <algorithm> #include "Swiften/Network/DomainNameServiceQuery.h" #include "Swiften/Network/DomainNameAddressQuery.h" #include "Swiften/Base/ByteArray.h" #include "Swiften/EventLoop/MainEventLoop.h" #include "Swiften/Base/foreach.h" namespace Swift { class CAresQuery : public boost::enable_shared_from_this<CAresQuery>, public EventOwner { public: CAresQuery(const String& query, int dnsclass, int type, CAresDomainNameResolver* resolver) : query(query), dnsclass(dnsclass), type(type), resolver(resolver) { } virtual ~CAresQuery() { } void addToQueue() { resolver->addToQueue(shared_from_this()); } void doRun(ares_channel* channel) { ares_query(*channel, query.getUTF8Data(), dnsclass, type, &CAresQuery::handleResult, this); } static void handleResult(void* arg, int status, int timeouts, unsigned char* buffer, int len) { reinterpret_cast<CAresQuery*>(arg)->handleResult(status, timeouts, buffer, len); } virtual void handleResult(int status, int, unsigned char* buffer, int len) = 0; private: String query; int dnsclass; int type; CAresDomainNameResolver* resolver; }; class CAresDomainNameServiceQuery : public DomainNameServiceQuery, public CAresQuery { public: CAresDomainNameServiceQuery(const String& service, CAresDomainNameResolver* resolver) : CAresQuery(service, 1, 33, resolver) { } virtual void run() { addToQueue(); } |