[PATCH] Small cleanups struct sockaddr -> struct sockaddr_storage
Jeremy Allison
jra at samba.org
Fri May 27 18:48:21 UTC 2016
So after noticing the cleanup in Volker's patch,
I did:
git grep 'struct sockaddr ' | grep -v 'struct sockaddr \*'
and here are the 2 cleanups I found that were needed.
Please review and push if you agree. The smbldap one,
is that worth a bug report ?
Comments welcome,
Jeremy.
-------------- next part --------------
From 8421d481afcaddb5b74c6af0f0a94eeff8787579 Mon Sep 17 00:00:00 2001
From: Jeremy Allison <jra at samba.org>
Date: Fri, 27 May 2016 11:42:58 -0700
Subject: [PATCH 1/2] s3: lib: ldap: Use struct sockaddr_storage to cope with
IPv6.
Signed-off-by: Jeremy Allison <jra at samba.org>
---
source3/lib/smbldap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source3/lib/smbldap.c b/source3/lib/smbldap.c
index 5a876e0..e9cc48b 100644
--- a/source3/lib/smbldap.c
+++ b/source3/lib/smbldap.c
@@ -1040,7 +1040,7 @@ static int smbldap_open(struct smbldap_state *ldap_state)
#ifdef HAVE_UNIXSOCKET
struct sockaddr_un addr;
#else
- struct sockaddr addr;
+ struct sockaddr_storage addr;
#endif
socklen_t len = sizeof(addr);
int sd;
--
2.8.0.rc3.226.g39d4020
From e4d644d14e621b0473aaca39fc1d8c35f778f36f Mon Sep 17 00:00:00 2001
From: Jeremy Allison <jra at samba.org>
Date: Fri, 27 May 2016 11:43:31 -0700
Subject: [PATCH 2/2] lib: tevent: Use struct sockaddr_storage to cope with
IPv6.
Signed-off-by: Jeremy Allison <jra at samba.org>
---
lib/tevent/echo_server.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/lib/tevent/echo_server.c b/lib/tevent/echo_server.c
index 102f7b4..6e7f181 100644
--- a/lib/tevent/echo_server.c
+++ b/lib/tevent/echo_server.c
@@ -66,7 +66,7 @@ struct accept_state {
struct tevent_fd *fde;
int listen_sock;
socklen_t addrlen;
- struct sockaddr addr;
+ struct sockaddr_storage addr;
int sock;
};
@@ -111,7 +111,9 @@ static void accept_handler(struct tevent_context *ev, struct tevent_fd *fde,
}
state->addrlen = sizeof(state->addr);
- ret = accept(state->listen_sock, &state->addr, &state->addrlen);
+ ret = accept(state->listen_sock,
+ (struct sockaddr *)&state->addr,
+ &state->addrlen);
if (ret == -1) {
tevent_req_error(req, errno);
return;
@@ -133,7 +135,7 @@ static int accept_recv(struct tevent_req *req, struct sockaddr *paddr,
return -1;
}
if (paddr != NULL) {
- *paddr = state->addr;
+ memcpy(paddr, &state->addr, state->addrlen);
}
if (paddrlen != NULL) {
*paddrlen = state->addrlen;
--
2.8.0.rc3.226.g39d4020
More information about the samba-technical
mailing list