[SCM] Socket Wrapper Repository - branch master updated

Andreas Schneider asn at samba.org
Tue Sep 2 05:32:09 MDT 2014


The branch, master has been updated
       via  d3c101f tests: Pass the sockaddr structure to system functions.
       via  a33de32 echo_srv: Silence alignment warnings.
       via  d059262 swrap: Silence alignment warnings.
       via  2c4e3a7 swrap: Fix type punning warnings when loading functions.
       via  6adb3e5 swrap: Fix access to struct members in log messages.
      from  442ac15 swrap: Fix whitespace errors.

http://gitweb.samba.org/?p=socket_wrapper.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit d3c101f14b17cd2750a289dda5c2fec82f9b9861
Author: Andreas Schneider <asn at samba.org>
Date:   Tue Sep 2 12:17:15 2014 +0200

    tests: Pass the sockaddr structure to system functions.
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

commit a33de3254837fc3c78c5c445f9c2e19b2b4d4f94
Author: Andreas Schneider <asn at samba.org>
Date:   Tue Sep 2 12:13:25 2014 +0200

    echo_srv: Silence alignment warnings.
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

commit d0592624650748179928205adffefc1f4e0a140f
Author: Andreas Schneider <asn at samba.org>
Date:   Tue Sep 2 12:00:13 2014 +0200

    swrap: Silence alignment warnings.
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

commit 2c4e3a778753f40b275598498279852ea308f703
Author: Andreas Schneider <asn at samba.org>
Date:   Tue Sep 2 11:55:58 2014 +0200

    swrap: Fix type punning warnings when loading functions.
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

commit 6adb3e5e3c5dcd12dfb94e5ae1b836dc9fb12a1a
Author: Andreas Schneider <asn at samba.org>
Date:   Tue Sep 2 11:16:04 2014 +0200

    swrap: Fix access to struct members in log messages.
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

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

Summary of changes:
 src/socket_wrapper.c                 |   39 +++++++++++++++++----------------
 tests/echo_srv.c                     |   12 +++++++---
 tests/test_echo_tcp_bind.c           |    2 +-
 tests/test_echo_tcp_socket.c         |    2 +-
 tests/test_echo_tcp_socket_options.c |    4 +-
 5 files changed, 32 insertions(+), 27 deletions(-)


Changeset truncated at 500 lines:

diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c
index 1b3352b..13b24a0 100644
--- a/src/socket_wrapper.c
+++ b/src/socket_wrapper.c
@@ -520,8 +520,9 @@ static void *_swrap_load_lib_function(enum swrap_lib lib, const char *fn_name)
 
 #define swrap_load_lib_function(lib, fn_name) \
 	if (swrap.fns.libc_##fn_name == NULL) { \
+		void *swrap_cast_ptr = _swrap_load_lib_function(lib, #fn_name); \
 		*(void **) (&swrap.fns.libc_##fn_name) = \
-			_swrap_load_lib_function(lib, #fn_name); \
+			swrap_cast_ptr; \
 	}
 
 
@@ -1411,7 +1412,7 @@ static int sockaddr_convert_to_un(struct socket_info *si,
 		if (in_len < sizeof(struct sockaddr_in)) {
 			break;
 		}
-		sin = (const struct sockaddr_in *)in_addr;
+		sin = (const struct sockaddr_in *)(const void *)in_addr;
 		if(sin->sin_addr.s_addr != htonl(INADDR_ANY)) {
 			break;
 		}
@@ -1706,16 +1707,16 @@ static uint8_t *swrap_pcap_packet_init(struct timeval *tval,
 
 	switch (src->sa_family) {
 	case AF_INET:
-		src_in = (const struct sockaddr_in *)src;
-		dest_in = (const struct sockaddr_in *)dest;
+		src_in = (const struct sockaddr_in *)(const void *)src;
+		dest_in = (const struct sockaddr_in *)(const void *)dest;
 		src_port = src_in->sin_port;
 		dest_port = dest_in->sin_port;
 		ip_hdr_len = sizeof(ip->v4);
 		break;
 #ifdef HAVE_IPV6
 	case AF_INET6:
-		src_in6 = (const struct sockaddr_in6 *)src;
-		dest_in6 = (const struct sockaddr_in6 *)dest;
+		src_in6 = (const struct sockaddr_in6 *)(const void *)src;
+		dest_in6 = (const struct sockaddr_in6 *)(const void *)dest;
 		src_port = src_in6->sin6_port;
 		dest_port = dest_in6->sin6_port;
 		ip_hdr_len = sizeof(ip->v6);
@@ -1777,14 +1778,14 @@ static uint8_t *swrap_pcap_packet_init(struct timeval *tval,
 
 	buf = base;
 
-	frame = (struct swrap_packet_frame *)buf;
+	frame = (struct swrap_packet_frame *)(void *)buf;
 	frame->seconds		= tval->tv_sec;
 	frame->micro_seconds	= tval->tv_usec;
 	frame->recorded_length	= wire_len - icmp_truncate_len;
 	frame->full_length	= wire_len - icmp_truncate_len;
 	buf += SWRAP_PACKET_FRAME_SIZE;
 
-	ip = (union swrap_packet_ip *)buf;
+	ip = (union swrap_packet_ip *)(void *)buf;
 	switch (src->sa_family) {
 	case AF_INET:
 		ip->v4.ver_hdrlen	= 0x45; /* version 4 and 5 * 32 bit words */
@@ -1815,7 +1816,7 @@ static uint8_t *swrap_pcap_packet_init(struct timeval *tval,
 	}
 
 	if (unreachable) {
-		pay = (union swrap_packet_payload *)buf;
+		pay = (union swrap_packet_payload *)(void *)buf;
 		switch (src->sa_family) {
 		case AF_INET:
 			pay->icmp4.type		= 0x03; /* destination unreachable */
@@ -1825,7 +1826,7 @@ static uint8_t *swrap_pcap_packet_init(struct timeval *tval,
 			buf += SWRAP_PACKET_PAYLOAD_ICMP4_SIZE;
 
 			/* set the ip header in the ICMP payload */
-			ip = (union swrap_packet_ip *)buf;
+			ip = (union swrap_packet_ip *)(void *)buf;
 			ip->v4.ver_hdrlen	= 0x45; /* version 4 and 5 * 32 bit words */
 			ip->v4.tos		= 0x00;
 			ip->v4.packet_length	= htons(wire_len - icmp_hdr_len);
@@ -1851,7 +1852,7 @@ static uint8_t *swrap_pcap_packet_init(struct timeval *tval,
 			buf += SWRAP_PACKET_PAYLOAD_ICMP6_SIZE;
 
 			/* set the ip header in the ICMP payload */
-			ip = (union swrap_packet_ip *)buf;
+			ip = (union swrap_packet_ip *)(void *)buf;
 			ip->v6.ver_prio		= 0x60; /* version 4 and 5 * 32 bit words */
 			ip->v6.flow_label_high	= 0x00;
 			ip->v6.flow_label_low	= 0x0000;
@@ -1868,7 +1869,7 @@ static uint8_t *swrap_pcap_packet_init(struct timeval *tval,
 		}
 	}
 
-	pay = (union swrap_packet_payload *)buf;
+	pay = (union swrap_packet_payload *)(void *)buf;
 
 	switch (socket_type) {
 	case SOCK_STREAM:
@@ -2807,7 +2808,7 @@ static int swrap_connect(int s, const struct sockaddr *serv_addr,
 
 	SWRAP_LOG(SWRAP_LOG_TRACE,
 		  "connect() path=%s, fd=%d",
-		  un_addr.un.sun_path, s);
+		  un_addr.sa.un.sun_path, s);
 
 
 	/* to give better errors */
@@ -2887,7 +2888,7 @@ static int swrap_bind(int s, const struct sockaddr *myaddr, socklen_t addrlen)
 			break;
 		}
 
-		sin = (const struct sockaddr_in *)myaddr;
+		sin = (const struct sockaddr_in *)(const void *)myaddr;
 
 		if (sin->sin_family != AF_INET) {
 			bind_error = EAFNOSUPPORT;
@@ -2910,7 +2911,7 @@ static int swrap_bind(int s, const struct sockaddr *myaddr, socklen_t addrlen)
 			break;
 		}
 
-		sin6 = (const struct sockaddr_in6 *)myaddr;
+		sin6 = (const struct sockaddr_in6 *)(const void *)myaddr;
 
 		if (sin6->sin6_family != AF_INET6) {
 			bind_error = EAFNOSUPPORT;
@@ -2954,7 +2955,7 @@ static int swrap_bind(int s, const struct sockaddr *myaddr, socklen_t addrlen)
 
 	SWRAP_LOG(SWRAP_LOG_TRACE,
 		  "bind() path=%s, fd=%d",
-		  un_addr.sa_un.sun_path, s);
+		  un_addr.sa.un.sun_path, s);
 
 	if (ret == 0) {
 		si->bound = 1;
@@ -3019,7 +3020,7 @@ static int swrap_bindresvport_sa(int sd, struct sockaddr *sa)
 			break;
 		}
 		case AF_INET6: {
-			struct sockaddr_in6 *sin6p = (struct sockaddr_in6 *)sa;
+			struct sockaddr_in6 *sin6p = (struct sockaddr_in6 *)(void *)sa;
 
 			salen = sizeof(struct sockaddr_in6);
 			sin6p->sin6_port = htons(port);
@@ -4239,7 +4240,7 @@ static ssize_t swrap_sendto(int s, const void *buf, size_t len, int flags,
 	if (bcast) {
 		struct stat st;
 		unsigned int iface;
-		unsigned int prt = ntohs(((const struct sockaddr_in *)to)->sin_port);
+		unsigned int prt = ntohs(((const struct sockaddr_in *)(const void *)to)->sin_port);
 		char type;
 
 		type = SOCKET_TYPE_CHAR_UDP;
@@ -4603,7 +4604,7 @@ static ssize_t swrap_sendmsg(int s, const struct msghdr *omsg, int flags)
 	if (bcast) {
 		struct stat st;
 		unsigned int iface;
-		unsigned int prt = ntohs(((const struct sockaddr_in *)to)->sin_port);
+		unsigned int prt = ntohs(((const struct sockaddr_in *)(const void *)to)->sin_port);
 		char type;
 		size_t i, len = 0;
 		uint8_t *buf;
diff --git a/tests/echo_srv.c b/tests/echo_srv.c
index 0eb4676..5b784de 100644
--- a/tests/echo_srv.c
+++ b/tests/echo_srv.c
@@ -612,7 +612,8 @@ static ssize_t echo_udp_recv_from_to(int sock,
 			if (cmsgptr->cmsg_level == IPPROTO_IP &&
 			    cmsgptr->cmsg_type == IP_RECVDSTADDR) {
 				char ip[INET_ADDRSTRLEN] = { 0 };
-				struct sockaddr_in *sinp = (struct sockaddr_in *)to;
+				struct sockaddr_in *sinp =
+					(struct sockaddr_in *)(void *)to;
 				struct in_addr *addr;
 				void *cmsg_cast_ptr = CMSG_DATA(cmsgptr);
 
@@ -639,7 +640,8 @@ static ssize_t echo_udp_recv_from_to(int sock,
 					cmsgptr->cmsg_type == IPV6_PKTINFO) {
 				char ip[INET6_ADDRSTRLEN] = { 0 };
 				struct in6_pktinfo *pkt6;
-				struct sockaddr_in6 *sin6p = (struct sockaddr_in6 *)to;
+				struct sockaddr_in6 *sin6p =
+					(struct sockaddr_in6 *)(void *)to;
 				void *cmsg_cast_ptr = CMSG_DATA(cmsgptr);
 
 				pkt6 = (struct in6_pktinfo *)cmsg_cast_ptr;
@@ -717,7 +719,8 @@ static ssize_t echo_udp_send_to_from(int sock,
 #elif defined(IP_SENDSRCADDR)
 		struct in_addr *p = (struct in_addr *)cmsg_cast_ptr;
 #endif
-		const struct sockaddr_in *from4 = (const struct sockaddr_in *)from;
+		const struct sockaddr_in *from4 =
+			(const struct sockaddr_in *)(const void *)from;
 
 		if (fromlen != sizeof(struct sockaddr_in)) {
 			break;
@@ -742,7 +745,8 @@ static ssize_t echo_udp_send_to_from(int sock,
 	case AF_INET6: {
         void *cast_ptr = CMSG_DATA(cmsgptr);
 		struct in6_pktinfo *p = (struct in6_pktinfo *)cast_ptr;
-		const struct sockaddr_in6 *from6 = (const struct sockaddr_in6 *)from;
+		const struct sockaddr_in6 *from6 =
+			(const struct sockaddr_in6 *)(const void *)from;
 
 		if (fromlen != sizeof(struct sockaddr_in6)) {
 			break;
diff --git a/tests/test_echo_tcp_bind.c b/tests/test_echo_tcp_bind.c
index 705fd8d..b95724d 100644
--- a/tests/test_echo_tcp_bind.c
+++ b/tests/test_echo_tcp_bind.c
@@ -411,7 +411,7 @@ static void test_bind_on_ipv6_sock(void **state)
 	assert_return_code(s, errno);
 
 	addr_un.sa.un.sun_family = AF_UNIX;
-	rc = bind(s, &addr_un.sa.un, addr_un.sa_socklen);
+	rc = bind(s, &addr_un.sa.s, addr_un.sa_socklen);
 	assert_int_equal(rc, -1);
 	/* FreeBSD uses EINVAL here... */
 	assert_true(errno == EAFNOSUPPORT || errno == EINVAL);
diff --git a/tests/test_echo_tcp_socket.c b/tests/test_echo_tcp_socket.c
index ebbe87b..a4b2f89 100644
--- a/tests/test_echo_tcp_socket.c
+++ b/tests/test_echo_tcp_socket.c
@@ -47,7 +47,7 @@ static void test_socket_getsockname6(void **state)
 	s = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP);
 	assert_int_not_equal(s, -1);
 
-	rc = getsockname(s, &addr.sa.in6, &addr.sa_socklen);
+	rc = getsockname(s, &addr.sa.s, &addr.sa_socklen);
 	assert_return_code(rc, errno);
 	assert_int_equal(addr.sa.in6.sin6_family, AF_INET6);
 }
diff --git a/tests/test_echo_tcp_socket_options.c b/tests/test_echo_tcp_socket_options.c
index ba14e73..dbad41d 100644
--- a/tests/test_echo_tcp_socket_options.c
+++ b/tests/test_echo_tcp_socket_options.c
@@ -122,7 +122,7 @@ static void test_sockopt_so(void **state)
 		       &addr.sa.in.sin_addr);
 	assert_int_equal(rc, 1);
 
-	rc = connect(s, &addr.sa.in, addr.sa_socklen);
+	rc = connect(s, &addr.sa.s, addr.sa_socklen);
 	assert_int_equal(rc, 0);
 
 #ifdef SO_DOMAIN
@@ -192,7 +192,7 @@ static void test_sockopt_so6(void **state)
 		       &addr.sa.in6.sin6_addr);
 	assert_int_equal(rc, 1);
 
-	rc = connect(s, &addr.sa.in6, addr.sa_socklen);
+	rc = connect(s, &addr.sa.s, addr.sa_socklen);
 	assert_int_equal(rc, 0);
 
 #ifdef SO_DOMAIN


-- 
Socket Wrapper Repository


More information about the samba-cvs mailing list