Hi,
Enable WARNINGS=Yes for route and fix findings. Avoid shadowing for
routing socket and use global variable af.
ok?
bluhm
Index: sbin/route/Makefile
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sbin/route/Makefile,v
retrieving revision 1.13
diff -u -p -r1.13 Makefile
--- sbin/route/Makefile 19 Jul 2013 14:41:46 -0000 1.13
+++ sbin/route/Makefile 19 Jul 2013 22:43:54 -0000
@@ -4,7 +4,7 @@ PROG= route
MAN= route.8
SRCS= route.c show.c
-CFLAGS+= -Wall
+WARNINGS= Yes
route.o .depend lint tags: keywords.h
Index: sbin/route/route.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sbin/route/route.c,v
retrieving revision 1.163
diff -u -p -r1.163 route.c
--- sbin/route/route.c 19 Jul 2013 20:10:23 -0000 1.163
+++ sbin/route/route.c 19 Jul 2013 22:54:46 -0000
@@ -66,7 +66,7 @@ union sockunion so_dst, so_gate, so_mask
typedef union sockunion *sup;
pid_t pid;
-int rtm_addrs, s;
+int rtm_addrs, rsock;
int forcehost, forcenet, Fflag, nflag, af, qflag, tflag, Tflag;
int iflag, verbose, aflen = sizeof(struct sockaddr_in);
int locking, lockrest, debugonly;
@@ -183,14 +183,14 @@ main(int argc, char **argv)
break;
default:
if (tflag)
- s = open(_PATH_DEVNULL, O_WRONLY);
+ rsock = open(_PATH_DEVNULL, O_WRONLY);
else
- s = socket(PF_ROUTE, SOCK_RAW, 0);
- if (s == -1)
- err(1, "socket");
+ rsock = socket(PF_ROUTE, SOCK_RAW, 0);
+ if (rsock == -1)
+ err(1, "routing socket");
/* force socket onto table user requested */
if (Tflag == 1 && Terr == 0 &&
- setsockopt(s, AF_ROUTE, ROUTE_TABLEFILTER,
+ setsockopt(rsock, AF_ROUTE, ROUTE_TABLEFILTER,
&tableid, sizeof(tableid)) == -1)
err(1, "setsockopt(ROUTE_TABLEFILTER)");
break;
@@ -242,7 +242,7 @@ flushroutes(int argc, char **argv)
if (uid)
errx(1, "must be root to alter routing table");
- shutdown(s, 0); /* Don't want to read back our messages */
+ shutdown(rsock, 0); /* Don't want to read back our messages */
while (--argc > 0) {
if (**(++argv) == '-')
switch (keyword(*argv + 1)) {
@@ -334,7 +334,7 @@ flushroutes(int argc, char **argv)
rtm->rtm_type = RTM_DELETE;
rtm->rtm_seq = seqno;
rtm->rtm_tableid = tableid;
- rlen = write(s, next, rtm->rtm_msglen);
+ rlen = write(rsock, next, rtm->rtm_msglen);
if (rlen < (int)rtm->rtm_msglen) {
warn("write to routing socket");
printf("got only %d for rlen\n", rlen);
@@ -411,7 +411,7 @@ newroute(int argc, char **argv)
errx(1, "must be root to alter routing table");
cmd = argv[0];
if (*cmd != 'g')
- shutdown(s, 0); /* Don't want to read back our messages */
+ shutdown(rsock, 0); /* Don't want to read back our messages */
while (--argc > 0) {
if (**(++argv)== '-') {
switch (key = keyword(1 + *argv)) {
@@ -662,8 +662,6 @@ newroute(int argc, char **argv)
void
show(int argc, char *argv[])
{
- int af = 0;
-
while (--argc > 0) {
if (**(++argv)== '-')
switch (keyword(*argv + 1)) {
@@ -1058,7 +1056,6 @@ interfaces(void)
void
monitor(int argc, char *argv[])
{
- int af = 0;
unsigned int filter = 0;
int n;
char msg[2048];
@@ -1086,14 +1083,14 @@ monitor(int argc, char *argv[])
usage(*argv);
}
- s = socket(PF_ROUTE, SOCK_RAW, af);
- if (s == -1)
- err(1, "socket");
+ rsock = socket(PF_ROUTE, SOCK_RAW, af);
+ if (rsock == -1)
+ err(1, "routing socket");
- if (setsockopt(s, AF_ROUTE, ROUTE_MSGFILTER, &filter,
+ if (setsockopt(rsock, AF_ROUTE, ROUTE_MSGFILTER, &filter,
sizeof(filter)) == -1)
err(1, "setsockopt(ROUTE_MSGFILTER)");
- if (Tflag && setsockopt(s, AF_ROUTE, ROUTE_TABLEFILTER, &tableid,
+ if (Tflag && setsockopt(rsock, AF_ROUTE, ROUTE_TABLEFILTER, &tableid,
sizeof(tableid)) == -1)
err(1, "setsockopt(ROUTE_TABLEFILTER)");
@@ -1103,7 +1100,7 @@ monitor(int argc, char *argv[])
exit(0);
}
for (;;) {
- if ((n = read(s, msg, sizeof(msg))) == -1) {
+ if ((n = read(rsock, msg, sizeof(msg))) == -1) {
if (errno == EINTR)
continue;
err(1, "read");
@@ -1179,14 +1176,14 @@ rtmsg(int cmd, int flags, int fmask, u_c
print_rtmsg(&rtm, l);
if (debugonly)
return (0);
- if (write(s, &m_rtmsg, l) != l) {
+ if (write(rsock, &m_rtmsg, l) != l) {
if (qflag == 0)
warn("writing to routing socket");
return (-1);
}
if (cmd == RTM_GET) {
do {
- l = read(s, &m_rtmsg, sizeof(m_rtmsg));
+ l = read(rsock, &m_rtmsg, sizeof(m_rtmsg));
} while (l > 0 && (rtm.rtm_version != RTM_VERSION ||
rtm.rtm_seq != seq || rtm.rtm_pid != pid));
if (l == -1)