BIND 10 trac2117, updated. 73809f34a36413b6a155d9ab8f1edc028e340819 fixes

BIND 10 source code commits bind10-changes at lists.isc.org
Sat Jul 7 11:23:18 UTC 2012


The branch, trac2117 has been updated
       via  73809f34a36413b6a155d9ab8f1edc028e340819 (commit)
      from  34744cd5f60361886668db178b6450e52a661fb3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 73809f34a36413b6a155d9ab8f1edc028e340819
Author: Francis Dupont <fdupont at isc.org>
Date:   Sat Jul 7 13:22:51 2012 +0200

    fixes

-----------------------------------------------------------------------

Summary of changes:
 src/bin/dhcp6/dhcp6_srv.cc                         |    2 ++
 src/bin/dhcp6/main.cc                              |   16 +++++++++
 .../{spec_config.h.pre.in => spec_config.h.win32}  |    2 +-
 src/bin/dhcp6/tests/dhcp6_srv_unittest.cc          |    4 +++
 src/bin/dhcp6/tests/dhcp6_unittests.cc             |   13 +++++++
 src/bin/host/host.cc                               |   38 ++++++++++++--------
 src/bin/resolver/main.cc                           |   31 ++++++++++++----
 src/bin/resolver/resolver.cc                       |    5 +++
 ...esolver.spec.pre.in => resolver.spec.pre.win32} |    0
 ...pec_config.h.pre.in => spec_config.h.pre.win32} |    2 +-
 src/bin/resolver/tests/resolver_config_unittest.cc |   30 ++++++++++++++++
 src/bin/resolver/tests/resolver_unittest.cc        |    7 ++++
 .../resolver/tests/response_scrubber_unittest.cc   |    3 ++
 src/lib/dns/gen-rdatacode.py.win32                 |    4 +++
 src/lib/resolve/dll.h                              |   10 ++++++
 src/lib/resolve/resolver_interface.h               |    2 +-
 src/lib/util/buffer.h                              |    2 +-
 src/lib/{dns => util}/python/dll.h                 |   18 ++++++----
 src/lib/util/range_utilities.h                     |    2 +-
 win32build/VS2010/b10-dhcp6/b10-dhcp6.vcxproj      |    8 ++---
 .../VS2010/b10-dhcp6_tests/b10-dhcp6_tests.vcxproj |   12 +++----
 win32build/VS2010/b10-host/b10-host.vcxproj        |    8 ++---
 .../VS2010/b10-resolver/b10-resolver.vcxproj       |    8 ++---
 win32build/VS2010/bind10.sln                       |    1 +
 24 files changed, 178 insertions(+), 50 deletions(-)
 copy src/bin/dhcp6/{spec_config.h.pre.in => spec_config.h.win32} (91%)
 copy src/bin/resolver/{resolver.spec.pre.in => resolver.spec.pre.win32} (100%)
 copy src/bin/resolver/{spec_config.h.pre.in => spec_config.h.pre.win32} (89%)
 copy src/lib/{dns => util}/python/dll.h (75%)

-----------------------------------------------------------------------
diff --git a/src/bin/dhcp6/dhcp6_srv.cc b/src/bin/dhcp6/dhcp6_srv.cc
index 293e600..ca232ff 100644
--- a/src/bin/dhcp6/dhcp6_srv.cc
+++ b/src/bin/dhcp6/dhcp6_srv.cc
@@ -12,6 +12,8 @@
 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 // PERFORMANCE OF THIS SOFTWARE.
 
+#include <config.h>
+
 #include <stdlib.h>
 #include <time.h>
 #include <dhcp/dhcp6.h>
diff --git a/src/bin/dhcp6/main.cc b/src/bin/dhcp6/main.cc
index 62c0d20..c0b3858 100644
--- a/src/bin/dhcp6/main.cc
+++ b/src/bin/dhcp6/main.cc
@@ -14,11 +14,18 @@
 
 #include <config.h>
 
+#ifdef _WIN32
+#include <getopt.h>
+#include <ws2tcpip.h>
+#include <process.h>
+#define getpid _getpid
+#else
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/select.h>
 #include <netdb.h>
 #include <netinet/in.h>
+#endif
 #include <stdlib.h>
 #include <errno.h>
 
@@ -90,6 +97,11 @@ main(int argc, char* argv[]) {
         usage();
     }
 
+#ifdef _WIN32
+    WSADATA wsaData;
+    WSAStartup(MAKEWORD(2,2), &wsaData);
+#endif
+
     int ret = EXIT_SUCCESS;
 
     // TODO remainder of auth to dhcp6 code copy. We need to enable this in
@@ -119,5 +131,9 @@ main(int argc, char* argv[]) {
         ret = EXIT_FAILURE;
     }
 
+#ifdef _WIN32
+    WSACleanup();
+#endif
+
     return (ret);
 }
