1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 23:58:49 -05:00

fixed accept() for memory debugging

This commit is contained in:
Daniel Stenberg 2000-12-18 16:13:37 +00:00
parent 74d35416a2
commit 184ad46a27
4 changed files with 20 additions and 0 deletions

View File

@ -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");

View File

@ -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)
{

View File

@ -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

View File

@ -84,6 +84,11 @@ while(<STDIN>) {
$getfile{$1}="$source:$linenum";
$openfile++;
}
elsif($function =~ /accept\(\) = (\d*)/) {
$filedes{$1}=1;
$getfile{$1}="$source:$linenum";
$openfile++;
}
elsif($function =~ /sclose\((\d*)\)/) {
if($filedes{$1} != 1) {
print "Close without open: $line\n";