Module Name: src
Committed By: maxv
Date: Wed May 9 07:21:08 UTC 2018
Modified Files:
src/usr.sbin/route6d: route6d.c route6d.h
Log Message:
Clean up.
To generate a diff of this commit:
cvs rdiff -u -r1.69 -r1.70 src/usr.sbin/route6d/route6d.c
cvs rdiff -u -r1.7 -r1.8 src/usr.sbin/route6d/route6d.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/route6d/route6d.c
diff -u src/usr.sbin/route6d/route6d.c:1.69 src/usr.sbin/route6d/route6d.c:1.70
--- src/usr.sbin/route6d/route6d.c:1.69 Wed May 9 07:05:42 2018
+++ src/usr.sbin/route6d/route6d.c Wed May 9 07:21:08 2018
@@ -1,10 +1,10 @@
-/* $NetBSD: route6d.c,v 1.69 2018/05/09 07:05:42 maxv Exp $ */
+/* $NetBSD: route6d.c,v 1.70 2018/05/09 07:21:08 maxv Exp $ */
/* $KAME: route6d.c,v 1.94 2002/10/26 20:08:55 itojun Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
* All rights reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
@@ -16,7 +16,7 @@
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -32,7 +32,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: route6d.c,v 1.69 2018/05/09 07:05:42 maxv Exp $");
+__RCSID("$NetBSD: route6d.c,v 1.70 2018/05/09 07:21:08 maxv Exp $");
#endif
#include <stdbool.h>
@@ -59,9 +59,6 @@ __RCSID("$NetBSD: route6d.c,v 1.69 2018/
#include <sys/sysctl.h>
#include <sys/uio.h>
#include <net/if.h>
-#if defined(__FreeBSD__) && __FreeBSD__ >= 3
-#include <net/if_var.h>
-#endif /* __FreeBSD__ >= 3 */
#include <net/route.h>
#include <netinet/in.h>
#include <netinet/in_var.h>
@@ -74,22 +71,21 @@ __RCSID("$NetBSD: route6d.c,v 1.69 2018/
#include "route6d.h"
-#define MAXFILTER 40
+#define MAXFILTER 40
-#ifdef DEBUG
-#define INIT_INTERVAL6 6
+#ifdef DEBUG
+#define INIT_INTERVAL6 6
#else
-#define INIT_INTERVAL6 10 /* Wait to submit a initial riprequest */
+#define INIT_INTERVAL6 10 /* Wait to submit a initial riprequest */
#endif
/* alignment constraint for routing socket */
-#if defined(__NetBSD__) && defined(RT_ROUNDUP)
+#if defined(RT_ROUNDUP)
#define ROUNDUP(a) RT_ROUNDUP(a)
#else
#define ROUNDUP(a) \
((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
#endif
-#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len))
/*
* Following two macros are highly depending on KAME Release
@@ -118,7 +114,7 @@ struct ifc { /* Configuration of an in
int ifc_joined; /* joined to ff02::9 */
};
-struct ifac { /* Address associated to an interface */
+struct ifac { /* Address associated to an interface */
struct ifc *ifa_conf; /* back pointer */
struct ifac *ifa_next;
struct in6_addr ifa_addr; /* address */
@@ -194,17 +190,17 @@ static FILE *rtlog = NULL;
static int logopened = 0;
-static int seq = 0;
+static int seq = 0;
static volatile sig_atomic_t seenalrm;
static volatile sig_atomic_t seenquit;
static volatile sig_atomic_t seenusr1;
-#define RRTF_AGGREGATE 0x08000000
-#define RRTF_NOADVERTISE 0x10000000
-#define RRTF_NH_NOT_LLADDR 0x20000000
+#define RRTF_AGGREGATE 0x08000000
+#define RRTF_NOADVERTISE 0x10000000
+#define RRTF_NH_NOT_LLADDR 0x20000000
#define RRTF_SENDANYWAY 0x40000000
-#define RRTF_CHANGED 0x80000000
+#define RRTF_CHANGED 0x80000000
static void sighandler(int);
static void ripalarm(void);
@@ -267,14 +263,14 @@ static struct iff *
iff_find(struct ifc *, int);
static void setindex2ifc(int, struct ifc *);
-#define MALLOC(type) ((type *)malloc(sizeof(type)))
+#define MALLOC(type) (malloc(sizeof(type)))
int
main(int argc, char **argv)
{
- int ch;
- int error = 0;
- struct ifc *ifcp;
+ int ch;
+ int error = 0;
+ struct ifc *ifcp;
sigset_t mask, omask;
char *progname;
char *ep;
@@ -295,7 +291,6 @@ main(int argc, char **argv)
case 'L':
if (nfilter >= MAXFILTER) {
fatal("Exceeds MAXFILTER");
- /*NOTREACHED*/
}
filtertype[nfilter] = ch;
filter[nfilter++] = allocopy(optarg);
@@ -305,13 +300,11 @@ main(int argc, char **argv)
routetag = strtoul(optarg, &ep, 0);
if (!ep || *ep != '\0' || (routetag & ~0xffff) != 0) {
fatal("invalid route tag");
- /*NOTREACHED*/
}
break;
case 'R':
if ((rtlog = fopen(optarg, "w")) == NULL) {
fatal("Can not write to routelog");
- /*NOTREACHED*/
}
break;
#define FLAG(c, flag, n) case c: do { flag = n; break; } while(0)
@@ -327,14 +320,12 @@ main(int argc, char **argv)
#undef FLAG
default:
fatal("Invalid option specified, terminating");
- /*NOTREACHED*/
}
}
argc -= optind;
argv += optind;
if (argc > 0) {
fatal("bogus extra arguments");
- /*NOTREACHED*/
}
if (geteuid()) {
@@ -345,14 +336,13 @@ main(int argc, char **argv)
if (dflag == 0) {
if (daemon(0, 0) < 0) {
fatal("daemon");
- /*NOTREACHED*/
}
}
openlog(progname, LOG_NDELAY|LOG_PID, LOG_DAEMON);
logopened++;
- if ((ripbuf = (struct rip6 *)malloc(RIP6_MAXMTU)) == NULL)
+ if ((ripbuf = malloc(RIP6_MAXMTU)) == NULL)
fatal("malloc");
memset(ripbuf, 0, RIP6_MAXMTU);
ripbuf->rip6_cmd = RIP6_RESPONSE;
@@ -374,7 +364,6 @@ main(int argc, char **argv)
exit(1);
if (loopifcp == NULL) {
fatal("No loopback found");
- /*NOTREACHED*/
}
for (ifcp = ifc; ifcp; ifcp = ifcp->ifc_next)
ifrt(ifcp, 0);
@@ -385,9 +374,8 @@ main(int argc, char **argv)
pidfile(NULL);
- if ((ripbuf = (struct rip6 *)malloc(RIP6_MAXMTU)) == NULL) {
+ if ((ripbuf = malloc(RIP6_MAXMTU)) == NULL) {
fatal("malloc");
- /*NOTREACHED*/
}
memset(ripbuf, 0, RIP6_MAXMTU);
ripbuf->rip6_cmd = RIP6_RESPONSE;
@@ -402,7 +390,6 @@ main(int argc, char **argv)
signal(SIGHUP, sighandler) == SIG_ERR ||
signal(SIGINT, sighandler) == SIG_ERR) {
fatal("signal");
- /*NOTREACHED*/
}
/*
* To avoid rip packet congestion (not on a cable but in this
@@ -443,7 +430,6 @@ main(int argc, char **argv)
case -1:
if (errno != EINTR) {
fatal("poll");
- /*NOTREACHED*/
}
continue;
case 0:
@@ -492,7 +478,7 @@ sighandler(int signo)
static void
rtdexit(void)
{
- struct riprt *rrt;
+ struct riprt *rrt;
alarm(0);
for (rrt = riprt; rrt; rrt = rrt->rrt_next) {
@@ -519,9 +505,9 @@ rtdexit(void)
static void
ripalarm(void)
{
- struct ifc *ifcp;
- struct riprt *rrt, *rrt_prev, *rrt_next;
- time_t t_lifetime, t_holddown;
+ struct ifc *ifcp;
+ struct riprt *rrt, *rrt_prev, *rrt_next;
+ time_t t_lifetime, t_holddown;
/* age the RIP routes */
rrt_prev = 0;
@@ -559,10 +545,10 @@ ripalarm(void)
static void
init(void)
{
- int i, error;
+ int i, error;
const int int0 = 0, int1 = 1, int255 = 255;
- struct addrinfo hints, *res;
- char port[NI_MAXSERV];
+ struct addrinfo hints, *res;
+ char port[NI_MAXSERV];
ifc = NULL;
nifc = 0;
@@ -577,43 +563,35 @@ init(void)
error = getaddrinfo(NULL, port, &hints, &res);
if (error) {
fatal("%s", gai_strerror(error));
- /*NOTREACHED*/
}
if (res->ai_next) {
fatal(":: resolved to multiple address");
- /*NOTREACHED*/
}
ripsock = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if (ripsock < 0) {
fatal("rip socket");
- /*NOTREACHED*/
}
if (setsockopt(ripsock, IPPROTO_IPV6, IPV6_V6ONLY,
&int1, sizeof(int1)) < 0) {
fatal("rip IPV6_V6ONLY");
- /*NOTREACHED*/
}
if (bind(ripsock, res->ai_addr, res->ai_addrlen) < 0) {
fatal("rip bind");
- /*NOTREACHED*/
}
if (setsockopt(ripsock, IPPROTO_IPV6, IPV6_MULTICAST_HOPS,
&int255, sizeof(int255)) < 0) {
fatal("rip IPV6_MULTICAST_HOPS");
- /*NOTREACHED*/
}
if (setsockopt(ripsock, IPPROTO_IPV6, IPV6_MULTICAST_LOOP,
&int0, sizeof(int0)) < 0) {
fatal("rip IPV6_MULTICAST_LOOP");
- /*NOTREACHED*/
}
i = 1;
if (setsockopt(ripsock, IPPROTO_IPV6, IPV6_RECVPKTINFO, &i,
sizeof(i)) < 0) {
fatal("rip IPV6_RECVPKTINFO");
- /*NOTREACHED*/
}
memset(&hints, 0, sizeof(hints));
@@ -622,11 +600,9 @@ init(void)
error = getaddrinfo(RIP6_DEST, port, &hints, &res);
if (error) {
fatal("%s", gai_strerror(error));
- /*NOTREACHED*/
}
if (res->ai_next) {
fatal("%s resolved to multiple address", RIP6_DEST);
- /*NOTREACHED*/
}
memcpy(&ripsin, res->ai_addr, res->ai_addrlen);
@@ -636,7 +612,6 @@ init(void)
if (nflag == 0) {
if ((rtsock = socket(PF_ROUTE, SOCK_RAW, 0)) < 0) {
fatal("route socket");
- /*NOTREACHED*/
}
set[1].fd = rtsock;
set[1].events = POLLIN;
@@ -706,9 +681,9 @@ ripflush(struct ifc *ifcp, struct sockad
static void
ripsend(struct ifc *ifcp, struct sockaddr_in6 *sin6, int flag)
{
- struct riprt *rrt;
- struct in6_addr *nh; /* next hop */
- int maxrte;
+ struct riprt *rrt;
+ struct in6_addr *nh; /* next hop */
+ int maxrte;
if (qflag)
return;
@@ -718,8 +693,8 @@ ripsend(struct ifc *ifcp, struct sockadd
* Request from non-link local address is not
* a regular route6d update.
*/
- maxrte = (IFMINMTU - sizeof(struct ip6_hdr) -
- sizeof(struct udphdr) -
+ maxrte = (IFMINMTU - sizeof(struct ip6_hdr) -
+ sizeof(struct udphdr) -
sizeof(struct rip6) + sizeof(struct netinfo6)) /
sizeof(struct netinfo6);
nrt = 0; nip = ripbuf->rip6_nets; nh = NULL;
@@ -763,8 +738,8 @@ ripsend(struct ifc *ifcp, struct sockadd
return;
}
- maxrte = (ifcp->ifc_mtu - sizeof(struct ip6_hdr) -
- sizeof(struct udphdr) -
+ maxrte = (ifcp->ifc_mtu - sizeof(struct ip6_hdr) -
+ sizeof(struct udphdr) -
sizeof(struct rip6) + sizeof(struct netinfo6)) /
sizeof(struct netinfo6);
@@ -839,13 +814,13 @@ out_filter(struct riprt *rrt, struct ifc
/*
* -A: filter out less specific routes, if we have aggregated
* route configured.
- */
+ */
for (iffp = ifcp->ifc_filter; iffp; iffp = iffp->iff_next) {
if (iffp->iff_type != 'A')
continue;
if (rrt->rrt_info.rip6_plen <= iffp->iff_plen)
continue;
- ia = rrt->rrt_info.rip6_dest;
+ ia = rrt->rrt_info.rip6_dest;
applyplen(&ia, iffp->iff_plen);
if (IN6_ARE_ADDR_EQUAL(&ia, &iffp->iff_addr))
return 0;
@@ -881,7 +856,7 @@ out_filter(struct riprt *rrt, struct ifc
continue;
if (rrt->rrt_info.rip6_plen < iffp->iff_plen)
continue;
- ia = rrt->rrt_info.rip6_dest;
+ ia = rrt->rrt_info.rip6_dest;
applyplen(&ia, iffp->iff_plen);
if (IN6_ARE_ADDR_EQUAL(&ia, &iffp->iff_addr)) {
ok = 1;
@@ -987,16 +962,16 @@ sendpacket(struct sockaddr_in6 *sin6, in
static void
riprecv(void)
{
- struct ifc *ifcp, *ic;
- struct sockaddr_in6 fsock;
- struct in6_addr nh; /* next hop */
- struct rip6 *rp;
- struct netinfo6 *np, *nq;
- struct riprt *rrt;
- ssize_t len, nn;
+ struct ifc *ifcp, *ic;
+ struct sockaddr_in6 fsock;
+ struct in6_addr nh; /* next hop */
+ struct rip6 *rp;
+ struct netinfo6 *np, *nq;
+ struct riprt *rrt;
+ ssize_t len, nn;
unsigned int need_trigger, idx;
- char buf[4 * RIP6_MAXMTU];
- time_t t;
+ char buf[4 * RIP6_MAXMTU];
+ time_t t;
struct msghdr m;
struct cmsghdr *cm;
struct iovec iov[2];
@@ -1020,7 +995,6 @@ riprecv(void)
m.msg_controllen = sizeof(cmsgbuf);
if ((len = recvmsg(ripsock, &m, 0)) < 0) {
fatal("recvmsg");
- /*NOTREACHED*/
}
idx = 0;
for (cm = (struct cmsghdr *)CMSG_FIRSTHDR(&m);
@@ -1058,8 +1032,8 @@ riprecv(void)
} else {
riprequest(NULL, np, nn, &fsock);
}
- return;
- }
+ return;
+ }
if (!IN6_IS_ADDR_LINKLOCAL(&fsock.sin6_addr)) {
trace(1, "Packets from non-ll addr: %s\n",
@@ -1076,7 +1050,7 @@ riprecv(void)
return; /* The packet is from me; ignore */
if (rp->rip6_cmd != RIP6_RESPONSE) {
trace(1, "Invalid command %d\n", rp->rip6_cmd);
- return;
+ return;
}
/* -N: no use */
@@ -1155,7 +1129,7 @@ riprecv(void)
/* special rule: ::/0 means default, not "in /0" */
if (iffp->iff_plen == 0 && np->rip6_plen > 0)
continue;
- ia = np->rip6_dest;
+ ia = np->rip6_dest;
applyplen(&ia, iffp->iff_plen);
if (IN6_ARE_ADDR_EQUAL(&ia, &iffp->iff_addr)) {
ok = 1;
@@ -1206,7 +1180,7 @@ riprecv(void)
} else if (nq->rip6_metric == np->rip6_metric &&
np->rip6_metric < HOPCNT_INFINITY6) {
if (rrt->rrt_index == ifcp->ifc_index &&
- IN6_ARE_ADDR_EQUAL(&nh, &rrt->rrt_gw)) {
+ IN6_ARE_ADDR_EQUAL(&nh, &rrt->rrt_gw)) {
/* same metric, same route from same gw */
rrt->rrt_t = t;
} else if (rrt->rrt_t < t_half_lifetime) {
@@ -1221,7 +1195,7 @@ riprecv(void)
rrt->rrt_t = t;
}
}
- /*
+ /*
* if nq->rip6_metric == HOPCNT_INFINITY6 then
* do not update age value. Do nothing.
*/
@@ -1229,7 +1203,6 @@ riprecv(void)
/* Got a new valid route */
if ((rrt = MALLOC(struct riprt)) == NULL) {
fatal("malloc: struct riprt");
- /*NOTREACHED*/
}
memset(rrt, 0, sizeof(*rrt));
nq = &rrt->rrt_info;
@@ -1340,12 +1313,10 @@ ifconfig(void)
if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
fatal("socket");
- /*NOTREACHED*/
}
if (getifaddrs(&ifap) != 0) {
fatal("getifaddrs");
- /*NOTREACHED*/
}
for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
@@ -1359,7 +1330,6 @@ ifconfig(void)
/* new interface */
if ((ifcp = MALLOC(struct ifc)) == NULL) {
fatal("malloc: struct ifc");
- /*NOTREACHED*/
}
memset(ifcp, 0, sizeof(*ifcp));
ifcp->ifc_index = -1;
@@ -1392,7 +1362,6 @@ ifconfig(void)
if (setsockopt(ripsock, IPPROTO_IPV6, IPV6_JOIN_GROUP,
&mreq, sizeof(mreq)) < 0) {
fatal("IPV6_JOIN_GROUP");
- /*NOTREACHED*/
}
trace(1, "join %s %s\n", ifcp->ifc_name, RIP6_DEST);
ifcp->ifc_joined++;
@@ -1405,11 +1374,11 @@ ifconfig(void)
static void
ifconfig1(const char *name, const struct sockaddr *sa, struct ifc *ifcp, int s)
{
- struct in6_ifreq ifr;
+ struct in6_ifreq ifr;
const struct sockaddr_in6 *sin6;
- struct ifac *ifa;
- int plen;
- char buf[BUFSIZ];
+ struct ifac *ifa;
+ int plen;
+ char buf[BUFSIZ];
sin6 = (const struct sockaddr_in6 *)sa;
if (IN6_IS_ADDR_SITELOCAL(&sin6->sin6_addr) && !lflag)
@@ -1418,7 +1387,6 @@ ifconfig1(const char *name, const struct
strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
if (ioctl(s, SIOCGIFNETMASK_IN6, (char *)&ifr) < 0) {
fatal("ioctl: SIOCGIFNETMASK_IN6");
- /*NOTREACHED*/
}
plen = sin6mask2len(&ifr.ifr_addr);
if ((ifa = ifa_match(ifcp, &sin6->sin6_addr, plen)) != NULL) {
@@ -1432,7 +1400,6 @@ ifconfig1(const char *name, const struct
*/
if ((ifa = MALLOC(struct ifac)) == NULL) {
fatal("malloc: struct ifac");
- /*NOTREACHED*/
}
memset(ifa, 0, sizeof(*ifa));
ifa->ifa_conf = ifcp;
@@ -1444,7 +1411,6 @@ ifconfig1(const char *name, const struct
ifr.ifr_addr = *sin6;
if (ioctl(s, SIOCGIFDSTADDR_IN6, (char *)&ifr) < 0) {
fatal("ioctl: SIOCGIFDSTADDR_IN6");
- /*NOTREACHED*/
}
ifa->ifa_raddr = ifr.ifr_dstaddr.sin6_addr;
inet_ntop(AF_INET6, (void *)&ifa->ifa_raddr, buf, sizeof(buf));
@@ -1466,7 +1432,6 @@ ifconfig1(const char *name, const struct
ifcp->ifc_mtu = RIP6_MAXMTU;
if (ioctl(s, SIOCGIFMETRIC, (char *)&ifr) < 0) {
fatal("ioctl: SIOCGIFMETRIC");
- /*NOTREACHED*/
}
ifcp->ifc_metric = ifr.ifr_metric;
trace(1, "\tindex: %d, mtu: %d, metric: %d\n",
@@ -1599,7 +1564,7 @@ rtrecv(void)
#if 0
if (rta[RTAX_DST] == NULL) {
trace(1, "\tno destination, ignored\n");
- continue;
+ continue;
}
if (rta[RTAX_DST]->sin6_family != AF_INET6) {
trace(1, "\taf mismatch, ignored\n");
@@ -1630,7 +1595,7 @@ rtrecv(void)
case RTM_LOCK:
/* should already be handled */
fatal("rtrecv: never reach here");
- /*NOTREACHED*/
+ /* NOTREACHED */
case RTM_DELETE:
if (!rta[RTAX_DST] || !rta[RTAX_GATEWAY]) {
trace(1, "\tsome of dst/gw/netamsk are "
@@ -2022,7 +1987,7 @@ ifrt(struct ifc *ifcp, int again)
}
}
}
- }
+ }
next:
if (rrt)
free(rrt);
@@ -2119,7 +2084,6 @@ ifrt_p2p(struct ifc *ifcp, int again)
continue;
if ((rrt = MALLOC(struct riprt)) == NULL) {
fatal("malloc: struct riprt");
- /*NOTREACHED*/
}
memset(rrt, 0, sizeof(*rrt));
rrt->rrt_same = NULL;
@@ -2207,11 +2171,11 @@ ifrt_p2p(struct ifc *ifcp, int again)
static int
getifmtu(int ifindex)
{
- int mib[6];
- char *buf;
- size_t msize;
- struct if_msghdr *ifm;
- int mtu;
+ int mib[6];
+ char *buf;
+ size_t msize;
+ struct if_msghdr *ifm;
+ int mtu;
mib[0] = CTL_NET;
mib[1] = PF_ROUTE;
@@ -2221,24 +2185,16 @@ getifmtu(int ifindex)
mib[5] = ifindex;
if (sysctl(mib, 6, NULL, &msize, NULL, 0) < 0) {
fatal("sysctl estimate NET_RT_IFLIST");
- /*NOTREACHED*/
}
if ((buf = malloc(msize)) == NULL) {
fatal("malloc");
- /*NOTREACHED*/
}
if (sysctl(mib, 6, buf, &msize, NULL, 0) < 0) {
fatal("sysctl NET_RT_IFLIST");
- /*NOTREACHED*/
}
ifm = (struct if_msghdr *)buf;
mtu = ifm->ifm_data.ifi_mtu;
-#ifdef __FreeBSD__
- if (ifindex != ifm->ifm_index) {
- fatal("ifindex does not match with ifm_index");
- /*NOTREACHED*/
- }
-#endif
+
free(buf);
return mtu;
}
@@ -2429,7 +2385,6 @@ krtread(int again)
if (errmsg) {
fatal("%s (with %d retries, msize=%lu)", errmsg, retry,
(u_long)msize);
- /*NOTREACHED*/
} else if (1 < retry)
syslog(LOG_INFO, "NET_RT_DUMP %d retries", retry);
@@ -2444,12 +2399,12 @@ krtread(int again)
static void
rt_entry(struct rt_msghdr *rtm, int again)
{
- struct sockaddr_in6 *sin6_dst, *sin6_gw, *sin6_mask;
- struct sockaddr_in6 *sin6_genmask, *sin6_ifp;
- char *rtmp, *ifname = NULL;
- struct riprt *rrt, *orrt;
- struct netinfo6 *np;
- int s;
+ struct sockaddr_in6 *sin6_dst, *sin6_gw, *sin6_mask;
+ struct sockaddr_in6 *sin6_genmask, *sin6_ifp;
+ char *rtmp, *ifname = NULL;
+ struct riprt *rrt, *orrt;
+ struct netinfo6 *np;
+ int s;
sin6_dst = sin6_gw = sin6_mask = sin6_genmask = sin6_ifp = 0;
if ((rtm->rtm_flags & RTF_UP) == 0 || rtm->rtm_flags &
@@ -2506,7 +2461,6 @@ rt_entry(struct rt_msghdr *rtm, int agai
if ((rrt = MALLOC(struct riprt)) == NULL) {
fatal("malloc: struct riprt");
- /*NOTREACHED*/
}
memset(rrt, 0, sizeof(*rrt));
np = &rrt->rrt_info;
@@ -2574,11 +2528,7 @@ rt_entry(struct rt_msghdr *rtm, int agai
/* Check gateway */
if (!IN6_IS_ADDR_LINKLOCAL(&rrt->rrt_gw) &&
- !IN6_IS_ADDR_LOOPBACK(&rrt->rrt_gw)
-#ifdef __FreeBSD__
- && (rrt->rrt_flags & RTF_LOCAL) == 0
-#endif
- ) {
+ !IN6_IS_ADDR_LOOPBACK(&rrt->rrt_gw)) {
trace(0, "***** Gateway %s is not a link-local address.\n",
inet6_n2p(&rrt->rrt_gw));
trace(0, "***** dest(%s) if(%s) -- Not optimized.\n",
@@ -2604,11 +2554,11 @@ rt_entry(struct rt_msghdr *rtm, int agai
static int
addroute(struct riprt *rrt, const struct in6_addr *gw, struct ifc *ifcp)
{
- struct netinfo6 *np;
- u_char buf[BUFSIZ], buf1[BUFSIZ], buf2[BUFSIZ];
- struct rt_msghdr *rtm;
- struct sockaddr_in6 *sin6;
- int len;
+ struct netinfo6 *np;
+ u_char buf[BUFSIZ], buf1[BUFSIZ], buf2[BUFSIZ];
+ struct rt_msghdr *rtm;
+ struct sockaddr_in6 *sin6;
+ int len;
np = &rrt->rrt_info;
inet_ntop(AF_INET6, (const void *)gw, (char *)buf1, sizeof(buf1));
@@ -2674,10 +2624,10 @@ addroute(struct riprt *rrt, const struct
static int
delroute(struct netinfo6 *np, struct in6_addr *gw)
{
- u_char buf[BUFSIZ], buf2[BUFSIZ];
- struct rt_msghdr *rtm;
- struct sockaddr_in6 *sin6;
- int len;
+ u_char buf[BUFSIZ], buf2[BUFSIZ];
+ struct rt_msghdr *rtm;
+ struct sockaddr_in6 *sin6;
+ int len;
inet_ntop(AF_INET6, (void *)gw, (char *)buf2, sizeof(buf2));
tracet(1, "DEL: %s/%d gw %s\n", inet6_n2p(&np->rip6_dest),
@@ -2847,10 +2797,10 @@ ifdump0(FILE *dump, const struct ifc *if
static void
rtdump(int sig)
{
- struct riprt *rrt;
- char buf[BUFSIZ];
- FILE *dump;
- time_t t, age;
+ struct riprt *rrt;
+ char buf[BUFSIZ];
+ FILE *dump;
+ time_t t, age;
if (sig == 0)
dump = stderr;
@@ -2920,19 +2870,16 @@ filterconfig(void)
}
if ((p = strchr(ap, '/')) == NULL) {
fatal("no prefixlen specified for '%s'", ap);
- /*NOTREACHED*/
}
*p++ = '\0';
if (inet_pton(AF_INET6, ap, &ftmp.iff_addr) != 1) {
fatal("invalid prefix specified for '%s'", ap);
- /*NOTREACHED*/
}
errno = 0;
ep = NULL;
plen = strtoul(p, &ep, 10);
if (errno || !*p || *ep || plen > sizeof(ftmp.iff_addr) * 8) {
fatal("invalid prefix length specified for '%s'", ap);
- /*NOTREACHED*/
}
ftmp.iff_plen = plen;
ftmp.iff_next = NULL;
@@ -2941,7 +2888,6 @@ ifonly:
ftmp.iff_type = filtertype[i];
if (iflp == NULL || *iflp == '\0') {
fatal("no interface specified for '%s'", ap);
- /*NOTREACHED*/
}
/* parse the interface listing portion */
while (iflp) {
@@ -2951,12 +2897,10 @@ ifonly:
ifcp = ifc_find(ifname);
if (ifcp == NULL) {
fatal("no interface %s exists", ifname);
- /*NOTREACHED*/
}
- iff_obj = (struct iff *)malloc(sizeof(struct iff));
+ iff_obj = malloc(sizeof(struct iff));
if (iff_obj == NULL) {
fatal("malloc of iff_obj");
- /*NOTREACHED*/
}
memcpy((void *)iff_obj, (void *)&ftmp,
sizeof(struct iff));
@@ -2971,10 +2915,9 @@ ifonly:
if (filtertype[i] != 'A')
continue;
/* put the aggregate to the kernel routing table */
- rrt = (struct riprt *)malloc(sizeof(struct riprt));
+ rrt = malloc(sizeof(struct riprt));
if (rrt == NULL) {
fatal("malloc: rrt");
- /*NOTREACHED*/
}
memset(rrt, 0, sizeof(struct riprt));
rrt->rrt_info.rip6_dest = ftmp.iff_addr;
@@ -2991,7 +2934,7 @@ ifonly:
#if 0
/*
* When the address has already been registered in the
- * kernel routing table, it should be removed
+ * kernel routing table, it should be removed
*/
delroute(&rrt->rrt_info, &gw);
#else
@@ -3001,7 +2944,6 @@ ifonly:
"cannot aggregate",
inet6_n2p(&rrt->rrt_info.rip6_dest),
rrt->rrt_info.rip6_plen);
- /*NOTREACHED*/
#endif
}
#endif
@@ -3045,7 +2987,7 @@ ifa_match(const struct ifc *ifcp, const
static struct riprt *
rtsearch(struct netinfo6 *np, struct riprt **prev_rrt)
{
- struct riprt *rrt;
+ struct riprt *rrt;
if (prev_rrt)
*prev_rrt = NULL;
@@ -3075,7 +3017,7 @@ mask2len(const struct in6_addr *addr, in
{
int i = 0, j;
const u_char *p = (const u_char *)addr;
-
+
for (j = 0; j < lenlim; j++, p++) {
if (*p != 0xff)
break;
@@ -3104,8 +3046,8 @@ static const u_char plent[8] = {
static void
applyplen(struct in6_addr *ia, int plen)
{
- u_char *p;
- int i;
+ u_char *p;
+ int i;
p = ia->s6_addr;
for (i = 0; i < 16; i++) {
@@ -3125,8 +3067,8 @@ static struct in6_addr *
plen2mask(int n)
{
static struct in6_addr ia;
- u_char *p;
- int i;
+ u_char *p;
+ int i;
memset(&ia, 0, sizeof(struct in6_addr));
p = (u_char *)&ia;
@@ -3149,7 +3091,6 @@ allocopy(char *p)
if (!q) {
fatal("malloc");
- /*NOTREACHED*/
}
strlcpy(q, p, len);
@@ -3166,7 +3107,6 @@ hms(void)
t = time(NULL);
if ((tm = localtime(&t)) == 0) {
fatal("localtime");
- /*NOTREACHED*/
}
snprintf(buf, sizeof(buf), "%02d:%02d:%02d", tm->tm_hour, tm->tm_min,
tm->tm_sec);
@@ -3275,11 +3215,9 @@ setindex2ifc(int idx, struct ifc *ifcp)
if (!index2ifc) {
nindex2ifc = 5; /*initial guess*/
- index2ifc = (struct ifc **)
- malloc(sizeof(*index2ifc) * nindex2ifc);
+ index2ifc = malloc(sizeof(*index2ifc) * nindex2ifc);
if (index2ifc == NULL) {
fatal("malloc");
- /*NOTREACHED*/
}
memset(index2ifc, 0, sizeof(*index2ifc) * nindex2ifc);
}
@@ -3291,7 +3229,6 @@ setindex2ifc(int idx, struct ifc *ifcp)
sizeof(*index2ifc) * nsize);
if (p == NULL) {
fatal("realloc");
- /*NOTREACHED*/
}
memset(p + n, 0, sizeof(*index2ifc) * (nindex2ifc - n));
index2ifc = p;
Index: src/usr.sbin/route6d/route6d.h
diff -u src/usr.sbin/route6d/route6d.h:1.7 src/usr.sbin/route6d/route6d.h:1.8
--- src/usr.sbin/route6d/route6d.h:1.7 Fri Jun 7 16:45:30 2002
+++ src/usr.sbin/route6d/route6d.h Wed May 9 07:21:08 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: route6d.h,v 1.7 2002/06/07 16:45:30 itojun Exp $ */
+/* $NetBSD: route6d.h,v 1.8 2018/05/09 07:21:08 maxv Exp $ */
/* $KAME: route6d.h,v 1.4 2001/01/15 03:50:54 inoue Exp $ */
/*
@@ -30,10 +30,6 @@
* SUCH DAMAGE.
*/
-/* not yet in use
-#define ROUTE6D_CONF "/usr/local/v6/etc/route6d.conf"
-*/
-
#define ROUTE6D_DUMP "/var/run/route6d_dump"
#define RIP6_VERSION 1
@@ -50,7 +46,7 @@ struct netinfo6 {
u_char rip6_metric;
};
-struct rip6 {
+struct rip6 {
u_char rip6_cmd;
u_char rip6_vers;
u_char rip6_res1[2];