BIND 10 trac1593, updated. 2ea7c1a1fbb55f0f2ba0e42fca3b4e237c5edd16 [1593] Addressed (re)review points
BIND 10 source code commits
bind10-changes at lists.isc.org
Fri Feb 17 15:59:20 UTC 2012
The branch, trac1593 has been updated
via 2ea7c1a1fbb55f0f2ba0e42fca3b4e237c5edd16 (commit)
from fddc9d07afa5e4c26f701672c9503f353b27fe69 (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 2ea7c1a1fbb55f0f2ba0e42fca3b4e237c5edd16
Author: Stephen Morris <stephen at isc.org>
Date: Fri Feb 17 15:56:48 2012 +0000
[1593] Addressed (re)review points
Conversion between socket structures is now done via the templated
convertSockAddr() function.
-----------------------------------------------------------------------
Summary of changes:
src/bin/sockcreator/Makefile.am | 3 ++-
src/bin/sockcreator/sockcreator.cc | 12 +++++++-----
src/lib/util/io/sockaddr_util.h | 14 ++++++++++++++
3 files changed, 23 insertions(+), 6 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/bin/sockcreator/Makefile.am b/src/bin/sockcreator/Makefile.am
index 1ac4640..e954c02 100644
--- a/src/bin/sockcreator/Makefile.am
+++ b/src/bin/sockcreator/Makefile.am
@@ -15,4 +15,5 @@ CLEANFILES = *.gcno *.gcda
pkglibexec_PROGRAMS = b10-sockcreator
b10_sockcreator_SOURCES = sockcreator.cc sockcreator.h main.cc
-b10_sockcreator_LDADD = $(top_builddir)/src/lib/util/io/libutil_io.la
+b10_sockcreator_LDADD = $(top_builddir)/src/lib/util/io/libutil_io.la
+b10_sockcreator_LDADD += $(top_builddir)/src/lib/exceptions/libexceptions.la
diff --git a/src/bin/sockcreator/sockcreator.cc b/src/bin/sockcreator/sockcreator.cc
index 00e0e7d..0b1e763 100644
--- a/src/bin/sockcreator/sockcreator.cc
+++ b/src/bin/sockcreator/sockcreator.cc
@@ -15,6 +15,7 @@
#include "sockcreator.h"
#include <util/io/fd.h>
+#include <util/io/sockaddr_util.h>
#include <cerrno>
#include <cstring>
@@ -25,6 +26,7 @@
#include <netinet/in.h>
using namespace isc::util::io;
+using namespace isc::util::io::internal;
using namespace isc::socket_creator;
namespace {
@@ -126,11 +128,11 @@ handleRequest(const int input_fd, const int output_fd,
sockaddr_in6 addr_in6;
switch (type[1]) { // The address family
- // The casting to apparently incompatible types by reinterpret_cast
- // is required by the C low-level interface.
+ // The casting to apparently incompatible types is required by the
+ // C low-level interface.
case '4':
- addr = reinterpret_cast<sockaddr*>(&addr_in);
+ addr = convertSockAddr(&addr_in);
addr_len = sizeof(addr_in);
memset(&addr_in, 0, sizeof(addr_in));
addr_in.sin_family = AF_INET;
@@ -140,8 +142,8 @@ handleRequest(const int input_fd, const int output_fd,
break;
case '6':
- addr = reinterpret_cast<sockaddr*>(&addr_in6);
- addr_len = sizeof addr_in6;
+ addr = convertSockAddr(&addr_in6);
+ addr_len = sizeof(addr_in6);
memset(&addr_in6, 0, sizeof(addr_in6));
addr_in6.sin6_family = AF_INET6;
readMessage(input_fd, &addr_in6.sin6_port,
diff --git a/src/lib/util/io/sockaddr_util.h b/src/lib/util/io/sockaddr_util.h
index 4c9149e..3ec6cf0 100644
--- a/src/lib/util/io/sockaddr_util.h
+++ b/src/lib/util/io/sockaddr_util.h
@@ -51,12 +51,26 @@ convertSockAddr(const SAType* sa) {
}
template <typename SAType>
+const SAType*
+convertSockAddr(const struct sockaddr* sa) {
+ const void* p = sa;
+ return (static_cast<const SAType*>(p));
+}
+
+template <typename SAType>
struct sockaddr*
convertSockAddr(SAType* sa) {
void* p = sa;
return (static_cast<struct sockaddr*>(p));
}
+template <typename SAType>
+SAType*
+convertSockAddr(struct sockaddr* sa) {
+ void* p = sa;
+ return (static_cast<SAType*>(p));
+}
+
}
}
}
More information about the bind10-changes
mailing list