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_file
|
||||||
scheme_security_check_network
|
scheme_security_check_network
|
||||||
scheme_get_host_address
|
scheme_get_host_address
|
||||||
|
scheme_getnameinfo
|
||||||
scheme_get_port_file_descriptor
|
scheme_get_port_file_descriptor
|
||||||
scheme_get_port_socket
|
scheme_get_port_socket
|
||||||
scheme_set_type_printer
|
scheme_set_type_printer
|
||||||
|
|
|
@ -397,6 +397,7 @@ scheme_add_fd_eventmask
|
||||||
scheme_security_check_file
|
scheme_security_check_file
|
||||||
scheme_security_check_network
|
scheme_security_check_network
|
||||||
scheme_get_host_address
|
scheme_get_host_address
|
||||||
|
scheme_getnameinfo
|
||||||
scheme_get_port_file_descriptor
|
scheme_get_port_file_descriptor
|
||||||
scheme_get_port_socket
|
scheme_get_port_socket
|
||||||
scheme_set_type_printer
|
scheme_set_type_printer
|
||||||
|
|
|
@ -382,6 +382,7 @@ EXPORTS
|
||||||
scheme_security_check_file
|
scheme_security_check_file
|
||||||
scheme_security_check_network
|
scheme_security_check_network
|
||||||
scheme_get_host_address
|
scheme_get_host_address
|
||||||
|
scheme_getnameinfo
|
||||||
scheme_get_port_file_descriptor
|
scheme_get_port_file_descriptor
|
||||||
scheme_get_port_socket
|
scheme_get_port_socket
|
||||||
scheme_set_type_printer
|
scheme_set_type_printer
|
||||||
|
|
|
@ -2229,6 +2229,27 @@ static Scheme_Object *tcp_listener_p(int argc, Scheme_Object *argv[])
|
||||||
: scheme_false);
|
: 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[])
|
static Scheme_Object *tcp_addresses(int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
#ifdef USE_TCP
|
#ifdef USE_TCP
|
||||||
|
@ -2280,16 +2301,14 @@ static Scheme_Object *tcp_addresses(int argc, Scheme_Object *argv[])
|
||||||
}
|
}
|
||||||
there_len = l;
|
there_len = l;
|
||||||
|
|
||||||
getnameinfo((struct sockaddr *)here, here_len,
|
scheme_getnameinfo((struct sockaddr *)here, here_len,
|
||||||
host_buf, sizeof(host_buf),
|
host_buf, sizeof(host_buf),
|
||||||
NULL, 0,
|
NULL, 0);
|
||||||
NI_NUMERICHOST | NI_NUMERICSERV);
|
|
||||||
result[0] = scheme_make_utf8_string(host_buf);
|
result[0] = scheme_make_utf8_string(host_buf);
|
||||||
|
|
||||||
getnameinfo((struct sockaddr *)there, there_len,
|
scheme_getnameinfo((struct sockaddr *)there, there_len,
|
||||||
host_buf, sizeof(host_buf),
|
host_buf, sizeof(host_buf),
|
||||||
NULL, 0,
|
NULL, 0);
|
||||||
NI_NUMERICHOST | NI_NUMERICSERV);
|
|
||||||
result[1] = scheme_make_utf8_string(host_buf);
|
result[1] = scheme_make_utf8_string(host_buf);
|
||||||
}
|
}
|
||||||
# else
|
# 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);
|
v[0] = scheme_make_integer(x);
|
||||||
|
|
||||||
getnameinfo((struct sockaddr *)src_addr, asize,
|
scheme_getnameinfo((struct sockaddr *)src_addr, asize,
|
||||||
host_buf, sizeof(host_buf),
|
host_buf, sizeof(host_buf),
|
||||||
svc_buf, sizeof(svc_buf),
|
svc_buf, sizeof(svc_buf));
|
||||||
NI_NUMERICHOST | NI_NUMERICSERV);
|
|
||||||
|
|
||||||
if (udp->previous_from_addr) {
|
if (udp->previous_from_addr) {
|
||||||
mzchar *s;
|
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,
|
MZ_EXTERN struct mz_addrinfo *scheme_get_host_address(const char *address, int id, int *err,
|
||||||
int family, int passive, int tcp);
|
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_file_descriptor(Scheme_Object *p, long *_fd);
|
||||||
MZ_EXTERN int scheme_get_port_socket(Scheme_Object *p, long *_s);
|
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);
|
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,
|
struct mz_addrinfo *(*scheme_get_host_address)(const char *address, int id, int *err,
|
||||||
int family, int passive, int tcp);
|
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_file_descriptor)(Scheme_Object *p, long *_fd);
|
||||||
int (*scheme_get_port_socket)(Scheme_Object *p, long *_s);
|
int (*scheme_get_port_socket)(Scheme_Object *p, long *_s);
|
||||||
void (*scheme_set_type_printer)(Scheme_Type stype, Scheme_Type_Printer printer);
|
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_file = scheme_security_check_file;
|
||||||
scheme_extension_table->scheme_security_check_network = scheme_security_check_network;
|
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_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_file_descriptor = scheme_get_port_file_descriptor;
|
||||||
scheme_extension_table->scheme_get_port_socket = scheme_get_port_socket;
|
scheme_extension_table->scheme_get_port_socket = scheme_get_port_socket;
|
||||||
scheme_extension_table->scheme_set_type_printer = scheme_set_type_printer;
|
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_file (scheme_extension_table->scheme_security_check_file)
|
||||||
#define scheme_security_check_network (scheme_extension_table->scheme_security_check_network)
|
#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_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_file_descriptor (scheme_extension_table->scheme_get_port_file_descriptor)
|
||||||
#define scheme_get_port_socket (scheme_extension_table->scheme_get_port_socket)
|
#define scheme_get_port_socket (scheme_extension_table->scheme_get_port_socket)
|
||||||
#define scheme_set_type_printer (scheme_extension_table->scheme_set_type_printer)
|
#define scheme_set_type_printer (scheme_extension_table->scheme_set_type_printer)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user