diff --git a/src/lib/asiodns/tests/dns_service_unittest.cc b/src/lib/asiodns/tests/dns_service_unittest.cc index 1a9654ad95..931c59ab4d 100644 --- a/src/lib/asiodns/tests/dns_service_unittest.cc +++ b/src/lib/asiodns/tests/dns_service_unittest.cc @@ -177,6 +177,8 @@ protected: asio_service(io_service.get_io_service()) { current_service = &io_service; + // Content shouldn't matter for the tests, but initialize anyway + memset(data, 1, sizeof(data)); } ~UDPDNSServiceTest() { @@ -226,7 +228,7 @@ protected: private: asio::ip::udp::socket client_socket; const asio::ip::udp::endpoint server_ep; - char data[4]; // the content doesn't matter for the test + char data[4]; // To access them in signal handle function, the following // variables have to be static. @@ -236,6 +238,11 @@ private: asio::io_service& asio_service; }; +// Need to define the non-const static members outside of the class +// declaration +IOService* UDPDNSServiceTest::current_service; +bool UDPDNSServiceTest::io_service_is_time_out; + // A helper socket FD creator for given address and port. It's generally // expected to succeed; on failure it simply throws an exception to make // the test fail. @@ -250,14 +257,14 @@ getSocketFD(int family, const char* const address, const char* const port) { int s = -1; int error = getaddrinfo(address, port, &hints, &res); if (error == 0) { - s = socket(res->ai_family, res->ai_socktype, res->ai_protocol); - if (s >= 0) { - error = bind(s, res->ai_addr, res->ai_addrlen); + if (res != NULL) { + s = socket(res->ai_family, res->ai_socktype, res->ai_protocol); + if (s >= 0) { + error = bind(s, res->ai_addr, res->ai_addrlen); + } + freeaddrinfo(res); } } - if (res != NULL) { - freeaddrinfo(res); - } if (error != 0) { if (s >= 0) { close(s); diff --git a/src/lib/resolve/Makefile.am b/src/lib/resolve/Makefile.am index ceccce817b..4b818620af 100644 --- a/src/lib/resolve/Makefile.am +++ b/src/lib/resolve/Makefile.am @@ -34,6 +34,7 @@ nodist_libresolve_la_SOURCES = resolve_messages.h resolve_messages.cc libresolve_la_LIBADD = $(top_builddir)/src/lib/dns/libdns++.la libresolve_la_LIBADD += $(top_builddir)/src/lib/exceptions/libexceptions.la libresolve_la_LIBADD += $(top_builddir)/src/lib/log/liblog.la +libresolve_la_LIBADD += $(top_builddir)/src/lib/asiodns/libasiodns.la # The message file should be in the distribution. EXTRA_DIST = resolve_messages.mes