diff --git a/src/bin/dhcp6/spec_config.h.win32 b/src/bin/dhcp6/spec_config.h.win32
new file mode 100644
index 0000000..1f4c8bd
--- /dev/null
+++ b/src/bin/dhcp6/spec_config.h.win32
@@ -0,0 +1,15 @@
+// Copyright (C) 2011  Internet Systems Consortium, Inc. ("ISC")
+//
+// Permission to use, copy, modify, and/or distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+// AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+// PERFORMANCE OF THIS SOFTWARE.
+
+#define DHCP6_SPECFILE_LOCATION "c:/Temp/dhcp6.spec"
diff --git a/src/bin/dhcp6/tests/dhcp6_srv_unittest.cc b/src/bin/dhcp6/tests/dhcp6_srv_unittest.cc
index 5e98e18..f48dc22 100644
--- a/src/bin/dhcp6/tests/dhcp6_srv_unittest.cc
+++ b/src/bin/dhcp6/tests/dhcp6_srv_unittest.cc
@@ -17,7 +17,11 @@
 #include <fstream>
 #include <sstream>
 
+#ifdef _WIN32
+#include <ws2tcpip.h>
+#else
 #include <arpa/inet.h>
+#endif
 #include <gtest/gtest.h>
 
 #include <dhcp/dhcp6.h>
diff --git a/src/bin/dhcp6/tests/dhcp6_unittests.cc b/src/bin/dhcp6/tests/dhcp6_unittests.cc
index 360fb71..c410bd4 100644
--- a/src/bin/dhcp6/tests/dhcp6_unittests.cc
+++ b/src/bin/dhcp6/tests/dhcp6_unittests.cc
@@ -12,6 +12,12 @@
 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 // PERFORMANCE OF THIS SOFTWARE.
 
+#include <config.h>
+
+#ifdef _WIN32
+#include <winsock2.h>
+#endif
+
 #include <stdio.h>
 #include <gtest/gtest.h>
 #include <log/logger_support.h>
@@ -22,7 +28,14 @@ main(int argc, char* argv[]) {
     ::testing::InitGoogleTest(&argc, argv);
     isc::log::initLogger();
 
+#ifdef _WIN32
+    WSADATA wsaData;
+    WSAStartup(MAKEWORD(2,2), &wsaData);
+    int result = RUN_ALL_TESTS();
+    WSACleanup();
+#else
     int result = RUN_ALL_TESTS();
+#endif
 
     return result;
 }
diff --git a/src/bin/host/host.cc b/src/bin/host/host.cc
index a5c6522..be23039 100644
--- a/src/bin/host/host.cc
+++ b/src/bin/host/host.cc
@@ -14,17 +14,24 @@
 
 // host rewritten in C++ using BIND 10 DNS library
 
+#include <config.h>
+
+#ifdef _WIN32
+#include <getopt.h>
+#include <ws2tcpip.h>
+#else
 #include <arpa/inet.h>
 #include <netdb.h>          // for getaddrinfo
-#include <sys/time.h>       // for gettimeofday
 #include <sys/socket.h>     // networking functions and definitions on FreeBSD
 
 #include <unistd.h>
+#endif
 
 #include <string>
 #include <iostream>
 
 #include <util/buffer.h>
+#include <util/time_utilities.h>
 
 #include <dns/name.h>
 #include <dns/message.h>
@@ -49,7 +56,7 @@ bool verbose = false;
 bool dns_any = false;
 int first_time = 1;
 bool recursive_bit = true;
