From 60141cfa8c26971ec2258118a661609c7a15d261 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Sun, 2 Apr 2017 19:50:49 +0100 Subject: Add reverse_lookup() function which does a more proper (verified) DNS reverse lookup. (Code copied from OpenSSH instead of redoing it poorly.) --- irc.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'irc.c') diff --git a/irc.c b/irc.c index c1821eac..7f3f66a7 100644 --- a/irc.c +++ b/irc.c @@ -67,21 +67,11 @@ irc_t *irc_new(int fd) if (global.conf->hostname) { myhost = g_strdup(global.conf->hostname); } else if (getsockname(irc->fd, (struct sockaddr*) &sock, &socklen) == 0) { - char buf[NI_MAXHOST + 1]; - - if (getnameinfo((struct sockaddr *) &sock, socklen, buf, - NI_MAXHOST, NULL, 0, 0) == 0) { - myhost = g_strdup(ipv6_unwrap(buf)); - } + myhost = reverse_lookup((struct sockaddr*) &sock, socklen); } if (getpeername(irc->fd, (struct sockaddr*) &sock, &socklen) == 0) { - char buf[NI_MAXHOST + 1]; - - if (getnameinfo((struct sockaddr *) &sock, socklen, buf, - NI_MAXHOST, NULL, 0, 0) == 0) { - host = g_strdup(ipv6_unwrap(buf)); - } + host = reverse_lookup((struct sockaddr*) &sock, socklen); } if (host == NULL) { -- cgit v1.2.3