svn commit: r287998 - head/usr.sbin/inetd
Hiroki Sato
hrs at FreeBSD.org
Sat Sep 19 23:48:07 UTC 2015
Author: hrs
Date: Sat Sep 19 23:48:06 2015
New Revision: 287998
URL: https://svnweb.freebsd.org/changeset/base/287998
Log:
- Remove unused union p_un.
- Use NI_MAXHOST-long buffer for getnameinfo().
Although INET6_ADDRSTRLEN was designed to hold the longest
IPv6 address in IPv4-mapped address format a long time ago,
getnameinfo() can return scope identifier in addition to it.
MFC after: 1 day
Modified:
head/usr.sbin/inetd/inetd.c
Modified: head/usr.sbin/inetd/inetd.c
==============================================================================
--- head/usr.sbin/inetd/inetd.c Sat Sep 19 23:27:22 2015 (r287997)
+++ head/usr.sbin/inetd/inetd.c Sat Sep 19 23:48:06 2015 (r287998)
@@ -327,16 +327,7 @@ main(int argc, char **argv)
struct request_info req;
int denied;
char *service = NULL;
- union {
- struct sockaddr peer_un;
- struct sockaddr_in peer_un4;
- struct sockaddr_in6 peer_un6;
- struct sockaddr_storage peer_max;
- } p_un;
-#define peer p_un.peer_un
-#define peer4 p_un.peer_un4
-#define peer6 p_un.peer_un6
-#define peermax p_un.peer_max
+ struct sockaddr_storage peer;
int i;
struct addrinfo hints, *res;
const char *servname;
@@ -656,24 +647,24 @@ main(int argc, char **argv)
} else
ctrl = sep->se_fd;
if (dolog && !ISWRAP(sep)) {
- char pname[INET6_ADDRSTRLEN] = "unknown";
+ char pname[NI_MAXHOST] = "unknown";
socklen_t sl;
- sl = sizeof peermax;
+ sl = sizeof(peer);
if (getpeername(ctrl, (struct sockaddr *)
- &peermax, &sl)) {
- sl = sizeof peermax;
+ &peer, &sl)) {
+ sl = sizeof(peer);
if (recvfrom(ctrl, buf, sizeof(buf),
MSG_PEEK,
- (struct sockaddr *)&peermax,
+ (struct sockaddr *)&peer,
&sl) >= 0) {
- getnameinfo((struct sockaddr *)&peermax,
- peer.sa_len,
+ getnameinfo((struct sockaddr *)&peer,
+ peer.ss_len,
pname, sizeof(pname),
NULL, 0, NI_NUMERICHOST);
}
} else {
- getnameinfo((struct sockaddr *)&peermax,
- peer.sa_len,
+ getnameinfo((struct sockaddr *)&peer,
+ peer.ss_len,
pname, sizeof(pname),
NULL, 0, NI_NUMERICHOST);
}
@@ -2098,7 +2089,7 @@ inetd_setproctitle(const char *a, int s)
{
socklen_t size;
struct sockaddr_storage ss;
- char buf[80], pbuf[INET6_ADDRSTRLEN];
+ char buf[80], pbuf[NI_MAXHOST];
size = sizeof(ss);
if (getpeername(s, (struct sockaddr *)&ss, &size) == 0) {
@@ -2114,7 +2105,7 @@ int
check_loop(const struct sockaddr *sa, const struct servtab *sep)
{
struct servtab *se2;
- char pname[INET6_ADDRSTRLEN];
+ char pname[NI_MAXHOST];
for (se2 = servtab; se2; se2 = se2->se_next) {
if (!se2->se_bi || se2->se_socktype != SOCK_DGRAM)
@@ -2328,7 +2319,7 @@ cpmip(const struct servtab *sep, int ctr
}
}
if ((cnt * 60) / (CHTSIZE * CHTGRAN) > sep->se_maxcpm) {
- char pname[INET6_ADDRSTRLEN];
+ char pname[NI_MAXHOST];
getnameinfo((struct sockaddr *)&rss,
((struct sockaddr *)&rss)->sa_len,
More information about the svn-src-all
mailing list