1 #define BOOST_TEST_DYN_LINK
2 #define BOOST_TEST_NO_MAIN
3 
4 #ifdef HAVE_CONFIG_H
5 #include "config.h"
6 #endif
7 #include <boost/test/unit_test.hpp>
8 #include "iputils.hh"
9 #include "nameserver.hh"
10 #include "statbag.hh"
11 #include <utility>
12 
13 extern vector<ComboAddress> g_localaddresses;
14 
15 BOOST_AUTO_TEST_SUITE(test_nameserver_cc)
16 
BOOST_AUTO_TEST_CASE(test_AddressIsUs4)17 BOOST_AUTO_TEST_CASE(test_AddressIsUs4) {
18   ComboAddress local1("127.0.0.1", 53);
19   ComboAddress local2("127.0.0.2", 53);
20   ComboAddress Remote("192.168.255.255", 53);
21 
22   g_localaddresses.push_back(ComboAddress("0.0.0.0", 53));
23 
24   BOOST_CHECK_EQUAL(AddressIsUs(local1), true);
25 //  BOOST_CHECK_EQUAL(AddressIsUs(local2), false);
26   BOOST_CHECK_EQUAL(AddressIsUs(Remote), false);
27 
28   g_localaddresses.clear();
29   g_localaddresses.push_back(ComboAddress("192.168.255.255", 53));
30   BOOST_CHECK_EQUAL(AddressIsUs(Remote), true);
31   Remote.sin4.sin_port = 1;
32   BOOST_CHECK_EQUAL(AddressIsUs(Remote), false);
33 }
34 
BOOST_AUTO_TEST_CASE(test_AddressIsUs6)35 BOOST_AUTO_TEST_CASE(test_AddressIsUs6) {
36   ComboAddress local1("127.0.0.1", 53);
37   ComboAddress local2("127.0.0.2", 53);
38   ComboAddress local3("::1", 53);
39   ComboAddress Remote("192.168.255.255", 53);
40 
41   g_localaddresses.clear();
42   g_localaddresses.push_back(ComboAddress("::", 53));
43 
44   BOOST_CHECK_EQUAL(AddressIsUs(local1), true);
45 //  BOOST_CHECK_EQUAL(AddressIsUs(local2), false);
46   if(!getenv("PDNS_TEST_NO_IPV6")) BOOST_CHECK_EQUAL(AddressIsUs(local3), true);
47   BOOST_CHECK_EQUAL(AddressIsUs(Remote), false);
48   Remote.sin4.sin_port = 1;
49   BOOST_CHECK_EQUAL(AddressIsUs(Remote), false);
50 }
51 
52 BOOST_AUTO_TEST_SUITE_END()
53