diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c --- a/usr.sbin/syslogd/syslogd.c +++ b/usr.sbin/syslogd/syslogd.c @@ -186,6 +186,26 @@ #define HAS_INET6 false #endif +/* + * Network addresses that are allowed to log to us. + */ +struct allowedpeer { + bool isnumeric; + u_short port; + union { + struct { + struct sockaddr_storage addr; + struct sockaddr_storage mask; + } numeric; + char *name; + } u; +#define a_addr u.numeric.addr +#define a_mask u.numeric.mask +#define a_name u.name + STAILQ_ENTRY(allowedpeer) next; +}; +static STAILQ_HEAD(, allowedpeer) aphead = STAILQ_HEAD_INITIALIZER(aphead); + /* * Sockets used for logging; monitored by kevent(). */ @@ -335,28 +355,6 @@ #define DQ_TIMO_INIT 2 -/* - * Struct to hold records of network addresses that are allowed to log - * to us. - */ -struct allowedpeer { - int isnumeric; - u_short port; - union { - struct { - struct sockaddr_storage addr; - struct sockaddr_storage mask; - } numeric; - char *name; - } u; -#define a_addr u.numeric.addr -#define a_mask u.numeric.mask -#define a_name u.name - STAILQ_ENTRY(allowedpeer) next; -}; -static STAILQ_HEAD(, allowedpeer) aphead = STAILQ_HEAD_INITIALIZER(aphead); - - /* * Intervals at which we flush out "message repeated" messages, * in seconds after previous message is logged. After each flush, @@ -3443,7 +3441,7 @@ .ai_flags = AI_PASSIVE | AI_NUMERICHOST }; if (getaddrinfo(s, NULL, &hints, &res) == 0) { - ap->isnumeric = 1; + ap->isnumeric = true; memcpy(&ap->a_addr, res->ai_addr, res->ai_addrlen); ap->a_mask = (struct sockaddr_storage){ .ss_family = res->ai_family, @@ -3500,7 +3498,7 @@ freeaddrinfo(res); } else { /* arg `s' is domain name */ - ap->isnumeric = 0; + ap->isnumeric = false; ap->a_name = s; if (cp1) *cp1 = '/'; @@ -3550,14 +3548,9 @@ struct sockaddr_in6 *sin6, *a6p = NULL, *m6p = NULL; struct addrinfo hints, *res; u_short sport; - int num = 0; - STAILQ_FOREACH(ap, &aphead, next) { - num++; - } - dprintf("# of validation rule: %d\n", num); - if (num == 0) - /* traditional behaviour, allow everything */ + /* traditional behaviour, allow everything */ + if (STAILQ_EMPTY(&aphead)) return (true); (void)strlcpy(name, hname, sizeof(name)); @@ -3569,8 +3562,8 @@ if (getaddrinfo(name, NULL, &hints, &res) == 0) freeaddrinfo(res); else if (strchr(name, '.') == NULL) { - strlcat(name, ".", sizeof name); - strlcat(name, LocalDomain, sizeof name); + strlcat(name, ".", sizeof(name)); + strlcat(name, LocalDomain, sizeof(name)); } if (getnameinfo(sa, sa->sa_len, ip, sizeof(ip), port, sizeof(port), NI_NUMERICHOST | NI_NUMERICSERV) != 0)