diff --git a/osdep/BackgroundResolver.hpp b/osdep/BackgroundResolver.hpp index 7909d271d..a848b2157 100644 --- a/osdep/BackgroundResolver.hpp +++ b/osdep/BackgroundResolver.hpp @@ -79,7 +79,7 @@ public: * @param callback Callback function to receive notification or NULL if none * @praam arg Second argument to callback function */ - void resolveNow(void (*callback)(BackgroundResolver *,void *),void *arg); + void resolveNow(void (*callback)(BackgroundResolver *,void *) = 0,void *arg = 0); /** * Abort (abandon) any current resolve jobs diff --git a/selftest.cpp b/selftest.cpp index 3c7b02575..a0b3c9514 100644 --- a/selftest.cpp +++ b/selftest.cpp @@ -55,6 +55,7 @@ #include "osdep/OSUtils.hpp" #include "osdep/Phy.hpp" #include "osdep/Http.hpp" +#include "osdep/BackgroundResolver.hpp" #ifdef ZT_ENABLE_NETWORK_CONTROLLER #include "controller/SqliteNetworkController.hpp" @@ -769,6 +770,23 @@ static int testSqliteNetworkController() return 0; } +static int testResolver() +{ + std::cout << "[resolver] Testing BackgroundResolver..."; std::cout.flush(); + + BackgroundResolver r("tcp-fallback.zerotier.com"); + r.resolveNow(); + r.wait(); + + std::vector ips(r.get()); + for(std::vector::const_iterator ip(ips.begin());ip!=ips.end();++ip) { + std::cout << ' ' << ip->toString(); + } + std::cout << std::endl; + + return 0; +} + static int testHttp() { std::map requestHeaders,responseHeaders; @@ -873,6 +891,7 @@ int main(int argc,char **argv) r |= testIdentity(); r |= testCertificate(); r |= testPhy(); + r |= testResolver(); r |= testHttp(); if (r)