diff options
author | Daniel Stenberg <daniel@haxx.se> | 2000-12-18 16:13:37 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2000-12-18 16:13:37 +0000 |
commit | 184ad46a27dc65a82faa2cda76fe91bcca3404cf (patch) | |
tree | 34cd8bc1c63d52318f6c686f0da4f47d96712fc4 /lib | |
parent | 74d35416a2ee4d0baa84e2b5daab2fc96dda5a58 (diff) |
fixed accept() for memory debugging
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ftp.c | 2 | ||||
-rw-r--r-- | lib/memdebug.c | 9 | ||||
-rw-r--r-- | lib/memdebug.h | 4 |
3 files changed, 15 insertions, 0 deletions
@@ -197,6 +197,8 @@ static CURLcode AllowServerConnect(struct UrlData *data, getsockname(sock, (struct sockaddr *) &add, (int *)&size); s=accept(sock, (struct sockaddr *) &add, (int *)&size); + sclose(sock); /* close the first socket */ + if( -1 == s) { /* DIE! */ failf(data, "Error accept()ing server connect"); diff --git a/lib/memdebug.c b/lib/memdebug.c index cbd860ec1..1bd945e0d 100644 --- a/lib/memdebug.c +++ b/lib/memdebug.c @@ -133,6 +133,15 @@ int curl_socket(int domain, int type, int protocol, int line, char *source) return sockfd; } +int curl_accept(int s, struct sockaddr *addr, int *addrlen, + int line, char *source) +{ + int sockfd=(accept)(s, addr, addrlen); + fprintf(logfile?logfile:stderr, "FD %s:%d accept() = %d\n", + source, line, sockfd); + return sockfd; +} + /* this is our own defined way to close sockets on *ALL* platforms */ int curl_sclose(int sockfd, int line, char *source) { diff --git a/lib/memdebug.h b/lib/memdebug.h index 21330a0b2..86271b5b2 100644 --- a/lib/memdebug.h +++ b/lib/memdebug.h @@ -9,6 +9,8 @@ void curl_memdebug(char *logname); /* file descriptor manipulators */ int curl_socket(int domain, int type, int protocol, int, char *); int curl_sclose(int sockfd, int, char *); +int curl_accept(int s, struct sockaddr *addr, int *addrlen, + int line, char *source); /* Set this symbol on the command-line, recompile all lib-sources */ #define strdup(ptr) curl_dostrdup(ptr, __LINE__, __FILE__) @@ -18,6 +20,8 @@ int curl_sclose(int sockfd, int, char *); #define socket(domain,type,protocol)\ curl_socket(domain,type,protocol,__LINE__,__FILE__) +#define accept(sock,addr,len)\ + curl_accept(sock,addr,len,__LINE__,__FILE__) /* sclose is probably already defined, redefine it! */ #undef sclose |