no getaddrinfo means no getnameinfo, either
svn: r1725
This commit is contained in:
parent
28a7caa6bd
commit
f60df3fbe5
|
@ -390,6 +390,7 @@ scheme_add_fd_eventmask
|
|||
scheme_security_check_file
|
||||
scheme_security_check_network
|
||||
scheme_get_host_address
|
||||
scheme_getnameinfo
|
||||
scheme_get_port_file_descriptor
|
||||
scheme_get_port_socket
|
||||
scheme_set_type_printer
|
||||
|
|
|
@ -397,6 +397,7 @@ scheme_add_fd_eventmask
|
|||
scheme_security_check_file
|
||||
scheme_security_check_network
|
||||
scheme_get_host_address
|
||||
scheme_getnameinfo
|
||||
scheme_get_port_file_descriptor
|
||||
scheme_get_port_socket
|
||||
scheme_set_type_printer
|
||||
|
|
|
@ -382,6 +382,7 @@ EXPORTS
|
|||
scheme_security_check_file
|
||||
scheme_security_check_network
|
||||
scheme_get_host_address
|
||||
scheme_getnameinfo
|
||||
scheme_get_port_file_descriptor
|
||||
scheme_get_port_socket
|
||||
scheme_set_type_printer
|
||||
|
|
|
@ -2229,6 +2229,27 @@ static Scheme_Object *tcp_listener_p(int argc, Scheme_Object *argv[])
|
|||
: scheme_false);
|
||||
}
|
||||
|
||||
void scheme_getnameinfo(void *sa, int salen,
|
||||
char *host, int hostlen,
|
||||
char *serv, int servlen)
|
||||
{
|
||||
#ifdef HAVE_GETADDRINFO
|
||||
getnameinfo(sa, salen, host, hostlen, serv, servlen,
|
||||
NI_NUMERICHOST | NI_NUMERICSERV);
|
||||
#else
|
||||
if (host) {
|
||||
unsigned char *b;
|
||||
b = (unsigned char *)&((struct sockaddr_in *)sa)->sin_addr;
|
||||
sprintf(host, "%d.%d.%d.%d", b[0], b[1], b[2], b[3]);
|
||||
}
|
||||
if (serv) {
|
||||
int id;
|
||||
id = ntohs(((struct sockaddr_in *)sa)->sin_port);
|
||||
sprintf(serv, "%d", id);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static Scheme_Object *tcp_addresses(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
#ifdef USE_TCP
|
||||
|
@ -2280,16 +2301,14 @@ static Scheme_Object *tcp_addresses(int argc, Scheme_Object *argv[])
|
|||
}
|
||||
there_len = l;
|
||||
|
||||
getnameinfo((struct sockaddr *)here, here_len,
|
||||
host_buf, sizeof(host_buf),
|
||||
NULL, 0,
|
||||
NI_NUMERICHOST | NI_NUMERICSERV);
|
||||
scheme_getnameinfo((struct sockaddr *)here, here_len,
|
||||
host_buf, sizeof(host_buf),
|
||||
NULL, 0);
|
||||
result[0] = scheme_make_utf8_string(host_buf);
|
||||
|
||||
getnameinfo((struct sockaddr *)there, there_len,
|
||||
host_buf, sizeof(host_buf),
|
||||
NULL, 0,
|
||||
NI_NUMERICHOST | NI_NUMERICSERV);
|
||||
scheme_getnameinfo((struct sockaddr *)there, there_len,
|
||||
host_buf, sizeof(host_buf),
|
||||
NULL, 0);
|
||||
result[1] = scheme_make_utf8_string(host_buf);
|
||||
}
|
||||
# else
|
||||
|
@ -3100,10 +3119,9 @@ static int do_udp_recv(const char *name, Scheme_UDP *udp, char *bstr, long start
|
|||
|
||||
v[0] = scheme_make_integer(x);
|
||||
|
||||
getnameinfo((struct sockaddr *)src_addr, asize,
|
||||
host_buf, sizeof(host_buf),
|
||||
svc_buf, sizeof(svc_buf),
|
||||
NI_NUMERICHOST | NI_NUMERICSERV);
|
||||
scheme_getnameinfo((struct sockaddr *)src_addr, asize,
|
||||
host_buf, sizeof(host_buf),
|
||||
svc_buf, sizeof(svc_buf));
|
||||
|
||||
if (udp->previous_from_addr) {
|
||||
mzchar *s;
|
||||
|
|
|
@ -778,6 +778,9 @@ MZ_EXTERN void scheme_security_check_network(const char *who, const char *host,
|
|||
|
||||
MZ_EXTERN struct mz_addrinfo *scheme_get_host_address(const char *address, int id, int *err,
|
||||
int family, int passive, int tcp);
|
||||
MZ_EXTERN void scheme_getnameinfo(void *sa, int salen,
|
||||
char *host, int hostlen,
|
||||
char *serv, int servlen);
|
||||
|
||||
MZ_EXTERN int scheme_get_port_file_descriptor(Scheme_Object *p, long *_fd);
|
||||
MZ_EXTERN int scheme_get_port_socket(Scheme_Object *p, long *_s);
|
||||
|
|
|
@ -649,6 +649,9 @@ void (*scheme_security_check_file)(const char *who, const char *filename, int gu
|
|||
void (*scheme_security_check_network)(const char *who, const char *host, int port, int client);
|
||||
struct mz_addrinfo *(*scheme_get_host_address)(const char *address, int id, int *err,
|
||||
int family, int passive, int tcp);
|
||||
void (*scheme_getnameinfo)(void *sa, int salen,
|
||||
char *host, int hostlen,
|
||||
char *serv, int servlen);
|
||||
int (*scheme_get_port_file_descriptor)(Scheme_Object *p, long *_fd);
|
||||
int (*scheme_get_port_socket)(Scheme_Object *p, long *_s);
|
||||
void (*scheme_set_type_printer)(Scheme_Type stype, Scheme_Type_Printer printer);
|
||||
|
|
|
@ -439,6 +439,7 @@
|
|||
scheme_extension_table->scheme_security_check_file = scheme_security_check_file;
|
||||
scheme_extension_table->scheme_security_check_network = scheme_security_check_network;
|
||||
scheme_extension_table->scheme_get_host_address = scheme_get_host_address;
|
||||
scheme_extension_table->scheme_getnameinfo = scheme_getnameinfo;
|
||||
scheme_extension_table->scheme_get_port_file_descriptor = scheme_get_port_file_descriptor;
|
||||
scheme_extension_table->scheme_get_port_socket = scheme_get_port_socket;
|
||||
scheme_extension_table->scheme_set_type_printer = scheme_set_type_printer;
|
||||
|
|
|
@ -439,6 +439,7 @@
|
|||
#define scheme_security_check_file (scheme_extension_table->scheme_security_check_file)
|
||||
#define scheme_security_check_network (scheme_extension_table->scheme_security_check_network)
|
||||
#define scheme_get_host_address (scheme_extension_table->scheme_get_host_address)
|
||||
#define scheme_getnameinfo (scheme_extension_table->scheme_getnameinfo)
|
||||
#define scheme_get_port_file_descriptor (scheme_extension_table->scheme_get_port_file_descriptor)
|
||||
#define scheme_get_port_socket (scheme_extension_table->scheme_get_port_socket)
|
||||
#define scheme_set_type_printer (scheme_extension_table->scheme_set_type_printer)
|
||||
|
|
Loading…
Reference in New Issue
Block a user