summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorhrs <hrs@FreeBSD.org>2011-06-04 02:51:12 +0000
committerhrs <hrs@FreeBSD.org>2011-06-04 02:51:12 +0000
commit00e43e0cd59a008c0479029d721c758ef8d51316 (patch)
tree64dd37565c480cdf8d49d60fb44d1b5dbf7f4d90 /usr.sbin
parentd3d16bccfc16f4d3a5f9935ded1ca476ec8fd9df (diff)
downloadFreeBSD-src-00e43e0cd59a008c0479029d721c758ef8d51316.zip
FreeBSD-src-00e43e0cd59a008c0479029d721c758ef8d51316.tar.gz
- Fixes for WARNS=6.
- Use IFNAMSIZ for an interface name.
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/rtadvd/Makefile2
-rw-r--r--usr.sbin/rtadvd/advcap.c25
-rw-r--r--usr.sbin/rtadvd/config.c31
-rw-r--r--usr.sbin/rtadvd/dump.c4
-rw-r--r--usr.sbin/rtadvd/dump.h2
-rw-r--r--usr.sbin/rtadvd/if.c4
-rw-r--r--usr.sbin/rtadvd/pathnames.h5
-rw-r--r--usr.sbin/rtadvd/rrenum.c6
-rw-r--r--usr.sbin/rtadvd/rtadvd.c36
-rw-r--r--usr.sbin/rtadvd/rtadvd.h10
-rw-r--r--usr.sbin/rtadvd/timer.c4
11 files changed, 62 insertions, 67 deletions
diff --git a/usr.sbin/rtadvd/Makefile b/usr.sbin/rtadvd/Makefile
index 9dbfc99..e34aa3c 100644
--- a/usr.sbin/rtadvd/Makefile
+++ b/usr.sbin/rtadvd/Makefile
@@ -23,6 +23,6 @@ LDADD= -lutil
CFLAGS+= -DHAVE_ARC4RANDOM -DHAVE_POLL_H -DROUTEINFO
-WARNS?= 1
+WARNS?= 6
.include <bsd.prog.mk>
diff --git a/usr.sbin/rtadvd/advcap.c b/usr.sbin/rtadvd/advcap.c
index 83c780e..b0f5ee0 100644
--- a/usr.sbin/rtadvd/advcap.c
+++ b/usr.sbin/rtadvd/advcap.c
@@ -64,8 +64,6 @@
#define V_TERM "HOST"
#endif
-char *RM;
-
/*
* termcap - routines for dealing with the terminal capability data base
*
@@ -83,12 +81,11 @@ char *RM;
static char *tbuf;
static int hopcount; /* detect infinite loops in termcap, init 0 */
-static char *remotefile;
-
-extern char *conffile;
+static const char *remotefile;
+extern const char *conffile;
int tgetent(char *, char *);
-int getent(char *, char *, char *);
+int getent(char *, char *, const char *);
int tnchktc(void);
int tnamatch(char *);
static char *tskip(char *);
@@ -105,18 +102,16 @@ static char *tdecode(char *, char **);
int
tgetent(char *bp, char *name)
{
- char *cp;
-
- remotefile = cp = conffile ? conffile : _PATH_RTADVDCONF;
- return (getent(bp, name, cp));
+ return (getent(bp, name, conffile));
}
int
-getent(char *bp, char *name, char *cp)
+getent(char *bp, char *name, const char *cfile)
{
int c;
int i = 0, cnt = 0;
char ibuf[BUFSIZ];
+ char *cp;
int tf;
tbuf = bp;
@@ -128,9 +123,9 @@ getent(char *bp, char *name, char *cp)
* use so we don't have to read the file. In this case it
* has to already have the newlines crunched out.
*/
- if (cp && *cp) {
- tf = open(RM = cp, O_RDONLY);
- }
+ if (cfile && *cfile)
+ tf = open(cfile, O_RDONLY);
+
if (tf < 0) {
syslog(LOG_INFO,
"<%s> open: %s", __func__, strerror(errno));
@@ -392,7 +387,7 @@ tdecode(char *str, char **area)
{
char *cp;
int c;
- char *dp;
+ const char *dp;
int i;
char term;
diff --git a/usr.sbin/rtadvd/config.c b/usr.sbin/rtadvd/config.c
index c8faaf1..2909c87 100644
--- a/usr.sbin/rtadvd/config.c
+++ b/usr.sbin/rtadvd/config.c
@@ -76,7 +76,7 @@ static time_t prefix_timo = (60 * 120); /* 2 hours.
extern struct rainfo *ralist;
static struct rtadvd_timer *prefix_timeout(void *);
-static void makeentry(char *, size_t, int, char *);
+static void makeentry(char *, size_t, int, const char *);
static int getinet6sysctl(int);
static size_t dname_labelenc(char *, const char *);
@@ -117,8 +117,7 @@ dname_labelenc(char *dst, const char *src)
}
void
-getconfig(intface)
- char *intface;
+getconfig(char *intface)
{
int stat, i;
char tbuf[BUFSIZ];
@@ -211,7 +210,8 @@ getconfig(intface)
}
tmp->maxinterval = (u_int)val;
MAYHAVE(val, "mininterval", tmp->maxinterval/3);
- if (val < MIN_MININTERVAL || val > (tmp->maxinterval * 3) / 4) {
+ if ((u_int)val < MIN_MININTERVAL ||
+ (u_int)val > (tmp->maxinterval * 3) / 4) {
syslog(LOG_ERR,
"<%s> mininterval (%ld) on %s is invalid "
"(must be between %d and %d)",
@@ -257,7 +257,8 @@ getconfig(intface)
}
MAYHAVE(val, "rltime", tmp->maxinterval * 3);
- if (val && (val < tmp->maxinterval || val > MAXROUTERLIFETIME)) {
+ if ((u_int)val && ((u_int)val < tmp->maxinterval ||
+ (u_int)val > MAXROUTERLIFETIME)) {
syslog(LOG_ERR,
"<%s> router lifetime (%ld) on %s is invalid "
"(must be 0 or between %d and %d)",
@@ -429,7 +430,7 @@ getconfig(intface)
get_prefix(tmp);
MAYHAVE(val, "mtu", 0);
- if (val < 0 || val > 0xffffffff) {
+ if (val < 0 || (u_int)val > 0xffffffff) {
syslog(LOG_ERR,
"<%s> mtu (%ld) on %s out of range",
__func__, val, intface);
@@ -649,7 +650,7 @@ getconfig(intface)
memset(rdn, 0, sizeof(*rdn));
TAILQ_INIT(&rdn->rd_list);
- for (ap = addr; ap - addr < strlen(addr); ap += c+1) {
+ for (ap = addr; ap - addr < (ssize_t)strlen(addr); ap += c+1) {
c = strcspn(ap, ",");
strncpy(abuf, ap, c);
abuf[c] = '\0';
@@ -672,7 +673,8 @@ getconfig(intface)
makeentry(entbuf, sizeof(entbuf), i, "rdnssltime");
MAYHAVE(val, entbuf, (tmp->maxinterval * 3 / 2));
- if (val < tmp->maxinterval || val > tmp->maxinterval * 2) {
+ if ((u_int)val < tmp->maxinterval ||
+ (u_int)val > tmp->maxinterval * 2) {
syslog(LOG_ERR, "%s (%ld) on %s is invalid "
"(must be between %d and %d)",
entbuf, val, intface, tmp->maxinterval,
@@ -690,7 +692,6 @@ getconfig(intface)
struct dnssl_addr *dnsa;
char *ap;
int c;
- char *p, *q;
makeentry(entbuf, sizeof(entbuf), i, "dnssl");
addr = (char *)agetstr(entbuf, &bp);
@@ -706,7 +707,7 @@ getconfig(intface)
memset(dns, 0, sizeof(*dns));
TAILQ_INIT(&dns->dn_list);
- for (ap = addr; ap - addr < strlen(addr); ap += c+1) {
+ for (ap = addr; ap - addr < (ssize_t)strlen(addr); ap += c+1) {
c = strcspn(ap, ",");
strncpy(abuf, ap, c);
abuf[c] = '\0';
@@ -726,7 +727,8 @@ getconfig(intface)
makeentry(entbuf, sizeof(entbuf), i, "dnsslltime");
MAYHAVE(val, entbuf, (tmp->maxinterval * 3 / 2));
- if (val < tmp->maxinterval || val > tmp->maxinterval * 2) {
+ if ((u_int)val < tmp->maxinterval ||
+ (u_int)val > tmp->maxinterval * 2) {
syslog(LOG_ERR, "%s (%ld) on %s is invalid "
"(must be between %d and %d)",
entbuf, val, intface, tmp->maxinterval,
@@ -841,11 +843,7 @@ get_prefix(struct rainfo *rai)
}
static void
-makeentry(buf, len, id, string)
- char *buf;
- size_t len;
- int id;
- char *string;
+makeentry(char *buf, size_t len, int id, const char *string)
{
if (id < 0)
@@ -1256,7 +1254,6 @@ make_packet(struct rainfo *rainfo)
}
TAILQ_FOREACH(dns, &rainfo->dnssl, dn_next) {
struct dnssl_addr *dnsa;
- size_t len = 0;
ndopt_dnssl = (struct nd_opt_dnssl *)buf;
ndopt_dnssl->nd_opt_dnssl_type = ND_OPT_DNSSL;
diff --git a/usr.sbin/rtadvd/dump.c b/usr.sbin/rtadvd/dump.c
index d163caa..1c595bf 100644
--- a/usr.sbin/rtadvd/dump.c
+++ b/usr.sbin/rtadvd/dump.c
@@ -66,7 +66,7 @@ static char *ether_str(struct sockaddr_dl *);
static void if_dump(void);
static size_t dname_labeldec(char *, size_t, const char *);
-static char *rtpref_str[] = {
+static const char *rtpref_str[] = {
"medium", /* 00 */
"high", /* 01 */
"rsv", /* 10 */
@@ -273,7 +273,7 @@ if_dump(void)
}
void
-rtadvd_dump_file(char *dumpfile)
+rtadvd_dump_file(const char *dumpfile)
{
syslog(LOG_DEBUG, "<%s> dump current status to %s", __func__,
dumpfile);
diff --git a/usr.sbin/rtadvd/dump.h b/usr.sbin/rtadvd/dump.h
index 9b93ddd..8696e13 100644
--- a/usr.sbin/rtadvd/dump.h
+++ b/usr.sbin/rtadvd/dump.h
@@ -30,4 +30,4 @@
* SUCH DAMAGE.
*/
-extern void rtadvd_dump_file(char *);
+extern void rtadvd_dump_file(const char *);
diff --git a/usr.sbin/rtadvd/if.c b/usr.sbin/rtadvd/if.c
index a15e3c1..5cbf515 100644
--- a/usr.sbin/rtadvd/if.c
+++ b/usr.sbin/rtadvd/if.c
@@ -239,7 +239,7 @@ lladdropt_fill(struct sockaddr_dl *sdl, struct nd_opt_hdr *ndopt)
}
int
-rtbuf_len()
+rtbuf_len(void)
{
size_t len;
@@ -565,7 +565,7 @@ parse_iflist(struct if_msghdr ***ifmlist_p, char *buf, size_t bufsize)
}
void
-init_iflist()
+init_iflist(void)
{
if (ifblock) {
free(ifblock);
diff --git a/usr.sbin/rtadvd/pathnames.h b/usr.sbin/rtadvd/pathnames.h
index 3afee55..13329da 100644
--- a/usr.sbin/rtadvd/pathnames.h
+++ b/usr.sbin/rtadvd/pathnames.h
@@ -1,4 +1,7 @@
/* $KAME: pathnames.h,v 1.2 2000/05/16 13:34:13 itojun Exp $ */
/* $FreeBSD$ */
-#define _PATH_RTADVDCONF "/etc/rtadvd.conf"
+#define _PATH_RTADVDCONF "/etc/rtadvd.conf"
+#define _PATH_RTADVDDUMP "/var/run/rtadvd.dump"
+#define _PATH_RTADVDPID "/var/run/rtadvd.pid"
+
diff --git a/usr.sbin/rtadvd/rrenum.c b/usr.sbin/rtadvd/rrenum.c
index 3f29bc2..3e46af4 100644
--- a/usr.sbin/rtadvd/rrenum.c
+++ b/usr.sbin/rtadvd/rrenum.c
@@ -306,7 +306,7 @@ do_rr(int len, struct icmp6_router_renum *rr)
int rpmlen;
rpm = (struct rr_pco_match *)cp;
- if (len < sizeof(struct rr_pco_match)) {
+ if ((size_t)len < sizeof(struct rr_pco_match)) {
tooshort:
syslog(LOG_ERR, "<%s> pkt too short. left len = %d. "
"gabage at end of pkt?", __func__, len);
@@ -341,7 +341,7 @@ rr_command_check(int len, struct icmp6_router_renum *rr, struct in6_addr *from,
/* omit rr minimal length check. hope kernel have done it. */
/* rr_command length check */
- if (len < (sizeof(struct icmp6_router_renum) +
+ if ((size_t)len < (sizeof(struct icmp6_router_renum) +
sizeof(struct rr_pco_match))) {
syslog(LOG_ERR, "<%s> rr_command len %d is too short",
__func__, len);
@@ -431,7 +431,7 @@ rr_input(int len, struct icmp6_router_renum *rr, struct in6_pktinfo *pi,
if_indextoname(pi->ipi6_ifindex, ifnamebuf));
/* packet validation based on Section 4.1 of RFC2894 */
- if (len < sizeof(struct icmp6_router_renum)) {
+ if ((size_t)len < sizeof(struct icmp6_router_renum)) {
syslog(LOG_NOTICE,
"<%s>: RR short message (size %d) from %s to %s on %s",
__func__, len,
diff --git a/usr.sbin/rtadvd/rtadvd.c b/usr.sbin/rtadvd/rtadvd.c
index b23abb2..bca5c9e 100644
--- a/usr.sbin/rtadvd/rtadvd.c
+++ b/usr.sbin/rtadvd/rtadvd.c
@@ -68,6 +68,7 @@
#include "if.h"
#include "config.h"
#include "dump.h"
+#include "pathnames.h"
struct msghdr rcvmhdr;
static u_char *rcvcmsgbuf;
@@ -80,8 +81,9 @@ struct msghdr sndmhdr;
struct iovec rcviov[2];
struct iovec sndiov[2];
struct sockaddr_in6 rcvfrom;
-static char *dumpfilename = "/var/run/rtadvd.dump";
-static char *pidfilename = "/var/run/rtadvd.pid";
+static const char *dumpfilename = _PATH_RTADVDDUMP;
+static const char *pidfilename = _PATH_RTADVDPID;
+const char *conffile = _PATH_RTADVDCONF;
static struct pidfh *pfh;
static char *mcastif;
int sock;
@@ -89,8 +91,6 @@ int rtsock = -1;
int accept_rr = 0;
int dflag = 0, sflag = 0;
-u_char *conffile = NULL;
-
struct rainfo *ralist = NULL;
struct nd_optlist {
struct nd_optlist *next;
@@ -133,19 +133,19 @@ u_int32_t ndopt_flags[] = {
[ND_OPT_DNSSL] = NDOPT_FLAG_DNSSL,
};
-const struct sockaddr_in6 sin6_linklocal_allnodes = {
+struct sockaddr_in6 sin6_linklocal_allnodes = {
.sin6_len = sizeof(sin6_linklocal_allnodes),
.sin6_family = AF_INET6,
.sin6_addr = IN6ADDR_LINKLOCAL_ALLNODES_INIT,
};
-const struct sockaddr_in6 sin6_linklocal_allrouters = {
+struct sockaddr_in6 sin6_linklocal_allrouters = {
.sin6_len = sizeof(sin6_linklocal_allrouters),
.sin6_family = AF_INET6,
.sin6_addr = IN6ADDR_LINKLOCAL_ALLROUTERS_INIT,
};
-const struct sockaddr_in6 sin6_sitelocal_allrouters = {
+struct sockaddr_in6 sin6_sitelocal_allrouters = {
.sin6_len = sizeof(sin6_sitelocal_allrouters),
.sin6_family = AF_INET6,
.sin6_addr = IN6ADDR_SITELOCAL_ALLROUTERS_INIT,
@@ -376,13 +376,13 @@ main(int argc, char *argv[])
}
static void
-rtadvd_set_dump_file(int sig)
+rtadvd_set_dump_file(int sig __unused)
{
do_dump = 1;
}
static void
-set_die(int sig)
+set_die(int sig __unused)
{
do_die = 1;
}
@@ -638,7 +638,7 @@ rtmsg_input(void)
void
rtadvd_input(void)
{
- int i;
+ ssize_t i;
int *hlimp = NULL;
#ifdef OLDRAWSOCKET
struct ip6_hdr *ip;
@@ -703,7 +703,7 @@ rtadvd_input(void)
}
#ifdef OLDRAWSOCKET
- if (i < sizeof(struct ip6_hdr) + sizeof(struct icmp6_hdr)) {
+ if ((size_t)i < sizeof(struct ip6_hdr) + sizeof(struct icmp6_hdr)) {
syslog(LOG_ERR,
"<%s> packet size(%d) is too short",
__func__, i);
@@ -713,7 +713,7 @@ rtadvd_input(void)
ip = (struct ip6_hdr *)rcvmhdr.msg_iov[0].iov_base;
icp = (struct icmp6_hdr *)(ip + 1); /* XXX: ext. hdr? */
#else
- if (i < sizeof(struct icmp6_hdr)) {
+ if ((size_t)i < sizeof(struct icmp6_hdr)) {
syslog(LOG_ERR,
"<%s> packet size(%d) is too short",
__func__, i);
@@ -750,7 +750,7 @@ rtadvd_input(void)
if_indextoname(pi->ipi6_ifindex, ifnamebuf));
return;
}
- if (i < sizeof(struct nd_router_solicit)) {
+ if ((size_t)i < sizeof(struct nd_router_solicit)) {
syslog(LOG_NOTICE,
"<%s> RS from %s on %s does not have enough "
"length (len = %d)",
@@ -787,7 +787,7 @@ rtadvd_input(void)
if_indextoname(pi->ipi6_ifindex, ifnamebuf));
return;
}
- if (i < sizeof(struct nd_router_advert)) {
+ if ((size_t)i < sizeof(struct nd_router_advert)) {
syslog(LOG_NOTICE,
"<%s> RA from %s on %s does not have enough "
"length (len = %d)",
@@ -871,7 +871,7 @@ rs_input(int len, struct nd_router_solicit *rs,
ra = ralist;
while (ra != NULL) {
- if (pi->ipi6_ifindex == ra->ifindex)
+ if (pi->ipi6_ifindex == (unsigned int)ra->ifindex)
break;
ra = ra->next;
}
@@ -966,7 +966,7 @@ ra_input(int len, struct nd_router_advert *ra,
struct rainfo *rai;
u_char ntopbuf[INET6_ADDRSTRLEN], ifnamebuf[IFNAMSIZ];
union nd_opts ndopts;
- char *on_off[] = {"OFF", "ON"};
+ const char *on_off[] = {"OFF", "ON"};
u_int32_t reachabletime, retranstimer, mtu;
int inconsistent = 0;
@@ -1304,7 +1304,7 @@ nd6_options(struct nd_opt_hdr *hdr, int limit,
int optlen = 0;
for (; limit > 0; limit -= optlen) {
- if (limit < sizeof(struct nd_opt_hdr)) {
+ if ((size_t)limit < sizeof(struct nd_opt_hdr)) {
syslog(LOG_INFO, "<%s> short option header", __func__);
goto bad;
}
@@ -1619,7 +1619,7 @@ ra_output(struct rainfo *rainfo)
i = sendmsg(sock, &sndmhdr, 0);
- if (i < 0 || i != rainfo->ra_datalen) {
+ if (i < 0 || (size_t)i != rainfo->ra_datalen) {
if (i < 0) {
syslog(LOG_ERR, "<%s> sendmsg on %s: %s",
__func__, rainfo->ifname,
diff --git a/usr.sbin/rtadvd/rtadvd.h b/usr.sbin/rtadvd/rtadvd.h
index 64e61a5..251f0fe 100644
--- a/usr.sbin/rtadvd/rtadvd.h
+++ b/usr.sbin/rtadvd/rtadvd.h
@@ -42,9 +42,9 @@
{{{ 0xff, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }}}
-extern const struct sockaddr_in6 sin6_linklocal_allnodes;
-extern const struct sockaddr_in6 sin6_linklocal_allrouters;
-extern const struct sockaddr_in6 sin6_sitelocal_allrouters;
+extern struct sockaddr_in6 sin6_linklocal_allnodes;
+extern struct sockaddr_in6 sin6_linklocal_allrouters;
+extern struct sockaddr_in6 sin6_sitelocal_allrouters;
/*
* RFC 3542 API deprecates IPV6_PKTINFO in favor of
@@ -181,8 +181,8 @@ struct rainfo {
int ifindex;
int advlinkopt; /* bool: whether include link-layer addr opt */
struct sockaddr_dl *sdl;
- char ifname[16];
- int phymtu; /* mtu of the physical interface */
+ char ifname[IFNAMSIZ];
+ u_int32_t phymtu; /* mtu of the physical interface */
/* Router configuration variables */
u_short lifetime; /* AdvDefaultLifetime */
diff --git a/usr.sbin/rtadvd/timer.c b/usr.sbin/rtadvd/timer.c
index fcad4ab..c8528c6 100644
--- a/usr.sbin/rtadvd/timer.c
+++ b/usr.sbin/rtadvd/timer.c
@@ -48,7 +48,7 @@ static struct rtadvd_timer timer_head;
static struct timeval tm_max = {0x7fffffff, 0x7fffffff};
void
-rtadvd_timer_init()
+rtadvd_timer_init(void)
{
memset(&timer_head, 0, sizeof(timer_head));
@@ -119,7 +119,7 @@ rtadvd_set_timer(struct timeval *tm, struct rtadvd_timer *timer)
* Return the next interval for select() call.
*/
struct timeval *
-rtadvd_check_timer()
+rtadvd_check_timer(void)
{
static struct timeval returnval;
struct timeval now;
OpenPOWER on IntegriCloud