[SCM] Socket Wrapper Repository - branch master updated
Andreas Schneider
asn at samba.org
Fri Aug 12 06:52:13 UTC 2016
The branch, master has been updated
via 3eee8df swrap: Delay addition of child socket_info_fd into socket_info list
via 9278886 swrap: Remove redunant check in swrap_socket
via 69b89aa swrap: Simplify swrap_remove_stale by early return
from 44f7e09 Bump version to 1.1.7
https://git.samba.org/?p=socket_wrapper.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 3eee8df6964fdca0d22967a5c8d65f934e935f34
Author: Anoop C S <anoopcs at redhat.com>
Date: Thu Aug 11 20:24:54 2016 +0530
swrap: Delay addition of child socket_info_fd into socket_info list
In swrap_accept() we used to add new child socket_info_fd[child_fi]
into newly created child socket_info struture[child_si] without
considering the fact that we may return early in case of errors from
subsequent calls to libc_getsockname() and sockaddr_convert_from_un()
during which we free child_fi and child_si and return. So it is better
to delay the addition of child_fi into child_si->fds until child_si
is completely initialized.
Signed-off-by: Anoop C S <anoopcs at redhat.com>
Reviewed-by: Michael Adam <obnox at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 92788865b636237f761ebd57d02fad0f3c9e03cd
Author: Anoop C S <anoopcs at redhat.com>
Date: Thu Aug 11 20:20:17 2016 +0530
swrap: Remove redunant check in swrap_socket
The very same check is also being made inside swrap_remove_stale().
So we can get rid of this early if condition.
Pair-programmed-with: Michael Adam <obnox at samba.org>
Signed-off-by: Anoop C S <anoopcs at redhat.com>
Signed-off-by: Michael Adam <obnox at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 69b89aa9d0847ba7238963c0dafef41d691c52cd
Author: Anoop C S <anoopcs at redhat.com>
Date: Thu Aug 11 19:27:17 2016 +0530
swrap: Simplify swrap_remove_stale by early return
Pair-programmed-with: Michael Adam <obnox at samba.org>
Signed-off-by: Anoop C S <anoopcs at redhat.com>
Signed-off-by: Michael Adam <obnox at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
-----------------------------------------------------------------------
Summary of changes:
src/socket_wrapper.c | 38 ++++++++++++++++++--------------------
1 file changed, 18 insertions(+), 20 deletions(-)
Changeset truncated at 500 lines:
diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c
index ba289e6..00518c1 100644
--- a/src/socket_wrapper.c
+++ b/src/socket_wrapper.c
@@ -1469,23 +1469,25 @@ static void swrap_remove_stale(int fd)
struct socket_info *si = find_socket_info(fd);
struct socket_info_fd *fi;
- if (si != NULL) {
- for (fi = si->fds; fi; fi = fi->next) {
- if (fi->fd == fd) {
- SWRAP_LOG(SWRAP_LOG_TRACE, "remove stale wrapper for %d", fd);
- SWRAP_DLIST_REMOVE(si->fds, fi);
- free(fi);
- break;
- }
+ if (si == NULL) {
+ return;
+ }
+
+ for (fi = si->fds; fi; fi = fi->next) {
+ if (fi->fd == fd) {
+ SWRAP_LOG(SWRAP_LOG_TRACE, "remove stale wrapper for %d", fd);
+ SWRAP_DLIST_REMOVE(si->fds, fi);
+ free(fi);
+ break;
}
+ }
- if (si->fds == NULL) {
- SWRAP_DLIST_REMOVE(sockets, si);
- if (si->un_addr.sun_path[0] != '\0') {
- unlink(si->un_addr.sun_path);
- }
- free(si);
+ if (si->fds == NULL) {
+ SWRAP_DLIST_REMOVE(sockets, si);
+ if (si->un_addr.sun_path[0] != '\0') {
+ unlink(si->un_addr.sun_path);
}
+ free(si);
}
}
@@ -2456,10 +2458,7 @@ static int swrap_socket(int family, int type, int protocol)
}
/* Check if we have a stale fd and remove it */
- si = find_socket_info(fd);
- if (si != NULL) {
- swrap_remove_stale(fd);
- }
+ swrap_remove_stale(fd);
si = (struct socket_info *)calloc(1, sizeof(struct socket_info));
if (si == NULL) {
@@ -2683,8 +2682,6 @@ static int swrap_accept(int s,
child_fi->fd = fd;
- SWRAP_DLIST_ADD(child_si->fds, child_fi);
-
child_si->family = parent_si->family;
child_si->type = parent_si->type;
child_si->protocol = parent_si->protocol;
@@ -2737,6 +2734,7 @@ static int swrap_accept(int s,
};
memcpy(&child_si->myname.sa.ss, &in_my_addr.sa.ss, in_my_addr.sa_socklen);
+ SWRAP_DLIST_ADD(child_si->fds, child_fi);
SWRAP_DLIST_ADD(sockets, child_si);
if (addr != NULL) {
--
Socket Wrapper Repository
More information about the samba-cvs
mailing list