summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2013-12-05 12:13:04 +0100
committerAndreas Schneider <asn@cryptomilk.org>2013-12-05 13:43:45 +0100
commit8745a7f2752a747655499ecc290c91390e4caaa7 (patch)
tree736fde26f808c60dcf33743c5dcc41707bdfa7a4
parentee6466ee26d8642137959d8d17029736a35cdb96 (diff)
downloadsocket_wrapper-8745a7f2752a747655499ecc290c91390e4caaa7.tar.gz
socket_wrapper-8745a7f2752a747655499ecc290c91390e4caaa7.tar.xz
socket_wrapper-8745a7f2752a747655499ecc290c91390e4caaa7.zip
swrap: Use swrap structure for getsockname.
-rw-r--r--src/socket_wrapper.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c
index 30c5334..e6962d8 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_getsockname)(int sockfd,
- struct sockaddr *addr,
- socklen_t *addrlen);
-
-static int real_getsockname(int sockfd,
- struct sockaddr *addr,
- socklen_t *addrlen)
-{
- if (libc_getsockname == NULL) {
- *(void **)(&libc_getsockname) = libc_dlsym("getsockname");
- }
-
- return libc_getsockname(sockfd, addr, addrlen);
-}
-
static int (*libc_getsockopt)(int sockfd,
int level,
int optname,
@@ -2157,8 +2142,9 @@ static int swrap_accept(int s, struct sockaddr *addr, socklen_t *addrlen)
*addrlen = len;
}
- ret = real_getsockname(fd, (struct sockaddr *)(void *)&un_my_addr,
- &un_my_addrlen);
+ ret = swrap.fns.libc_getsockname(fd,
+ (struct sockaddr *)(void *)&un_my_addr,
+ &un_my_addrlen);
if (ret == -1) {
free(child_fi);
free(child_si);
@@ -2511,7 +2497,7 @@ static int swrap_getsockname(int s, struct sockaddr *name, socklen_t *addrlen)
struct socket_info *si = find_socket_info(s);
if (!si) {
- return real_getsockname(s, name, addrlen);
+ return swrap.fns.libc_getsockname(s, name, addrlen);
}
memcpy(name, si->myname, si->myname_len);