-struct timeval before_time, after_time;
+int64_t before_time, after_time;
 
 int
 host_lookup(const char* const name, const char* const dns_class,
@@ -107,11 +114,11 @@ host_lookup(const char* const name, const char* const dns_class,
     }
 
     if (verbose) {
-        gettimeofday(&before_time, NULL);
+        before_time = detail::gettimeWrapper();
     }
 
-    sendto(s, renderer.getData(), renderer.getLength(), 0, res->ai_addr,
-           res->ai_addrlen);
+    sendto(s, (const char *) renderer.getData(), renderer.getLength(),
+           0, res->ai_addr, res->ai_addrlen);
 
     struct sockaddr_storage ss;
     struct sockaddr* sa;
@@ -156,19 +163,12 @@ host_lookup(const char* const name, const char* const dns_class,
                       }
                   }
             } else {
-                gettimeofday(&after_time, NULL);
+                after_time = detail::gettimeWrapper();
 
                 // HEADER and QUESTION, ANSWER, AUTHORITY, and ADDITIONAL
                 std::cout << rmsg.toText() << std::endl;
 
-                if (before_time.tv_usec > after_time.tv_usec) {
-                    after_time.tv_usec += 1000000;
-                    --after_time.tv_sec;
-                }
-
-                int elapsed_time =
-                    (after_time.tv_sec - before_time.tv_sec)
-                    + ((after_time.tv_usec - before_time.tv_usec))/1000;
+                int elapsed_time = (int) (after_time - before_time);
 
                 // TODO: if NXDOMAIN, host(1) doesn't show HEADER
                 // Host hsdjkfhksjhdfkj not found: 3(NXDOMAIN)
@@ -240,6 +240,11 @@ main(int argc, char* argv[]) {
       server = argv[1];
     }
 
+#ifdef _WIN32
+    WSADATA wsaData;
+    WSAStartup(MAKEWORD(2,2), &wsaData);
+#endif
+
     if (dns_type == NULL) {
         host_lookup(argv[0], dns_class, "A", dns_any);
         // TODO: don't do next if A doesn't exist
@@ -249,5 +254,10 @@ main(int argc, char* argv[]) {
         // -t overrides -a, regardless of order
         host_lookup(argv[0], dns_class, dns_type, false);
     }
+
+#ifdef _WIN32
+    WSACleanup();
+#endif
+
     return (0);
 }
diff --git a/src/bin/resolver/main.cc b/src/bin/resolver/main.cc
index d14fb0b..d2f1b26 100644
--- a/src/bin/resolver/main.cc
+++ b/src/bin/resolver/main.cc
@@ -14,6 +14,21 @@
 
 #include <config.h>
 
+#ifdef _WIN32
+#include <getopt.h>
+#include <ws2tcpip.h>
+#include <mswsock.h>
+#include <process.h>
+#define getpid _getpid
+#else
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/select.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <unistd.h>
+#endif
+
 #include <resolver/spec_config.h>
 #include <resolver/resolver.h>
 #include "resolver_log.h"
@@ -37,7 +52,9 @@
 
 #include <xfr/xfrout_client.h>
 
+#ifndef _WIN32
 #include <auth/common.h>
+#endif
 
 #include <cache/resolver_cache.h>
 #include <nsas/nameserver_address_store.h>
@@ -46,14 +63,8 @@
 #include <log/logger_level.h>
 #include "resolver_log.h"
 
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/select.h>
-#include <netdb.h>
-#include <netinet/in.h>
 #include <stdlib.h>
 #include <errno.h>
-#include <unistd.h>
 
 #include <string>
 #include <iostream>
@@ -139,6 +150,11 @@ main(int argc, char* argv[]) {
         usage();
     }
 
+#ifdef _WIN32
+    WSADATA wsaData;
+    WSAStartup(MAKEWORD(2,2), &wsaData);
+#endif
+
     // Until proper logging comes along, initialize the logging with the
     // temporary initLogger() code.  If verbose, we'll use maximum verbosity.
     isc::log::initLogger(RESOLVER_NAME,
@@ -255,5 +271,8 @@ main(int argc, char* argv[]) {
     delete cc_session;
 
     LOG_INFO(resolver_logger, RESOLVER_SHUTDOWN);
+#ifdef _WIN32
+    WSACleanup();
+#endif
     return (ret);
 }
diff --git a/src/bin/resolver/resolver.cc b/src/bin/resolver/resolver.cc
index 9536608..88a30d5 100644
--- a/src/bin/resolver/resolver.cc
+++ b/src/bin/resolver/resolver.cc
@@ -15,8 +15,13 @@
 #include <config.h>
 
 #include <stdint.h>
+#ifdef _WIN32
+#include <ws2tcpip.h>
+#include <mswsock.h>
+#else
 #include <sys/types.h>
 #include <netinet/in.h>
+#endif
 
 #include <algorithm>
 #include <vector>
diff --git a/src/bin/resolver/resolver.spec.pre.win32 b/src/bin/resolver/resolver.spec.pre.win32
new file mode 100644
index 0000000..d6bb226
--- /dev/null
+++ b/src/bin/resolver/resolver.spec.pre.win32
@@ -0,0 +1,168 @@
+{
+  "module_spec": {
+    "module_name": "Resolver",
+    "module_description": "Recursive service",
+    "config_data": [
+      {
+        "item_name": "timeout_query",
+        "item_type": "integer",
+        "item_optional": false,
+        "item_default": 2000
+      },
+      {
+        "item_name": "timeout_client",
+        "item_type": "integer",
+        "item_optional": false,
+        "item_default": 4000
+      },
+      {
+        "item_name": "timeout_lookup",
+        "item_type": "integer",
+        "item_optional": false,
+        "item_default": 30000
+      },
+      {
+        "item_name": "retries",
+        "item_type": "integer",
+        "item_optional": false,
+        "item_default": 3
+      },
+      {
+        "item_name": "forward_addresses",
+        "item_type": "list",
+        "item_optional": true,
+        "item_default": [],
+        "list_item_spec" : {
+          "item_name": "address",
+          "item_type": "map",
+          "item_optional": false,
+          "item_default": {},
+          "map_item_spec": [
+            {
+              "item_name": "address",
+              "item_type": "string",
+              "item_optional": false,
+              "item_default": "::1"
+            },
+            {
+              "item_name": "port",
+              "item_type": "integer",
+              "item_optional": false,
+              "item_default": 53
+            }
+          ]
+        }
+      },
+      {
+        "item_name": "root_addresses",
+        "item_type": "list",
+        "item_optional": true,
+        "item_default": [],
+        "list_item_spec" : {
+          "item_name": "address",
+          "item_type": "map",
+          "item_optional": false,
+          "item_default": {},
+          "map_item_spec": [
+            {
+              "item_name": "address",
+              "item_type": "string",
+              "item_optional": false,
+              "item_default": "::1"
+            },
+            {
+              "item_name": "port",
+              "item_type": "integer",
+              "item_optional": false,
+              "item_default": 53
+            }
+          ]
+        }
+      },
+      {
+        "item_name": "listen_on",
+        "item_type": "list",
+        "item_optional": false,
+        "item_default": [
+          {
+            "address": "::1",
+            "port": 53
+          },
+          {
+            "address": "127.0.0.1",
+            "port": 53
+          }
+        ],
+        "list_item_spec": {
+          "item_name": "address",
+          "item_type": "map",
+          "item_optional": false,
+          "item_default": {},
+          "map_item_spec": [
+            {
+              "item_name": "address",
+              "item_type": "string",
+              "item_optional": false,
+              "item_default": "::1"
+            },
+            {
+              "item_name": "port",
+              "item_type": "integer",
+              "item_optional": false,
+              "item_default": 53
+            }
+          ]
+        }
+      },
+      {
+        "item_name": "query_acl",
+	"item_type": "list",
+	"item_optional": false,
+	"item_default": [
+	  {
+	    "action": "ACCEPT",
+	    "from": "127.0.0.1"
+	  },
+	  {
+	    "action": "ACCEPT",
+	    "from": "::1"
+	  }
+	],
+	"list_item_spec": {
+	  "item_name": "rule",
+	  "item_type": "map",
+	  "item_optional": false,
+	  "item_default": {},
+	  "map_item_spec": [
+	    {
+	      "item_name": "action",
+	      "item_type": "string",
+	      "item_optional": false,
+	      "item_default": ""
+	    },
+	    {
+	      "item_name": "from",
+	      "item_type": "string",
+	      "item_optional": false,
+	      "item_default": ""
+	    }
+	  ]
+        }
+      }
+    ],
+    "commands": [
+      {
+        "command_name": "shutdown",
+        "command_description": "Shut down recursive DNS server",
+        "command_args": [
+          {
+            "item_name": "pid",
+            "item_type": "integer",
+            "item_optional": true
+          }
+        ]
+      }
+    ]
+  }
+}
+
diff --git a/src/bin/resolver/spec_config.h.pre.win32 b/src/bin/resolver/spec_config.h.pre.win32
new file mode 100644
index 0000000..a7dea2b
--- /dev/null
+++ b/src/bin/resolver/spec_config.h.pre.win32
@@ -0,0 +1,15 @@
+// Copyright (C) 2009  Internet Systems Consortium, Inc. ("ISC")
+//
+// Permission to use, copy, modify, and/or distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+// AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+// PERFORMANCE OF THIS SOFTWARE.
+
+#define RESOLVER_SPECFILE_LOCATION BIND10HOME "/src/bin/resolver/resolver.spec"
diff --git a/src/bin/resolver/tests/resolver_config_unittest.cc b/src/bin/resolver/tests/resolver_config_unittest.cc
index 369ca5c..8814994 100644
--- a/src/bin/resolver/tests/resolver_config_unittest.cc
+++ b/src/bin/resolver/tests/resolver_config_unittest.cc
@@ -14,10 +14,15 @@
 
 #include <config.h>
 
+#ifdef _WIN32
+#include <ws2tcpip.h>
+#include <mswsock.h>
+#else
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <netdb.h>
+#endif
 
 #include <cerrno>
 #include <cstring>
@@ -194,14 +199,26 @@ private:
 };
 
 struct ScopedSocket : public boost::noncopyable {
+#ifdef _WIN32
+public:
+    ScopedSocket(SOCKET fd) : fd_(fd) {}
+    ~ScopedSocket() { closesocket(fd_); }
+private:
+    const SOCKET fd_;
+#else
 public:
     ScopedSocket(int fd) : fd_(fd) {}
     ~ScopedSocket() { close(fd_); }
 private:
     const int fd_;
+#endif
 };
 
+#ifdef _WIN32
+SOCKET
+#else
 int
+#endif
 createSocket(const char* address, const char* port) {
     struct addrinfo hints, *res;
     memset(&hints, 0, sizeof(hints));
@@ -215,6 +232,18 @@ createSocket(const char* address, const char* port) {
                   gai_strerror(error));
     }
     ScopedAddrInfo scoped_res(res);
+#ifdef _WIN32
+    const SOCKET s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
+    if (s == INVALID_SOCKET) {
+        isc_throw(TestConfigError, "socket system call failed: " <<
+                  strerror(WSAGetLastError()));
+    }
+    if (::bind(s, res->ai_addr, res->ai_addrlen) == -1) {
+        closesocket(s);
+        isc_throw(TestConfigError, "bind system call failed: " <<
+                  strerror(WSAGetLastError()));
+    }
+#else
     const int s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
     if (s == -1) {
         isc_throw(TestConfigError, "socket system call failed: " <<
@@ -225,6 +254,7 @@ createSocket(const char* address, const char* port) {
         isc_throw(TestConfigError, "bind system call failed: " <<
                   strerror(errno));
     }
+#endif
     return (s);
 }
 
diff --git a/src/bin/resolver/tests/resolver_unittest.cc b/src/bin/resolver/tests/resolver_unittest.cc
index 6b5cf68..196a724 100644
--- a/src/bin/resolver/tests/resolver_unittest.cc
+++ b/src/bin/resolver/tests/resolver_unittest.cc
@@ -12,6 +12,13 @@
 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 // PERFORMANCE OF THIS SOFTWARE.
 
+#include <config.h>
+
+#ifdef _WIN32
+#include <ws2tcpip.h>
+#include <mswsock.h>
+#endif
+
 #include <string>
 
 #include <exceptions/exceptions.h>
diff --git a/src/bin/resolver/tests/response_scrubber_unittest.cc b/src/bin/resolver/tests/response_scrubber_unittest.cc
index 37e2553..4d36b87 100644
--- a/src/bin/resolver/tests/response_scrubber_unittest.cc
+++ b/src/bin/resolver/tests/response_scrubber_unittest.cc
@@ -14,6 +14,7 @@
 
 #include <config.h>
 
+#include <stdint.h>
 #include <string>
 #include <iostream>
 
@@ -21,7 +22,9 @@
 
 #include <asiolink/io_endpoint.h>
 #include <asiolink/io_address.h>
+#ifndef _WIN32
 #include <netinet/in.h>
+#endif
 
 #include <dns/name.h>
 #include <dns/opcode.h>
diff --git a/src/lib/dns/gen-rdatacode.py.win32 b/src/lib/dns/gen-rdatacode.py.win32
index 8985a62..758f6c6 100755
--- a/src/lib/dns/gen-rdatacode.py.win32
+++ b/src/lib/dns/gen-rdatacode.py.win32
@@ -40,6 +40,8 @@ heading_txt = '''///////////////
 ///////////////   DO NOT EDIT!
 ///////////////
 ///////////////
+'''
+export_txt = '''
 
 #define ISC_LIBDNS_EXPORT
 
@@ -202,6 +204,7 @@ def generate_rdatadef(file, basemtime):
         return
     rdata_deffile = open(file, 'w')
     rdata_deffile.write(heading_txt)
+    rdata_deffile.write(export_txt)
     rdata_deffile.write(class_definitions)
     rdata_deffile.close()
 
@@ -287,6 +290,7 @@ def generate_rrparam(fileprefix, basemtime):
     rrparam_temp = open(placeholder, 'r')
     rrparam_out = open(outputfile, 'w')
     rrparam_out.write(heading_txt)
+    rrparam_out.write(export_txt)
     for line in rrparam_temp.readlines():
         rrparam_out.write(line)
         if re.match('\s+// BEGIN_WELL_KNOWN_PARAMS', line):
diff --git a/src/lib/resolve/dll.h b/src/lib/resolve/dll.h
index 37230c9..88eba3f 100644
--- a/src/lib/resolve/dll.h
+++ b/src/lib/resolve/dll.h
@@ -25,6 +25,16 @@
 #endif
 #endif
 
+#if !defined(_WIN32) || defined(USE_STATIC_LINK)
+#define ISC_LIBNSASRESOLVE_API
+#else
+#if defined(ISC_LIBNSAS_EXPORT) || defined(ISC_LIBRESOLVE_EXPORT)
+#define ISC_LIBNSASRESOLVE_API __declspec(dllexport)
+#else
+#define ISC_LIBNSASRESOLVE_API __declspec(dllimport)
+#endif
+#endif
+
 #endif // __LIBRESOLVE_H
 
 // Local Variables: 
diff --git a/src/lib/resolve/resolver_interface.h b/src/lib/resolve/resolver_interface.h
index 88378b0..9e40152 100644
--- a/src/lib/resolve/resolver_interface.h
+++ b/src/lib/resolve/resolver_interface.h
@@ -45,7 +45,7 @@ namespace resolve {
 ///
 /// It is abstract to allow tests pass dummy resolvers.
 ///
-class ISC_LIBRESOLVE_API ResolverInterface {
+class ISC_LIBNSASRESOLVE_API ResolverInterface {
     public:
         /// \short An abstract callback for when the resolver is done.
         ///
diff --git a/src/lib/util/buffer.h b/src/lib/util/buffer.h
index 3e5a27d..69f7558 100644
--- a/src/lib/util/buffer.h
+++ b/src/lib/util/buffer.h
@@ -15,7 +15,7 @@
 #ifndef __BUFFER_H
 #define __BUFFER_H 1
 
-#include <stddll.h>
+#include <stdlib.h>
 #include <cstring>
 #include <vector>
 
diff --git a/src/lib/util/python/dll.h b/src/lib/util/python/dll.h
new file mode 100644
index 0000000..92a5d1b
--- /dev/null
+++ b/src/lib/util/python/dll.h
@@ -0,0 +1,36 @@
+// Copyright (C) 2012  Internet Systems Consortium, Inc. ("ISC")
+//
+// Permission to use, copy, modify, and/or distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+// AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+// PERFORMANCE OF THIS SOFTWARE.
+
+#ifndef __LIBUTIL_PYTHON_H
+#define __LIBUTIL_PYTHON_H 1
+
+#ifdef ISC_LIBDNS_PYTHON_EXPORT
+#define ISC_LIBUTIL_PYTHON_EXPORT
+#endif
+
+#if !defined(_WIN32) || defined(USE_STATIC_LINK)
+#define ISC_LIBUTIL_PYTHON_API
+#else
+#ifdef ISC_LIBUTIL_PYTHON_EXPORT
+#define ISC_LIBUTIL_PYTHON_API __declspec(dllexport)
+#else
+#define ISC_LIBUTIL_PYTHON_API __declspec(dllimport)
+#endif
+#endif
+
+#endif // __LIBUTIL_PYTHON_H
+
+// Local Variables: 
+// mode: c++
+// End: 
diff --git a/src/lib/util/range_utilities.h b/src/lib/util/range_utilities.h
index 22f10ac..855e178 100644
--- a/src/lib/util/range_utilities.h
+++ b/src/lib/util/range_utilities.h
@@ -15,7 +15,7 @@
 #ifndef __RANGE_UTIL_H_
 #define __RANGE_UTIL_H_ 1
 
-#include <stddll.h>
+#include <stdlib.h>
 #include <algorithm>
 
 #include <util/dll.h>
diff --git a/win32build/VS2010/b10-dhcp6/b10-dhcp6.vcxproj b/win32build/VS2010/b10-dhcp6/b10-dhcp6.vcxproj
index 89e0490..8a17a44 100755
--- a/win32build/VS2010/b10-dhcp6/b10-dhcp6.vcxproj
+++ b/win32build/VS2010/b10-dhcp6/b10-dhcp6.vcxproj
@@ -59,8 +59,8 @@
       <SubSystem>Console</SubSystem>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <OutputFile>$(OutDir)b10-dhcp6$(TargetExt)</OutputFile>
-      <AdditionalDependencies>libexceptions.lib;libutil.lib;liblog.lib;libcc.lib;libcfgclient.lib;libasiolink.lib;libdhcp.lib;log4cplusSD.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\libexceptions\$(Configuration);..\libutil\$(Configuration);..\liblog\$(Configuration);..\libcc\$(Configuration);..\libcfgclient\$(Configuration);..\libasiolink\$(Configuration);..\libdhcp\$(Configuration);..\..\..\..\log4cplus\md10\$(Configuration);%BOOST%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>libexceptionsd.lib;libutild.lib;liblogdlib;libccd.lib;libcfgclientd.lib;libasiolinkd.lib;libdhcpd.lib;log4cplusD.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\$(Configuration);..\..\..\..\log4cplus\v100\$(Configuration);%BOOST%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
     </Link>
     <PreBuildEvent>
       <Command>cd ..\..\..\src\bin\dhcp6
@@ -84,8 +84,8 @@ copy spec_config.h.win32 spec_config.h
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
       <OutputFile>$(OutDir)b10-dhcp6$(TargetExt)</OutputFile>
-      <AdditionalDependencies>libexceptions.lib;libutil.lib;liblog.lib;libcc.lib;libcfgclient.lib;libasiolink.lib;libdhcp.lib;log4cplusS.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\libexceptions\$(Configuration);..\libutil\$(Configuration);..\liblog\$(Configuration);..\libcc\$(Configuration);..\libcfgclient\$(Configuration);..\libasiolink\$(Configuration);..\libdhcp\$(Configuration);..\..\..\..\log4cplus\md10\$(Configuration);%BOOST%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>libexceptions.lib;libutil.lib;liblog.lib;libcc.lib;libcfgclient.lib;libasiolink.lib;libdhcp.lib;log4cplus.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\$(Configuration);..\..\..\..\log4cplus\v100\$(Configuration);%BOOST%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
     </Link>
     <PreBuildEvent>
       <Command>cd ..\..\..\src\bin\dhcp6
diff --git a/win32build/VS2010/b10-dhcp6_tests/b10-dhcp6_tests.vcxproj b/win32build/VS2010/b10-dhcp6_tests/b10-dhcp6_tests.vcxproj
index 4d88cc8..187d145 100755
--- a/win32build/VS2010/b10-dhcp6_tests/b10-dhcp6_tests.vcxproj
+++ b/win32build/VS2010/b10-dhcp6_tests/b10-dhcp6_tests.vcxproj
@@ -52,7 +52,7 @@
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
       <WarningLevel>Level4</WarningLevel>
       <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;TEST_DATA_DIR="%BIND10HOME%/src/lib/testutils/testdata";TEST_DATA_BUILDDIR="%BIND10HOME%src/bin/dhcp6/tests";_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;GTEST_LINKED_AS_SHARED_LIBRARY=1;TEST_DATA_DIR="%BIND10HOME%/src/lib/testutils/testdata";TEST_DATA_BUILDDIR="%BIND10HOME%src/bin/dhcp6/tests";_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\bin;..\..\..\ext\asio;..\..\..\..\gtest\include;%BOOST%;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <CompileAs>CompileAsCpp</CompileAs>
     </ClCompile>
@@ -60,8 +60,8 @@
       <SubSystem>Console</SubSystem>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <OutputFile>$(OutDir)dhcp6_unittests$(TargetExt)</OutputFile>
-      <AdditionalLibraryDirectories>..\libexceptions\$(Configuration);..\libutil\$(Configuration);..\libutil_unittests\$(Configuration);..\liblog\$(Configuration);..\libcc\$(Configuration);..\libcfgclient\$(Configuration);..\libasiolink\$(Configuration);..\libdhcp\$(Configuration);..\..\..\..\log4cplus\md10\$(Configuration);..\..\..\..\gtest\md10\$(Configuration);%BOOST%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>libexceptions.lib;libutil.lib;libutil_unittests.lib;liblog.lib;libcc.lib;libcfgclient.lib;libasiolink.lib;libdhcp.lib;log4cplusSD.lib;gtestd.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\$(Configuration);..\..\..\..\log4cplus\v100\$(Configuration);..\..\..\..\gtest\v100\$(Configuration);%BOOST%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>libexceptionsd.lib;libutild.lib;libutil_unittestsd.lib;liblogd.lib;libccd.lib;libcfgclientd.lib;libasiolinkd.lib;libdhcpd.lib;log4cplusD.lib;gtestd.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -71,7 +71,7 @@
       <Optimization>MaxSpeed</Optimization>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;TEST_DATA_DIR="%BIND10HOME%/src/lib/testutils/testdata";TEST_DATA_BUILDDIR="%BIND10HOME%src/bin/dhcp6/tests";NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;GTEST_LINKED_AS_SHARED_LIBRARY=1;TEST_DATA_DIR="%BIND10HOME%/src/lib/testutils/testdata";TEST_DATA_BUILDDIR="%BIND10HOME%src/bin/dhcp6/tests";NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\bin;..\..\..\ext\asio;..\..\..\..\gtest\include;%BOOST%;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <CompileAs>CompileAsCpp</CompileAs>
     </ClCompile>
@@ -81,8 +81,8 @@
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
       <OutputFile>$(OutDir)dhcp6_unittests$(TargetExt)</OutputFile>
-      <AdditionalLibraryDirectories>..\libexceptions\$(Configuration);..\libutil\$(Configuration);..\libutil_unittests\$(Configuration);..\liblog\$(Configuration);..\libcc\$(Configuration);..\libcfgclient\$(Configuration);..\libasiolink\$(Configuration);..\libdhcp\$(Configuration);..\..\..\..\log4cplus\md10\$(Configuration);..\..\..\..\gtest\md10\$(Configuration);%BOOST%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>libexceptions.lib;libutil.lib;libutil_unittests.lib;liblog.lib;libcc.lib;libcfgclient.lib;libasiolink.lib;libdhcp.lib;log4cplusS.lib;gtest.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\$(Configuration);..\..\..\..\log4cplus\v100\$(Configuration);..\..\..\..\gtest\v100\$(Configuration);%BOOST%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>libexceptions.lib;libutil.lib;libutil_unittests.lib;liblog.lib;libcc.lib;libcfgclient.lib;libasiolink.lib;libdhcp.lib;log4cplus.lib;gtest.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
diff --git a/win32build/VS2010/b10-host/b10-host.vcxproj b/win32build/VS2010/b10-host/b10-host.vcxproj
index 19b385e..8cfe3e0 100755
--- a/win32build/VS2010/b10-host/b10-host.vcxproj
+++ b/win32build/VS2010/b10-host/b10-host.vcxproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
@@ -60,8 +60,8 @@
       <SubSystem>Console</SubSystem>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <OutputFile>$(OutDir)b10-host.exe</OutputFile>
-      <AdditionalLibraryDirectories>..\libexceptions\$(Configuration);..\libutil\$(Configuration);..\libcryptolink\$(Configuration);..\libdns++\$(Configuration);..\..\..\..\botan\md10\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>libexceptions.lib;libutil.lib;libcryptolink.lib;libdns++.lib;botan.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\$(Configuration);..\..\..\..\botan\v100\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>libexceptionsd.lib;libutild.lib;libcryptolinkd.lib;libdns++d.lib;botand.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -81,7 +81,7 @@
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
       <OutputFile>$(OutDir)b10-host.exe</OutputFile>
-      <AdditionalLibraryDirectories>..\libexceptions\$(Configuration);..\libutil\$(Configuration);..\libcryptolink\$(Configuration);..\libdns++\$(Configuration);..\..\..\..\botan\md10\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>..\$(Configuration);..\..\..\..\botan\v100\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalDependencies>libexceptions.lib;libutil.lib;libcryptolink.lib;libdns++.lib;botan.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
diff --git a/win32build/VS2010/b10-resolver/b10-resolver.vcxproj b/win32build/VS2010/b10-resolver/b10-resolver.vcxproj
index a4c7820..68f69e0 100755
--- a/win32build/VS2010/b10-resolver/b10-resolver.vcxproj
+++ b/win32build/VS2010/b10-resolver/b10-resolver.vcxproj
@@ -60,8 +60,8 @@
       <SubSystem>Console</SubSystem>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <OutputFile>$(OutDir)b10-resolver.exe</OutputFile>
-      <AdditionalLibraryDirectories>..\libexceptions\$(Configuration);..\libutil\$(Configuration);..\libutil_io\$(Configuration);..\liblog\$(Configuration);..\libcryptolink\$(Configuration);..\libdns++\$(Configuration);..\libcc\$(Configuration);..\libcfgclient\$(Configuration);..\libacl\$(Configuration);..\libdnsacl\$(Configuration);..\libasiolink\$(Configuration);..\libasiodns\$(Configuration);..\libnsas\$(Configuration);..\libcache\$(Configuration);..\libresolve\$(Configuration);..\libserver_common\$(Configuration);..\..\..\..\botan\md10\$(Configuration);..\..\..\..\log4cplus\md10\$(Configuration);%BOOST%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>libexceptions.lib;libutil.lib;libutil_io.lib;liblog.lib;libcryptolink.lib;libdns++.lib;libcc.lib;libcfgclient.lib;libacl.lib;libdnsacl.lib;libasiolink.lib;libasiodns.lib;libnsas.lib;libcache.lib;libresolve.lib;libserver_common.lib;botan.lib;log4cplusSD.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\$(Configuration);..\..\..\..\botan\v100\$(Configuration);..\..\..\..\log4cplus\v100\$(Configuration);%BOOST%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>libexceptionsd.lib;libutild.lib;libutil_iod.lib;liblogd.lib;libcryptolinkd.lib;libdns++d.lib;libccd.lib;libcfgclientd.lib;libacld.lib;libdnsacld.lib;libasiolinkd.lib;libasiodnsd.lib;libnsasd.lib;libcached.lib;libresolved.lib;libserver_commond.lib;botand.lib;log4cplusD.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
     <PreBuildEvent>
       <Command>cd ..\..\..\src\bin\resolver
@@ -88,8 +88,8 @@ copy spec_config.h.pre.win32 spec_config.h
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
       <OutputFile>$(OutDir)b10-resolver.exe</OutputFile>
-      <AdditionalLibraryDirectories>..\libexceptions\$(Configuration);..\libutil\$(Configuration);..\libutil_io\$(Configuration);..\liblog\$(Configuration);..\libcryptolink\$(Configuration);..\libdns++\$(Configuration);..\libcc\$(Configuration);..\libcfgclient\$(Configuration);..\libacl\$(Configuration);..\libdnsacl\$(Configuration);..\libasiolink\$(Configuration);..\libasiodns\$(Configuration);..\libnsas\$(Configuration);..\libcache\$(Configuration);..\libresolve\$(Configuration);..\libserver_common\$(Configuration);..\..\..\..\botan\md10\$(Configuration);..\..\..\..\log4cplus\md10\$(Configuration);%BOOST%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>libexceptions.lib;libutil.lib;libutil_io.lib;liblog.lib;libcryptolink.lib;libdns++.lib;libcc.lib;libcfgclient.lib;libacl.lib;libdnsacl.lib;libasiolink.lib;libasiodns.lib;libnsas.lib;libcache.lib;libresolve.lib;libserver_common.lib;botan.lib;log4cplusS.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\$(Configuration);..\..\..\..\botan\v100\$(Configuration);..\..\..\..\log4cplus\v100\$(Configuration);%BOOST%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>libexceptions.lib;libutil.lib;libutil_io.lib;liblog.lib;libcryptolink.lib;libdns++.lib;libcc.lib;libcfgclient.lib;libacl.lib;libdnsacl.lib;libasiolink.lib;libasiodns.lib;libnsas.lib;libcache.lib;libresolve.lib;libserver_common.lib;botan.lib;log4cplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
     <PreBuildEvent>
       <Command>cd ..\..\..\src\bin\resolver
diff --git a/win32build/VS2010/bind10.sln b/win32build/VS2010/bind10.sln
index 041d77b..fefc0f2 100755
--- a/win32build/VS2010/bind10.sln
+++ b/win32build/VS2010/bind10.sln
@@ -41,6 +41,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BINDInstall", "BINDInstall\
 		{FEFFE0CB-CD6B-4E61-854C-39506D6DCD5D} = {FEFFE0CB-CD6B-4E61-854C-39506D6DCD5D}
 		{2E64F6CC-3AD9-4DA7-8E05-ABBB83F9AFC4} = {2E64F6CC-3AD9-4DA7-8E05-ABBB83F9AFC4}
 		{AC4806D1-C2CC-444B-8F0D-209851A969D2} = {AC4806D1-C2CC-444B-8F0D-209851A969D2}
+		{7BA6A1D1-3C42-40B9-9336-342982DD408B} = {7BA6A1D1-3C42-40B9-9336-342982DD408B}
 		{65B0B6D2-94CE-4A21-85E7-A047C79044F9} = {65B0B6D2-94CE-4A21-85E7-A047C79044F9}
 		{F6E728D3-A0B2-40F6-9B91-7D4474D778F3} = {F6E728D3-A0B2-40F6-9B91-7D4474D778F3}
 		{564B0ADE-76A4-4833-9610-8DEEA6A15423} = {564B0ADE-76A4-4833-9610-8DEEA6A15423}



More information about the bind10-changes mailing list