freeaddrinfo and gai_strerror
svn: r1727
This commit is contained in:
parent
cfdbbf6a54
commit
a998c2de35
|
@ -33,6 +33,22 @@
|
||||||
# define mz_hstrerror(x) NULL
|
# define mz_hstrerror(x) NULL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* stolen from $(PLTHOME}/src/mzscheme/src/network.c */
|
||||||
|
#ifdef HAVE_GETADDRINFO
|
||||||
|
# define mz_freeaddrinfo freeaddrinfo
|
||||||
|
# define mz_gai_strerror gai_strerror
|
||||||
|
#else
|
||||||
|
void mz_freeaddrinfo(struct mz_addrinfo *ai)
|
||||||
|
{
|
||||||
|
free(ai->ai_addr);
|
||||||
|
free(ai);
|
||||||
|
}
|
||||||
|
const char *mz_gai_strerror(int ecode)
|
||||||
|
{
|
||||||
|
return hstrerror(ecode);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* stolen from $(PLTHOME}/src/mzscheme/src/network.c */
|
/* stolen from $(PLTHOME}/src/mzscheme/src/network.c */
|
||||||
/* For getting connection names: */
|
/* For getting connection names: */
|
||||||
#define MZ_SOCK_NAME_MAX_LEN 256
|
#define MZ_SOCK_NAME_MAX_LEN 256
|
||||||
|
@ -1061,7 +1077,7 @@ static Scheme_Object *ssl_connect(int argc, Scheme_Object *argv[])
|
||||||
addr = scheme_get_host_address(address, nport, &err, -1, 0, 1);
|
addr = scheme_get_host_address(address, nport, &err, -1, 0, 1);
|
||||||
if (!addr) {
|
if (!addr) {
|
||||||
sock = INVALID_SOCKET;
|
sock = INVALID_SOCKET;
|
||||||
errstr = gai_strerror(err);
|
errstr = mz_gai_strerror(err);
|
||||||
err = 0;
|
err = 0;
|
||||||
goto clean_up_and_die;
|
goto clean_up_and_die;
|
||||||
}
|
}
|
||||||
|
@ -1079,7 +1095,7 @@ static Scheme_Object *ssl_connect(int argc, Scheme_Object *argv[])
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
status = connect(sock, (struct sockaddr *)addr->ai_addr, addr->ai_addrlen);
|
status = connect(sock, (struct sockaddr *)addr->ai_addr, addr->ai_addrlen);
|
||||||
freeaddrinfo(addr);
|
mz_freeaddrinfo(addr);
|
||||||
|
|
||||||
/* here's the complicated bit */
|
/* here's the complicated bit */
|
||||||
if (status) {
|
if (status) {
|
||||||
|
@ -1234,7 +1250,7 @@ ssl_listen(int argc, Scheme_Object *argv[])
|
||||||
l->mref = mref;
|
l->mref = mref;
|
||||||
}
|
}
|
||||||
|
|
||||||
freeaddrinfo(tcp_listen_addr);
|
mz_freeaddrinfo(tcp_listen_addr);
|
||||||
|
|
||||||
return (Scheme_Object *)l;
|
return (Scheme_Object *)l;
|
||||||
}
|
}
|
||||||
|
@ -1243,9 +1259,9 @@ ssl_listen(int argc, Scheme_Object *argv[])
|
||||||
errid = SOCK_ERRNO();
|
errid = SOCK_ERRNO();
|
||||||
|
|
||||||
closesocket(s);
|
closesocket(s);
|
||||||
freeaddrinfo(tcp_listen_addr);
|
mz_freeaddrinfo(tcp_listen_addr);
|
||||||
} else {
|
} else {
|
||||||
freeaddrinfo(tcp_listen_addr);
|
mz_freeaddrinfo(tcp_listen_addr);
|
||||||
errid = SOCK_ERRNO();
|
errid = SOCK_ERRNO();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user