version 1.34, 2002/09/23 20:46:27 |
version 1.35, 2002/11/26 02:38:54 |
|
|
/* Get IP address of client. */ |
/* Get IP address of client. */ |
fromlen = sizeof(from); |
fromlen = sizeof(from); |
memset(&from, 0, sizeof(from)); |
memset(&from, 0, sizeof(from)); |
if (getpeername(socket, (struct sockaddr *) &from, &fromlen) < 0) { |
if (getpeername(socket, (struct sockaddr *)&from, &fromlen) < 0) { |
debug("getpeername failed: %.100s", strerror(errno)); |
debug("getpeername failed: %.100s", strerror(errno)); |
fatal_cleanup(); |
fatal_cleanup(); |
} |
} |
|
|
} |
} |
|
|
/* |
/* |
* Returns the remote IP-address of socket as a string. The returned |
* Returns the local/remote IP-address/hostname of socket as a string. |
* string must be freed. |
* The returned string must be freed. |
*/ |
*/ |
static char * |
static char * |
get_socket_address(int socket, int remote, int flags) |
get_socket_address(int socket, int remote, int flags) |
|
|
/* Get the address in ascii. */ |
/* Get the address in ascii. */ |
if (getnameinfo((struct sockaddr *)&addr, addrlen, ntop, sizeof(ntop), |
if (getnameinfo((struct sockaddr *)&addr, addrlen, ntop, sizeof(ntop), |
NULL, 0, flags) != 0) { |
NULL, 0, flags) != 0) { |
error("get_socket_ipaddr: getnameinfo %d failed", flags); |
error("get_socket_address: getnameinfo %d failed", flags); |
return NULL; |
return NULL; |
} |
} |
return xstrdup(ntop); |
return xstrdup(ntop); |
|
|
return 0; |
return 0; |
} |
} |
} else { |
} else { |
if (getpeername(sock, (struct sockaddr *) & from, &fromlen) < 0) { |
if (getpeername(sock, (struct sockaddr *)&from, &fromlen) < 0) { |
debug("getpeername failed: %.100s", strerror(errno)); |
debug("getpeername failed: %.100s", strerror(errno)); |
fatal_cleanup(); |
fatal_cleanup(); |
} |
} |