svn commit: r312013 - head/usr.sbin/route6d
Hiroki Sato
hrs at FreeBSD.org
Fri Jan 13 06:22:50 UTC 2017
Author: hrs
Date: Fri Jan 13 06:22:49 2017
New Revision: 312013
URL: https://svnweb.freebsd.org/changeset/base/312013
Log:
- Add static for functions and variables with internal linkage.
- Quiet down -Wcast-align warnings.
- Remove dead code.
There is no functionality change.
Modified:
head/usr.sbin/route6d/route6d.c
Modified: head/usr.sbin/route6d/route6d.c
==============================================================================
--- head/usr.sbin/route6d/route6d.c Fri Jan 13 04:21:09 2017 (r312012)
+++ head/usr.sbin/route6d/route6d.c Fri Jan 13 06:22:49 2017 (r312013)
@@ -100,7 +100,7 @@ struct ifc { /* Configuration of an in
TAILQ_HEAD(, iff) ifc_iff_head; /* list of filters */
int ifc_joined; /* joined to ff02::9 */
};
-TAILQ_HEAD(, ifc) ifc_head = TAILQ_HEAD_INITIALIZER(ifc_head);
+static TAILQ_HEAD(, ifc) ifc_head = TAILQ_HEAD_INITIALIZER(ifc_head);
struct ifac { /* Adddress associated to an interface */
TAILQ_ENTRY(ifac) ifac_next;
@@ -120,21 +120,21 @@ struct iff { /* Filters for an interfa
int iff_plen;
};
-struct ifc **index2ifc;
-unsigned int nindex2ifc;
-struct ifc *loopifcp = NULL; /* pointing to loopback */
+static struct ifc **index2ifc;
+static unsigned int nindex2ifc;
+static struct ifc *loopifcp = NULL; /* pointing to loopback */
#ifdef HAVE_POLL_H
-struct pollfd set[2];
+static struct pollfd set[2];
#else
-fd_set *sockvecp; /* vector to select() for receiving */
-fd_set *recvecp;
-int fdmasks;
-int maxfd; /* maximum fd for select() */
+static fd_set *sockvecp; /* vector to select() for receiving */
+static fd_set *recvecp;
+static int fdmasks;
+static int maxfd; /* maximum fd for select() */
#endif
-int rtsock; /* the routing socket */
-int ripsock; /* socket to send/receive RIP datagram */
+static int rtsock; /* the routing socket */
+static int ripsock; /* socket to send/receive RIP datagram */
-struct rip6 *ripbuf; /* packet buffer for sending */
+static struct rip6 *ripbuf; /* packet buffer for sending */
/*
* Maintain the routes in a linked list. When the number of the routes
@@ -159,41 +159,43 @@ struct riprt {
time_t rrt_t; /* when the route validated */
int rrt_index; /* ifindex from which this route got */
};
-TAILQ_HEAD(, riprt) riprt_head = TAILQ_HEAD_INITIALIZER(riprt_head);
+static TAILQ_HEAD(, riprt) riprt_head = TAILQ_HEAD_INITIALIZER(riprt_head);
-int dflag = 0; /* debug flag */
-int qflag = 0; /* quiet flag */
-int nflag = 0; /* don't update kernel routing table */
-int aflag = 0; /* age out even the statically defined routes */
-int hflag = 0; /* don't split horizon */
-int lflag = 0; /* exchange site local routes */
-int Pflag = 0; /* don't age out routes with RTF_PROTO[123] */
-int Qflag = RTF_PROTO2; /* set RTF_PROTO[123] flag to routes by RIPng */
-int sflag = 0; /* announce static routes w/ split horizon */
-int Sflag = 0; /* announce static routes to every interface */
-unsigned long routetag = 0; /* route tag attached on originating case */
-
-char *filter[MAXFILTER];
-int filtertype[MAXFILTER];
-int nfilter = 0;
-
-pid_t pid;
-
-struct sockaddr_storage ripsin;
-
-int interval = 1;
-time_t nextalarm = 0;
-time_t sup_trig_update = 0;
+static int dflag = 0; /* debug flag */
+static int qflag = 0; /* quiet flag */
+static int nflag = 0; /* don't update kernel routing table */
+static int aflag = 0; /* age out even the statically defined routes */
+static int hflag = 0; /* don't split horizon */
+static int lflag = 0; /* exchange site local routes */
+static int Pflag = 0; /* don't age out routes with RTF_PROTO[123] */
+static int Qflag = RTF_PROTO2; /* set RTF_PROTO[123] flag to routes by RIPng */
+static int sflag = 0; /* announce static routes w/ split horizon */
+static int Sflag = 0; /* announce static routes to every interface */
+static unsigned long routetag = 0; /* route tag attached on originating case */
+
+static char *filter[MAXFILTER];
+static int filtertype[MAXFILTER];
+static int nfilter = 0;
-FILE *rtlog = NULL;
+static pid_t pid;
-int logopened = 0;
+static struct sockaddr_storage ripsin;
+
+static int interval = 1;
+static time_t nextalarm = 0;
+#if 0
+static time_t sup_trig_update = 0;
+#endif
+
+static FILE *rtlog = NULL;
+
+static int logopened = 0;
static int seq = 0;
-volatile sig_atomic_t seenalrm;
-volatile sig_atomic_t seenquit;
-volatile sig_atomic_t seenusr1;
+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
@@ -202,66 +204,67 @@ volatile sig_atomic_t seenusr1;
#define RRTF_CHANGED 0x80000000
int main(int, char **);
-void sighandler(int);
-void ripalarm(void);
-void riprecv(void);
-void ripsend(struct ifc *, struct sockaddr_in6 *, int);
-int out_filter(struct riprt *, struct ifc *);
-void init(void);
-void sockopt(struct ifc *);
-void ifconfig(void);
-int ifconfig1(const char *, const struct sockaddr *, struct ifc *, int);
-void rtrecv(void);
-int rt_del(const struct sockaddr_in6 *, const struct sockaddr_in6 *,
+static void sighandler(int);
+static void ripalarm(void);
+static void riprecv(void);
+static void ripsend(struct ifc *, struct sockaddr_in6 *, int);
+static int out_filter(struct riprt *, struct ifc *);
+static void init(void);
+static void ifconfig(void);
+static int ifconfig1(const char *, const struct sockaddr *, struct ifc *, int);
+static void rtrecv(void);
+static int rt_del(const struct sockaddr_in6 *, const struct sockaddr_in6 *,
const struct sockaddr_in6 *);
-int rt_deladdr(struct ifc *, const struct sockaddr_in6 *,
+static int rt_deladdr(struct ifc *, const struct sockaddr_in6 *,
const struct sockaddr_in6 *);
-void filterconfig(void);
-int getifmtu(int);
-const char *rttypes(struct rt_msghdr *);
-const char *rtflags(struct rt_msghdr *);
-const char *ifflags(int);
-int ifrt(struct ifc *, int);
-void ifrt_p2p(struct ifc *, int);
-void applymask(struct in6_addr *, struct in6_addr *);
-void applyplen(struct in6_addr *, int);
-void ifrtdump(int);
-void ifdump(int);
-void ifdump0(FILE *, const struct ifc *);
-void ifremove(int);
-void rtdump(int);
-void rt_entry(struct rt_msghdr *, int);
-void rtdexit(void);
-void riprequest(struct ifc *, struct netinfo6 *, int,
+static void filterconfig(void);
+static int getifmtu(int);
+static const char *rttypes(struct rt_msghdr *);
+static const char *rtflags(struct rt_msghdr *);
+static const char *ifflags(int);
+static int ifrt(struct ifc *, int);
+static void ifrt_p2p(struct ifc *, int);
+static void applyplen(struct in6_addr *, int);
+static void ifrtdump(int);
+static void ifdump(int);
+static void ifdump0(FILE *, const struct ifc *);
+static void ifremove(int);
+static void rtdump(int);
+static void rt_entry(struct rt_msghdr *, int);
+static void rtdexit(void);
+static void riprequest(struct ifc *, struct netinfo6 *, int,
struct sockaddr_in6 *);
-void ripflush(struct ifc *, struct sockaddr_in6 *, int, struct netinfo6 *np);
-void sendrequest(struct ifc *);
-int sin6mask2len(const struct sockaddr_in6 *);
-int mask2len(const struct in6_addr *, int);
-int sendpacket(struct sockaddr_in6 *, int);
-int addroute(struct riprt *, const struct in6_addr *, struct ifc *);
-int delroute(struct netinfo6 *, struct in6_addr *);
-struct in6_addr *getroute(struct netinfo6 *, struct in6_addr *);
-void krtread(int);
-int tobeadv(struct riprt *, struct ifc *);
-char *allocopy(char *);
-char *hms(void);
-const char *inet6_n2p(const struct in6_addr *);
-struct ifac *ifa_match(const struct ifc *, const struct in6_addr *, int);
-struct in6_addr *plen2mask(int);
-struct riprt *rtsearch(struct netinfo6 *);
-int ripinterval(int);
-time_t ripsuptrig(void);
-void fatal(const char *, ...)
+static void ripflush(struct ifc *, struct sockaddr_in6 *, int, struct netinfo6 *np);
+static void sendrequest(struct ifc *);
+static int sin6mask2len(const struct sockaddr_in6 *);
+static int mask2len(const struct in6_addr *, int);
+static int sendpacket(struct sockaddr_in6 *, int);
+static int addroute(struct riprt *, const struct in6_addr *, struct ifc *);
+static int delroute(struct netinfo6 *, struct in6_addr *);
+#if 0
+static struct in6_addr *getroute(struct netinfo6 *, struct in6_addr *);
+#endif
+static void krtread(int);
+static int tobeadv(struct riprt *, struct ifc *);
+static char *allocopy(char *);
+static char *hms(void);
+static const char *inet6_n2p(const struct in6_addr *);
+static struct ifac *ifa_match(const struct ifc *, const struct in6_addr *, int);
+static struct in6_addr *plen2mask(int);
+static struct riprt *rtsearch(struct netinfo6 *);
+static int ripinterval(int);
+#if 0
+static time_t ripsuptrig(void);
+#endif
+static void fatal(const char *, ...)
__attribute__((__format__(__printf__, 1, 2)));
-void trace(int, const char *, ...)
+static void trace(int, const char *, ...)
__attribute__((__format__(__printf__, 2, 3)));
-void tracet(int, const char *, ...)
+static void tracet(int, const char *, ...)
__attribute__((__format__(__printf__, 2, 3)));
-unsigned int if_maxindex(void);
-struct ifc *ifc_find(char *);
-struct iff *iff_find(struct ifc *, int);
-void setindex2ifc(int, struct ifc *);
+static struct ifc *ifc_find(char *);
+static struct iff *iff_find(struct ifc *, int);
+static void setindex2ifc(int, struct ifc *);
#define MALLOC(type) ((type *)malloc(sizeof(type)))
@@ -523,7 +526,7 @@ main(int argc, char *argv[])
}
}
-void
+static void
sighandler(int signo)
{
@@ -547,7 +550,7 @@ sighandler(int signo)
* gracefully exits after resetting sockopts.
*/
/* ARGSUSED */
-void
+static void
rtdexit(void)
{
struct riprt *rrt;
@@ -574,7 +577,7 @@ rtdexit(void)
* routes more precisely.
*/
/* ARGSUSED */
-void
+static void
ripalarm(void)
{
struct ifc *ifcp;
@@ -602,7 +605,7 @@ ripalarm(void)
alarm(ripinterval(SUPPLY_INTERVAL6));
}
-void
+static void
init(void)
{
int error;
@@ -752,7 +755,7 @@ init(void)
/*
* ripflush flushes the rip datagram stored in the rip buffer
*/
-void
+static void
ripflush(struct ifc *ifcp, struct sockaddr_in6 *sin6, int nrt, struct netinfo6 *np)
{
int i;
@@ -807,7 +810,7 @@ ripflush(struct ifc *ifcp, struct sockad
/*
* Generate RIP6_RESPONSE packets and send them.
*/
-void
+static void
ripsend(struct ifc *ifcp, struct sockaddr_in6 *sin6, int flag)
{
struct riprt *rrt;
@@ -948,7 +951,7 @@ ripsend(struct ifc *ifcp, struct sockadd
/*
* outbound filter logic, per-route/interface.
*/
-int
+static int
out_filter(struct riprt *rrt, struct ifc *ifcp)
{
struct iff *iffp;
@@ -1019,7 +1022,7 @@ out_filter(struct riprt *rrt, struct ifc
* Determine if the route is to be advertised on the specified interface.
* It checks options specified in the arguments and the split horizon rule.
*/
-int
+static int
tobeadv(struct riprt *rrt, struct ifc *ifcp)
{
@@ -1044,14 +1047,14 @@ tobeadv(struct riprt *rrt, struct ifc *i
/*
* Send a rip packet actually.
*/
-int
+static int
sendpacket(struct sockaddr_in6 *sin6, int len)
{
struct msghdr m;
struct cmsghdr *cm;
struct iovec iov[2];
- u_char cmsgbuf[256];
struct in6_pktinfo *pi;
+ u_char cmsgbuf[256];
int idx;
struct sockaddr_in6 sincopy;
@@ -1077,14 +1080,14 @@ sendpacket(struct sockaddr_in6 *sin6, in
m.msg_controllen = 0;
} else {
memset(cmsgbuf, 0, sizeof(cmsgbuf));
- cm = (struct cmsghdr *)cmsgbuf;
+ cm = (struct cmsghdr *)(void *)cmsgbuf;
m.msg_control = (caddr_t)cm;
m.msg_controllen = CMSG_SPACE(sizeof(struct in6_pktinfo));
cm->cmsg_len = CMSG_LEN(sizeof(struct in6_pktinfo));
cm->cmsg_level = IPPROTO_IPV6;
cm->cmsg_type = IPV6_PKTINFO;
- pi = (struct in6_pktinfo *)CMSG_DATA(cm);
+ pi = (struct in6_pktinfo *)(void *)CMSG_DATA(cm);
memset(&pi->ipi6_addr, 0, sizeof(pi->ipi6_addr)); /*::*/
pi->ipi6_ifindex = idx;
}
@@ -1101,7 +1104,7 @@ sendpacket(struct sockaddr_in6 *sin6, in
* Receive and process RIP packets. Update the routes/kernel forwarding
* table if necessary.
*/
-void
+static void
riprecv(void)
{
struct ifc *ifcp, *ic;
@@ -1133,7 +1136,7 @@ riprecv(void)
iov[0].iov_len = sizeof(buf);
m.msg_iov = iov;
m.msg_iovlen = 1;
- cm = (struct cmsghdr *)cmsgbuf;
+ cm = (struct cmsghdr *)(void *)cmsgbuf;
m.msg_control = (caddr_t)cm;
m.msg_controllen = sizeof(cmsgbuf);
m.msg_flags = 0;
@@ -1154,7 +1157,7 @@ riprecv(void)
"invalid cmsg length for IPV6_PKTINFO\n");
return;
}
- pi = (struct in6_pktinfo *)(CMSG_DATA(cm));
+ pi = (struct in6_pktinfo *)(void *)CMSG_DATA(cm);
idx = pi->ipi6_ifindex;
break;
case IPV6_HOPLIMIT:
@@ -1163,7 +1166,7 @@ riprecv(void)
"invalid cmsg length for IPV6_HOPLIMIT\n");
return;
}
- hlimp = (int *)CMSG_DATA(cm);
+ hlimp = (int *)(void *)CMSG_DATA(cm);
break;
}
}
@@ -1188,7 +1191,7 @@ riprecv(void)
nh = fsock.sin6_addr;
nn = (len - sizeof(struct rip6) + sizeof(struct netinfo6)) /
sizeof(struct netinfo6);
- rp = (struct rip6 *)buf;
+ rp = (struct rip6 *)(void *)buf;
np = rp->rip6_nets;
if (rp->rip6_vers != RIP6_VERSION) {
@@ -1449,7 +1452,7 @@ riprecv(void)
/*
* Send all routes request packet to the specified interface.
*/
-void
+static void
sendrequest(struct ifc *ifcp)
{
struct netinfo6 *np;
@@ -1477,7 +1480,7 @@ sendrequest(struct ifc *ifcp)
/*
* Process a RIP6_REQUEST packet.
*/
-void
+static void
riprequest(struct ifc *ifcp,
struct netinfo6 *np,
int nn,
@@ -1508,7 +1511,7 @@ riprequest(struct ifc *ifcp,
/*
* Get information of each interface.
*/
-void
+static void
ifconfig(void)
{
struct ifaddrs *ifap, *ifa;
@@ -1583,7 +1586,7 @@ ifconfig(void)
freeifaddrs(ifap);
}
-int
+static int
ifconfig1(const char *name,
const struct sockaddr *sa,
struct ifc *ifcp,
@@ -1595,7 +1598,7 @@ ifconfig1(const char *name,
int plen;
char buf[BUFSIZ];
- sin6 = (const struct sockaddr_in6 *)sa;
+ sin6 = (const struct sockaddr_in6 *)(const void *)sa;
if (IN6_IS_ADDR_SITELOCAL(&sin6->sin6_addr) && !lflag)
return (-1);
ifr.ifr_addr = *sin6;
@@ -1663,7 +1666,7 @@ ifconfig1(const char *name,
return 0;
}
-void
+static void
ifremove(int ifindex)
{
struct ifc *ifcp;
@@ -1691,7 +1694,7 @@ ifremove(int ifindex)
* Receive and process routing messages.
* Update interface information as necesssary.
*/
-void
+static void
rtrecv(void)
{
char buf[BUFSIZ];
@@ -1730,33 +1733,34 @@ rtrecv(void)
fprintf(stderr, "\n");
}
- for (p = buf; p - buf < len; p += ((struct rt_msghdr *)p)->rtm_msglen) {
- if (((struct rt_msghdr *)p)->rtm_version != RTM_VERSION)
+ for (p = buf; p - buf < len; p +=
+ ((struct rt_msghdr *)(void *)p)->rtm_msglen) {
+ if (((struct rt_msghdr *)(void *)p)->rtm_version != RTM_VERSION)
continue;
/* safety against bogus message */
- if (((struct rt_msghdr *)p)->rtm_msglen <= 0) {
+ if (((struct rt_msghdr *)(void *)p)->rtm_msglen <= 0) {
trace(1, "bogus rtmsg: length=%d\n",
- ((struct rt_msghdr *)p)->rtm_msglen);
+ ((struct rt_msghdr *)(void *)p)->rtm_msglen);
break;
}
rtm = NULL;
ifam = NULL;
ifm = NULL;
- switch (((struct rt_msghdr *)p)->rtm_type) {
+ switch (((struct rt_msghdr *)(void *)p)->rtm_type) {
case RTM_NEWADDR:
case RTM_DELADDR:
- ifam = (struct ifa_msghdr *)p;
+ ifam = (struct ifa_msghdr *)(void *)p;
addrs = ifam->ifam_addrs;
q = (char *)(ifam + 1);
break;
case RTM_IFINFO:
- ifm = (struct if_msghdr *)p;
+ ifm = (struct if_msghdr *)(void *)p;
addrs = ifm->ifm_addrs;
q = (char *)(ifm + 1);
break;
case RTM_IFANNOUNCE:
- ifan = (struct if_announcemsghdr *)p;
+ ifan = (struct if_announcemsghdr *)(void *)p;
switch (ifan->ifan_what) {
case IFAN_ARRIVAL:
iface++;
@@ -1768,7 +1772,7 @@ rtrecv(void)
}
break;
default:
- rtm = (struct rt_msghdr *)p;
+ rtm = (struct rt_msghdr *)(void *)p;
addrs = rtm->rtm_addrs;
q = (char *)(rtm + 1);
if (rtm->rtm_version != RTM_VERSION) {
@@ -1788,16 +1792,16 @@ rtrecv(void)
memset(&rta, 0, sizeof(rta));
for (i = 0; i < RTAX_MAX; i++) {
if (addrs & (1 << i)) {
- rta[i] = (struct sockaddr_in6 *)q;
+ rta[i] = (struct sockaddr_in6 *)(void *)q;
q += ROUNDUP(rta[i]->sin6_len);
}
}
trace(1, "rtsock: %s (addrs=%x)\n",
- rttypes((struct rt_msghdr *)p), addrs);
+ rttypes((struct rt_msghdr *)(void *)p), addrs);
if (dflag >= 2) {
for (i = 0;
- i < ((struct rt_msghdr *)p)->rtm_msglen;
+ i < ((struct rt_msghdr *)(void *)p)->rtm_msglen;
i++) {
fprintf(stderr, "%02x ", p[i] & 0xff);
if (i % 16 == 15) fprintf(stderr, "\n");
@@ -1811,7 +1815,7 @@ rtrecv(void)
* We may be able to optimize by using ifm->ifm_index or
* ifam->ifam_index. For simplicity we don't do that here.
*/
- switch (((struct rt_msghdr *)p)->rtm_type) {
+ switch (((struct rt_msghdr *)(void *)p)->rtm_type) {
case RTM_NEWADDR:
case RTM_IFINFO:
iface++;
@@ -1852,7 +1856,7 @@ rtrecv(void)
#endif
/* hard ones */
- switch (((struct rt_msghdr *)p)->rtm_type) {
+ switch (((struct rt_msghdr *)(void *)p)->rtm_type) {
case RTM_NEWADDR:
case RTM_IFINFO:
case RTM_ADD:
@@ -1940,7 +1944,7 @@ rtrecv(void)
/*
* remove specified route from the internal routing table.
*/
-int
+static int
rt_del(const struct sockaddr_in6 *sdst,
const struct sockaddr_in6 *sgw,
const struct sockaddr_in6 *smask)
@@ -2038,7 +2042,7 @@ rt_del(const struct sockaddr_in6 *sdst,
/*
* remove specified address from internal interface/routing table.
*/
-int
+static int
rt_deladdr(struct ifc *ifcp,
const struct sockaddr_in6 *sifa,
const struct sockaddr_in6 *smask)
@@ -2139,7 +2143,7 @@ rt_deladdr(struct ifc *ifcp,
* Get each interface address and put those interface routes to the route
* list.
*/
-int
+static int
ifrt(struct ifc *ifcp, int again)
{
struct ifac *ifac;
@@ -2250,7 +2254,7 @@ ifrt(struct ifc *ifcp, int again)
* you pick one. it looks that gated behavior fits best with BSDs,
* since BSD kernels do not look at prefix length on p2p interfaces.
*/
-void
+static void
ifrt_p2p(struct ifc *ifcp, int again)
{
struct ifac *ifac;
@@ -2414,7 +2418,7 @@ ifrt_p2p(struct ifc *ifcp, int again)
#undef P2PADVERT_MAX
}
-int
+static int
getifmtu(int ifindex)
{
int mib[6];
@@ -2441,7 +2445,7 @@ getifmtu(int ifindex)
fatal("sysctl NET_RT_IFLIST");
/*NOTREACHED*/
}
- ifm = (struct if_msghdr *)buf;
+ ifm = (struct if_msghdr *)(void *)buf;
mtu = ifm->ifm_data.ifi_mtu;
if (ifindex != ifm->ifm_index) {
fatal("ifindex does not match with ifm_index");
@@ -2451,7 +2455,7 @@ getifmtu(int ifindex)
return mtu;
}
-const char *
+static const char *
rttypes(struct rt_msghdr *rtm)
{
#define RTTYPE(s, f) \
@@ -2486,7 +2490,7 @@ do { \
return NULL;
}
-const char *
+static const char *
rtflags(struct rt_msghdr *rtm)
{
static char buf[BUFSIZ];
@@ -2546,7 +2550,7 @@ do { \
return buf;
}
-const char *
+static const char *
ifflags(int flags)
{
static char buf[BUFSIZ];
@@ -2582,7 +2586,7 @@ do { \
return buf;
}
-void
+static void
krtread(int again)
{
int mib[6];
@@ -2631,13 +2635,13 @@ krtread(int again)
lim = buf + msize;
for (p = buf; p < lim; p += rtm->rtm_msglen) {
- rtm = (struct rt_msghdr *)p;
+ rtm = (struct rt_msghdr *)(void *)p;
rt_entry(rtm, again);
}
free(buf);
}
-void
+static void
rt_entry(struct rt_msghdr *rtm, int again)
{
struct sockaddr_in6 *sin6_dst, *sin6_gw, *sin6_mask;
@@ -2674,22 +2678,22 @@ rt_entry(struct rt_msghdr *rtm, int agai
/* Destination */
if ((rtm->rtm_addrs & RTA_DST) == 0)
return; /* ignore routes without destination address */
- sin6_dst = (struct sockaddr_in6 *)rtmp;
+ sin6_dst = (struct sockaddr_in6 *)(void *)rtmp;
rtmp += ROUNDUP(sin6_dst->sin6_len);
if (rtm->rtm_addrs & RTA_GATEWAY) {
- sin6_gw = (struct sockaddr_in6 *)rtmp;
+ sin6_gw = (struct sockaddr_in6 *)(void *)rtmp;
rtmp += ROUNDUP(sin6_gw->sin6_len);
}
if (rtm->rtm_addrs & RTA_NETMASK) {
- sin6_mask = (struct sockaddr_in6 *)rtmp;
+ sin6_mask = (struct sockaddr_in6 *)(void *)rtmp;
rtmp += ROUNDUP(sin6_mask->sin6_len);
}
if (rtm->rtm_addrs & RTA_GENMASK) {
- sin6_genmask = (struct sockaddr_in6 *)rtmp;
+ sin6_genmask = (struct sockaddr_in6 *)(void *)rtmp;
rtmp += ROUNDUP(sin6_genmask->sin6_len);
}
if (rtm->rtm_addrs & RTA_IFP) {
- sin6_ifp = (struct sockaddr_in6 *)rtmp;
+ sin6_ifp = (struct sockaddr_in6 *)(void *)rtmp;
rtmp += ROUNDUP(sin6_ifp->sin6_len);
}
@@ -2798,7 +2802,7 @@ rt_entry(struct rt_msghdr *rtm, int agai
TAILQ_INSERT_HEAD(&riprt_head, rrt, rrt_next);
}
-int
+static int
addroute(struct riprt *rrt,
const struct in6_addr *gw,
struct ifc *ifcp)
@@ -2823,7 +2827,7 @@ addroute(struct riprt *rrt,
return 0;
memset(buf, 0, sizeof(buf));
- rtm = (struct rt_msghdr *)buf;
+ rtm = (struct rt_msghdr *)(void *)buf;
rtm->rtm_type = RTM_ADD;
rtm->rtm_version = RTM_VERSION;
rtm->rtm_seq = ++seq;
@@ -2833,24 +2837,24 @@ addroute(struct riprt *rrt,
rtm->rtm_addrs = RTA_DST | RTA_GATEWAY | RTA_NETMASK;
rtm->rtm_rmx.rmx_hopcount = np->rip6_metric - 1;
rtm->rtm_inits = RTV_HOPCOUNT;
- sin6 = (struct sockaddr_in6 *)&buf[sizeof(struct rt_msghdr)];
+ sin6 = (struct sockaddr_in6 *)(void *)&buf[sizeof(struct rt_msghdr)];
/* Destination */
sin6->sin6_len = sizeof(struct sockaddr_in6);
sin6->sin6_family = AF_INET6;
sin6->sin6_addr = np->rip6_dest;
- sin6 = (struct sockaddr_in6 *)((char *)sin6 + ROUNDUP(sin6->sin6_len));
+ sin6 = (struct sockaddr_in6 *)(void *)((char *)sin6 + ROUNDUP(sin6->sin6_len));
/* Gateway */
sin6->sin6_len = sizeof(struct sockaddr_in6);
sin6->sin6_family = AF_INET6;
sin6->sin6_addr = *gw;
if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr))
sin6->sin6_scope_id = ifcp->ifc_index;
- sin6 = (struct sockaddr_in6 *)((char *)sin6 + ROUNDUP(sin6->sin6_len));
+ sin6 = (struct sockaddr_in6 *)(void *)((char *)sin6 + ROUNDUP(sin6->sin6_len));
/* Netmask */
sin6->sin6_len = sizeof(struct sockaddr_in6);
sin6->sin6_family = AF_INET6;
sin6->sin6_addr = *(plen2mask(np->rip6_plen));
- sin6 = (struct sockaddr_in6 *)((char *)sin6 + ROUNDUP(sin6->sin6_len));
+ sin6 = (struct sockaddr_in6 *)(void *)((char *)sin6 + ROUNDUP(sin6->sin6_len));
len = (char *)sin6 - (char *)buf;
rtm->rtm_msglen = len;
@@ -2873,7 +2877,7 @@ addroute(struct riprt *rrt,
return -1;
}
-int
+static int
delroute(struct netinfo6 *np, struct in6_addr *gw)
{
u_char buf[BUFSIZ], buf2[BUFSIZ];
@@ -2891,7 +2895,7 @@ delroute(struct netinfo6 *np, struct in6
return 0;
memset(buf, 0, sizeof(buf));
- rtm = (struct rt_msghdr *)buf;
+ rtm = (struct rt_msghdr *)(void *)buf;
rtm->rtm_type = RTM_DELETE;
rtm->rtm_version = RTM_VERSION;
rtm->rtm_seq = ++seq;
@@ -2901,22 +2905,22 @@ delroute(struct netinfo6 *np, struct in6
if (np->rip6_plen == sizeof(struct in6_addr) * 8)
rtm->rtm_flags |= RTF_HOST;
rtm->rtm_addrs = RTA_DST | RTA_GATEWAY | RTA_NETMASK;
- sin6 = (struct sockaddr_in6 *)&buf[sizeof(struct rt_msghdr)];
+ sin6 = (struct sockaddr_in6 *)(void *)&buf[sizeof(struct rt_msghdr)];
/* Destination */
sin6->sin6_len = sizeof(struct sockaddr_in6);
sin6->sin6_family = AF_INET6;
sin6->sin6_addr = np->rip6_dest;
- sin6 = (struct sockaddr_in6 *)((char *)sin6 + ROUNDUP(sin6->sin6_len));
+ sin6 = (struct sockaddr_in6 *)(void *)((char *)sin6 + ROUNDUP(sin6->sin6_len));
/* Gateway */
sin6->sin6_len = sizeof(struct sockaddr_in6);
sin6->sin6_family = AF_INET6;
sin6->sin6_addr = *gw;
- sin6 = (struct sockaddr_in6 *)((char *)sin6 + ROUNDUP(sin6->sin6_len));
+ sin6 = (struct sockaddr_in6 *)(void *)((char *)sin6 + ROUNDUP(sin6->sin6_len));
/* Netmask */
sin6->sin6_len = sizeof(struct sockaddr_in6);
sin6->sin6_family = AF_INET6;
sin6->sin6_addr = *(plen2mask(np->rip6_plen));
- sin6 = (struct sockaddr_in6 *)((char *)sin6 + ROUNDUP(sin6->sin6_len));
+ sin6 = (struct sockaddr_in6 *)(void *)((char *)sin6 + ROUNDUP(sin6->sin6_len));
len = (char *)sin6 - (char *)buf;
rtm->rtm_msglen = len;
@@ -2939,7 +2943,8 @@ delroute(struct netinfo6 *np, struct in6
return -1;
}
-struct in6_addr *
+#if 0
+static struct in6_addr *
getroute(struct netinfo6 *np, struct in6_addr *gw)
{
u_char buf[BUFSIZ];
@@ -2948,7 +2953,7 @@ getroute(struct netinfo6 *np, struct in6
struct rt_msghdr *rtm;
struct sockaddr_in6 *sin6;
- rtm = (struct rt_msghdr *)buf;
+ rtm = (struct rt_msghdr *)(void *)buf;
len = sizeof(struct rt_msghdr) + sizeof(struct sockaddr_in6);
memset(rtm, 0, len);
rtm->rtm_type = RTM_GET;
@@ -2957,7 +2962,7 @@ getroute(struct netinfo6 *np, struct in6
rtm->rtm_seq = myseq;
rtm->rtm_addrs = RTA_DST;
rtm->rtm_msglen = len;
- sin6 = (struct sockaddr_in6 *)&buf[sizeof(struct rt_msghdr)];
+ sin6 = (struct sockaddr_in6 *)(void *)&buf[sizeof(struct rt_msghdr)];
sin6->sin6_len = sizeof(struct sockaddr_in6);
sin6->sin6_family = AF_INET6;
sin6->sin6_addr = np->rip6_dest;
@@ -2972,11 +2977,11 @@ getroute(struct netinfo6 *np, struct in6
perror("read from rtsock");
exit(1);
}
- rtm = (struct rt_msghdr *)buf;
+ rtm = (struct rt_msghdr *)(void *)buf;
} while (rtm->rtm_seq != myseq || rtm->rtm_pid != pid);
- sin6 = (struct sockaddr_in6 *)&buf[sizeof(struct rt_msghdr)];
+ sin6 = (struct sockaddr_in6 *)(void *)&buf[sizeof(struct rt_msghdr)];
if (rtm->rtm_addrs & RTA_DST) {
- sin6 = (struct sockaddr_in6 *)
+ sin6 = (struct sockaddr_in6 *)(void *)
((char *)sin6 + ROUNDUP(sin6->sin6_len));
}
if (rtm->rtm_addrs & RTA_GATEWAY) {
@@ -2985,8 +2990,9 @@ getroute(struct netinfo6 *np, struct in6
}
return NULL;
}
+#endif
-const char *
+static const char *
inet6_n2p(const struct in6_addr *p)
{
static char buf[BUFSIZ];
@@ -2994,7 +3000,7 @@ inet6_n2p(const struct in6_addr *p)
return inet_ntop(AF_INET6, (const void *)p, buf, sizeof(buf));
}
-void
+static void
ifrtdump(int sig)
{
@@ -3002,7 +3008,7 @@ ifrtdump(int sig)
rtdump(sig);
}
-void
+static void
ifdump(int sig)
{
struct ifc *ifcp;
@@ -3041,7 +3047,7 @@ ifdump(int sig)
fclose(dump);
}
-void
+static void
ifdump0(FILE *dump, const struct ifc *ifcp)
{
struct ifac *ifac;
@@ -3097,7 +3103,7 @@ ifdump0(FILE *dump, const struct ifc *if
fprintf(dump, "\n");
}
-void
+static void
rtdump(int sig)
{
struct riprt *rrt;
@@ -3146,7 +3152,7 @@ rtdump(int sig)
* syntax: -A 5f09:c400::/32,ef0,ef1 (aggregate)
* -O 5f09:c400::/32,ef0,ef1 (only when match)
*/
-void
+static void
filterconfig(void)
{
int i;
@@ -3277,7 +3283,7 @@ ifonly:
* Returns a pointer to ifac whose address and prefix length matches
* with the address and prefix length specified in the arguments.
*/
-struct ifac *
+static struct ifac *
ifa_match(const struct ifc *ifcp,
const struct in6_addr *ia,
int plen)
@@ -3298,7 +3304,7 @@ ifa_match(const struct ifc *ifcp,
* matches with the address and prefix length found in the argument.
* Note: This is not a rtalloc(). Therefore exact match is necessary.
*/
-struct riprt *
+static struct riprt *
rtsearch(struct netinfo6 *np)
{
struct riprt *rrt;
@@ -3313,7 +3319,7 @@ rtsearch(struct netinfo6 *np)
return (rrt);
}
-int
+static int
sin6mask2len(const struct sockaddr_in6 *sin6)
{
@@ -3321,7 +3327,7 @@ sin6mask2len(const struct sockaddr_in6 *
sin6->sin6_len - offsetof(struct sockaddr_in6, sin6_addr));
}
-int
+static int
mask2len(const struct in6_addr *addr, int lenlim)
{
int i = 0, j;
@@ -3348,22 +3354,11 @@ mask2len(const struct in6_addr *addr, in
return i;
}
-void
-applymask(struct in6_addr *addr, struct in6_addr *mask)
-{
- int i;
- u_long *p, *q;
-
- p = (u_long *)addr; q = (u_long *)mask;
- for (i = 0; i < 4; i++)
- *p++ &= *q++;
-}
-
static const u_char plent[8] = {
0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe
};
-void
+static void
applyplen(struct in6_addr *ia, int plen)
{
u_char *p;
@@ -3383,7 +3378,7 @@ static const int pl2m[9] = {
0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff
};
-struct in6_addr *
+static struct in6_addr *
plen2mask(int n)
{
static struct in6_addr ia;
@@ -3403,7 +3398,7 @@ plen2mask(int n)
return &ia;
}
-char *
+static char *
allocopy(char *p)
{
int len = strlen(p) + 1;
@@ -3418,7 +3413,7 @@ allocopy(char *p)
return q;
}
-char *
+static char *
hms(void)
{
static char buf[BUFSIZ];
@@ -3437,7 +3432,7 @@ hms(void)
#define RIPRANDDEV 1.0 /* 30 +- 15, max - min = 30 */
-int
+static int
ripinterval(int timer)
{
double r = rand();
@@ -3447,7 +3442,8 @@ ripinterval(int timer)
return interval;
}
-time_t
+#if 0
+static time_t
ripsuptrig(void)
{
time_t t;
@@ -3458,8 +3454,9 @@ ripsuptrig(void)
sup_trig_update = time(NULL) + t;
return t;
}
+#endif
-void
+static void
#ifdef __STDC__
fatal(const char *fmt, ...)
#else
@@ -3486,7 +3483,7 @@ fatal(fmt, va_alist)
rtdexit();
}
-void
+static void
#ifdef __STDC__
tracet(int level, const char *fmt, ...)
#else
@@ -3522,7 +3519,7 @@ tracet(level, fmt, va_alist)
}
}
-void
+static void
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-all
mailing list