}
/**
- * Look up the local or remote side of a connected socket structure.
+ * Look up the remote side of a connected socket structure.
*
* \param fd The socket descriptor of the connected socket.
- * \param getname Either \p getsockname() for local, or \p getpeername() for
- * remote side.
*
* \return A static character string identifying hostname and port of the
* chosen side in numeric host:port format.
* \sa getsockname(2), getpeername(2), parse_url(), getnameinfo(3),
* services(5), nsswitch.conf(5).
*/
-static char *__get_sock_name(int fd, typeof(getsockname) getname)
+char *remote_name(int fd)
{
struct sockaddr_storage ss;
const struct sockaddr *sa;
static char output[sizeof(hbuf) + sizeof(sbuf) + 4];
int ret;
- if (getname(fd, (struct sockaddr *)&ss, &sslen) < 0) {
+ if (getpeername(fd, (struct sockaddr *)&ss, &sslen) < 0) {
PARA_ERROR_LOG("can not determine address from fd %d: %s\n",
fd, strerror(errno));
snprintf(output, sizeof(output), "(unknown)");
return output;
}
-/**
- * Look up the remote side of a connected socket structure.
- *
- * \param sockfd The file descriptor of the socket.
- *
- * \return A pointer to a static buffer containing hostname an port. This
- * buffer must not be freed by the caller.
- */
-char *remote_name(int sockfd)
-{
- return __get_sock_name(sockfd, getpeername);
-}
-
/**
* Extract IPv4 or IPv6-mapped-IPv4 address from sockaddr_storage.
*