summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>1999-07-03 18:24:13 +0000
committerderaadt <deraadt@openbsd.org>1999-07-03 18:24:13 +0000
commit0c21f367e69324c6564f7be6aab956769b9d5bdd (patch)
tree9accb4760c71318c5074f3aca04cfff891ab912e
parentproto net_addrcmp() (diff)
downloadwireguard-openbsd-0c21f367e69324c6564f7be6aab956769b9d5bdd.tar.xz
wireguard-openbsd-0c21f367e69324c6564f7be6aab956769b9d5bdd.zip
use getnameinfo()
-rw-r--r--libexec/fingerd/fingerd.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/libexec/fingerd/fingerd.c b/libexec/fingerd/fingerd.c
index 26ded731aca..776b43b952a 100644
--- a/libexec/fingerd/fingerd.c
+++ b/libexec/fingerd/fingerd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fingerd.c,v 1.13 1999/02/24 17:00:01 aaron Exp $ */
+/* $OpenBSD: fingerd.c,v 1.14 1999/07/03 18:24:13 deraadt Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -43,7 +43,7 @@ static char copyright[] =
#if 0
static char sccsid[] = "from: @(#)fingerd.c 8.1 (Berkeley) 6/4/93";
#else
-static char rcsid[] = "$OpenBSD: fingerd.c,v 1.13 1999/02/24 17:00:01 aaron Exp $";
+static char rcsid[] = "$OpenBSD: fingerd.c,v 1.14 1999/07/03 18:24:13 deraadt Exp $";
#endif
#endif /* not lint */
@@ -74,6 +74,7 @@ main(argc, argv)
size_t linesiz;
#define ENTRIES 50
char **ap, *av[ENTRIES + 1], **comp, *line, *prog, *lp, *hname;
+ char hostbuf[MAXHOSTNAMELEN];
prog = _PATH_FINGER;
logging = secure = user_required = short_list = 0;
@@ -112,20 +113,15 @@ main(argc, argv)
}
if (logging) {
- struct hostent *hp;
- struct sockaddr_in sin;
+ struct sockaddr_storage ss;
int sval;
- sval = sizeof(sin);
- if (getpeername(0, (struct sockaddr *)&sin, &sval) < 0)
+ sval = sizeof(ss);
+ if (getpeername(0, (struct sockaddr *)&ss, &sval) < 0)
err("getpeername: %s", strerror(errno));
- if ((hp = gethostbyaddr((char *)&sin.sin_addr.s_addr,
- sizeof(sin.sin_addr.s_addr), AF_INET)))
- hname = strdup(hp->h_name);
- else
- hname = strdup(inet_ntoa(sin.sin_addr));
- if (hname == NULL)
- err("Out of memory");
+ (void)getnameinfo((struct sockaddr *)&ss, ss.ss_len,
+ hostbuf, sizeof(hostbuf), NULL, 0, 0);
+ hname = hostbuf;
}
if ((lp = fgetln(stdin, &linesiz)) == NULL) {