summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAnoop C S <anoopcs@redhat.com>2017-07-13 02:30:14 +0200
committerMichael Adam <obnox@samba.org>2017-07-27 14:15:55 +0200
commitb585bf0a24d19e03f5a9fdc51b6b1bc90e60ddd6 (patch)
treec351fe47394fb473cd88836d9ff1f7d9f19847c0 /src
parent4c6082d88e1241fe678687fb0d19480e17e700e5 (diff)
downloadsocket_wrapper-b585bf0a24d19e03f5a9fdc51b6b1bc90e60ddd6.tar.gz
socket_wrapper-b585bf0a24d19e03f5a9fdc51b6b1bc90e60ddd6.tar.xz
socket_wrapper-b585bf0a24d19e03f5a9fdc51b6b1bc90e60ddd6.zip
swrap: Add common exit point to swrap_connect
In preparation of thread safety. Signed-off-by: Anoop C S <anoopcs@redhat.com> Reviewed-by: Andreas Schneider <asn@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'src')
-rw-r--r--src/socket_wrapper.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c
index 518f838..d4855b1 100644
--- a/src/socket_wrapper.c
+++ b/src/socket_wrapper.c
@@ -3294,24 +3294,26 @@ static int swrap_connect(int s, const struct sockaddr *serv_addr,
if (si->bound == 0) {
ret = swrap_auto_bind(s, si, serv_addr->sa_family);
if (ret == -1) {
- return -1;
+ goto done;
}
}
if (si->family != serv_addr->sa_family) {
errno = EINVAL;
- return -1;
+ ret = -1;
+ goto done;
}
ret = sockaddr_convert_to_un(si, serv_addr,
addrlen, &un_addr.sa.un, 0, &bcast);
if (ret == -1) {
- return -1;
+ goto done;
}
if (bcast) {
errno = ENETUNREACH;
- return -1;
+ ret = -1;
+ goto done;
}
if (si->type == SOCK_DGRAM) {
@@ -3371,6 +3373,7 @@ static int swrap_connect(int s, const struct sockaddr *serv_addr,
swrap_pcap_dump_packet(si, serv_addr, SWRAP_CONNECT_UNREACH, NULL, 0);
}
+done:
return ret;
}