diff options
| author | Anoop C S <anoopcs@redhat.com> | 2017-07-13 02:30:14 +0200 |
|---|---|---|
| committer | Michael Adam <obnox@samba.org> | 2017-07-27 14:15:55 +0200 |
| commit | b585bf0a24d19e03f5a9fdc51b6b1bc90e60ddd6 (patch) | |
| tree | c351fe47394fb473cd88836d9ff1f7d9f19847c0 /src | |
| parent | 4c6082d88e1241fe678687fb0d19480e17e700e5 (diff) | |
| download | socket_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.c | 11 |
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; } |
