[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Fri Nov 5 08:40:01 MDT 2010


The branch, master has been updated
       via  c1e3c8b socket_wrapper: fill in sa.sa_len if the system supports it
      from  11ae104 s4-join: fixed secure_channel_type

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


- Log -----------------------------------------------------------------
commit c1e3c8b550e10199ad29983cc759f6e259cac613
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Nov 5 09:43:05 2010 +0100

    socket_wrapper: fill in sa.sa_len if the system supports it
    
    metze
    
    Autobuild-User: Stefan Metzmacher <metze at samba.org>
    Autobuild-Date: Fri Nov  5 14:40:00 UTC 2010 on sn-devel-104

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

Summary of changes:
 lib/socket_wrapper/socket_wrapper.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/socket_wrapper/socket_wrapper.c b/lib/socket_wrapper/socket_wrapper.c
index c52d98c..2985d00 100644
--- a/lib/socket_wrapper/socket_wrapper.c
+++ b/lib/socket_wrapper/socket_wrapper.c
@@ -584,10 +584,14 @@ static struct socket_info *find_socket_info(int fd)
 static int sockaddr_convert_to_un(struct socket_info *si, const struct sockaddr *in_addr, socklen_t in_len, 
 				  struct sockaddr_un *out_addr, int alloc_sock, int *bcast)
 {
+	struct sockaddr *out = (struct sockaddr *)(void *)out_addr;
 	if (!out_addr)
 		return 0;
 
-	out_addr->sun_family = AF_UNIX;
+	out->sa_family = AF_UNIX;
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+	out->sa_len = sizeof(*out_addr);
+#endif
 
 	switch (in_addr->sa_family) {
 	case AF_INET:
@@ -622,6 +626,8 @@ static int sockaddr_convert_from_un(const struct socket_info *si,
 				    struct sockaddr *out_addr,
 				    socklen_t *out_addrlen)
 {
+	int ret;
+
 	if (out_addr == NULL || out_addrlen == NULL) 
 		return 0;
 
@@ -643,7 +649,11 @@ static int sockaddr_convert_from_un(const struct socket_info *si,
 			errno = ESOCKTNOSUPPORT;
 			return -1;
 		}
-		return convert_un_in(in_addr, out_addr, out_addrlen);
+		ret = convert_un_in(in_addr, out_addr, out_addrlen);
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+		out_addr->sa_len = *out_addrlen;
+#endif
+		return ret;
 	default:
 		break;
 	}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list