summaryrefslogtreecommitdiffstats
path: root/src/socket_wrapper.c
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2013-12-05 12:05:24 +0100
committerAndreas Schneider <asn@cryptomilk.org>2013-12-05 13:43:44 +0100
commit19ada82dbdab1d01fe8b449ab5b2448ffeac51b5 (patch)
tree87b7c679600ee6bb29dbcc81e7d0c65901d3ef23 /src/socket_wrapper.c
parentbc5ff6a765847bee90001014a195f728585ad98c (diff)
downloadsocket_wrapper-19ada82dbdab1d01fe8b449ab5b2448ffeac51b5.tar.gz
socket_wrapper-19ada82dbdab1d01fe8b449ab5b2448ffeac51b5.tar.xz
socket_wrapper-19ada82dbdab1d01fe8b449ab5b2448ffeac51b5.zip
swrap: Use swrap structure for bind.
Diffstat (limited to 'src/socket_wrapper.c')
-rw-r--r--src/socket_wrapper.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c
index 368e4cd..a4c2053 100644
--- a/src/socket_wrapper.c
+++ b/src/socket_wrapper.c
@@ -541,21 +541,6 @@ static void *libc_dlsym(const char *name)
return func;
}
-static int (*libc_bind)(int sockfd,
- const struct sockaddr *addr,
- socklen_t addrlen);
-
-static int real_bind(int sockfd,
- const struct sockaddr *addr,
- socklen_t addrlen)
-{
- if (libc_bind == NULL) {
- *(void **)(&libc_bind) = libc_dlsym("bind");
- }
-
- return libc_bind(sockfd, addr, addrlen);
-}
-
static int (*libc_close)(int fd);
static int real_close(int fd)
@@ -2382,7 +2367,7 @@ static int swrap_auto_bind(int fd, struct socket_info *si, int family)
type, socket_wrapper_default_iface(), port);
if (stat(un_addr.sun_path, &st) == 0) continue;
- ret = real_bind(fd, (struct sockaddr *)(void *)&un_addr,
+ ret = swrap.fns.libc_bind(fd, (struct sockaddr *)(void *)&un_addr,
sizeof(un_addr));
if (ret == -1) return ret;
@@ -2493,7 +2478,7 @@ static int swrap_bind(int s, const struct sockaddr *myaddr, socklen_t addrlen)
struct socket_info *si = find_socket_info(s);
if (!si) {
- return real_bind(s, myaddr, addrlen);
+ return swrap.fns.libc_bind(s, myaddr, addrlen);
}
si->myname_len = addrlen;
@@ -2504,7 +2489,7 @@ static int swrap_bind(int s, const struct sockaddr *myaddr, socklen_t addrlen)
unlink(un_addr.sun_path);
- ret = real_bind(s, (struct sockaddr *)(void *)&un_addr,
+ ret = swrap.fns.libc_bind(s, (struct sockaddr *)(void *)&un_addr,
sizeof(struct sockaddr_un));
SWRAP_LOG(SWRAP_LOG_TRACE,