summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Network')
-rw-r--r--Swiften/Network/CAresDomainNameResolver.cpp3
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();
}