aboutsummaryrefslogtreecommitdiffstats
path: root/irc.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2017-04-02 19:50:49 +0100
committerWilmer van der Gaast <github@wilmer.gaast.net>2017-04-06 21:25:08 +0100
commit60141cfa8c26971ec2258118a661609c7a15d261 (patch)
tree113517b04ef151c509695f8298c2376258e0d6b6 /irc.c
parent262a82b875f2a05cdcf2258260c5e8a9e538f405 (diff)
Add reverse_lookup() function which does a more proper (verified) DNS
reverse lookup. (Code copied from OpenSSH instead of redoing it poorly.)
Diffstat (limited to 'irc.c')
-rw-r--r--irc.c14
1 files changed, 2 insertions, 12 deletions
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) {