svn commit: r222500 - user/hrs/ipv6/usr.sbin/rtsold

Hiroki Sato hrs at FreeBSD.org
Mon May 30 15:48:28 UTC 2011


Author: hrs
Date: Mon May 30 15:48:28 2011
New Revision: 222500
URL: http://svn.freebsd.org/changeset/base/222500

Log:
  Fixes for WARN=6 and style(9).

Modified:
  user/hrs/ipv6/usr.sbin/rtsold/Makefile
  user/hrs/ipv6/usr.sbin/rtsold/dump.c
  user/hrs/ipv6/usr.sbin/rtsold/if.c
  user/hrs/ipv6/usr.sbin/rtsold/probe.c
  user/hrs/ipv6/usr.sbin/rtsold/rtsock.c
  user/hrs/ipv6/usr.sbin/rtsold/rtsol.c
  user/hrs/ipv6/usr.sbin/rtsold/rtsold.c
  user/hrs/ipv6/usr.sbin/rtsold/rtsold.h

Modified: user/hrs/ipv6/usr.sbin/rtsold/Makefile
==============================================================================
--- user/hrs/ipv6/usr.sbin/rtsold/Makefile	Mon May 30 15:44:22 2011	(r222499)
+++ user/hrs/ipv6/usr.sbin/rtsold/Makefile	Mon May 30 15:48:28 2011	(r222500)
@@ -19,7 +19,7 @@ MAN=	rtsold.8
 MLINKS=	rtsold.8 rtsol.8
 SRCS=	rtsold.c rtsol.c if.c probe.c dump.c rtsock.c
 
-WARNS?=	3
+WARNS?=	6
 CFLAGS+= -DHAVE_ARC4RANDOM -DHAVE_POLL_H
 DPADD=	${LIBKVM}
 LDADD=	-lkvm

Modified: user/hrs/ipv6/usr.sbin/rtsold/dump.c
==============================================================================
--- user/hrs/ipv6/usr.sbin/rtsold/dump.c	Mon May 30 15:44:22 2011	(r222499)
+++ user/hrs/ipv6/usr.sbin/rtsold/dump.c	Mon May 30 15:48:28 2011	(r222500)
@@ -145,5 +145,6 @@ sec2str(time_t total)
 		p += n;
 	}
 	snprintf(p, ep - p, "%ds", secs);
-	return(result);
+
+	return (result);
 }

Modified: user/hrs/ipv6/usr.sbin/rtsold/if.c
==============================================================================
--- user/hrs/ipv6/usr.sbin/rtsold/if.c	Mon May 30 15:44:22 2011	(r222499)
+++ user/hrs/ipv6/usr.sbin/rtsold/if.c	Mon May 30 15:48:28 2011	(r222500)
@@ -91,25 +91,25 @@ interface_up(char *name)
 	if (ioctl(ifsock, SIOCGIFFLAGS, (caddr_t)&ifr) < 0) {
 		warnmsg(LOG_WARNING, __func__, "ioctl(SIOCGIFFLAGS): %s",
 		    strerror(errno));
-		return(-1);
+		return (-1);
 	}
 	if (!(ifr.ifr_flags & IFF_UP)) {
 		ifr.ifr_flags |= IFF_UP;
 		if (ioctl(ifsock, SIOCSIFFLAGS, (caddr_t)&ifr) < 0)
 			warnmsg(LOG_ERR, __func__,
 			    "ioctl(SIOCSIFFLAGS): %s", strerror(errno));
-		return(-1);
+		return (-1);
 	}
 	if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
 		warnmsg(LOG_WARNING, __func__, "socket(AF_INET6, SOCK_DGRAM): %s",
 		    strerror(errno));
-		return(-1);
+		return (-1);
 	}
 	if (ioctl(s, SIOCGIFINFO_IN6, (caddr_t)&nd) < 0) {
 		warnmsg(LOG_WARNING, __func__, "ioctl(SIOCGIFINFO_IN6): %s",
 		    strerror(errno));
 		close(s);
-		return(-1);
+		return (-1);
 	}
 
 	warnmsg(LOG_DEBUG, __func__, "checking if %s is ready...", name);
@@ -122,13 +122,13 @@ interface_up(char *name)
 				    "ioctl(SIOCSIFINFO_IN6): %s",
 		    		    strerror(errno));
 				close(s);
-				return(-1);
+				return (-1);
 			}
 		} else {
 			warnmsg(LOG_WARNING, __func__,
 			    "%s is disabled.", name);
 			close(s);
-			return(-1);
+			return (-1);
 		}
 	}
 	if (!(nd.ndi.flags & ND6_IFF_ACCEPT_RTADV)) {
@@ -139,13 +139,13 @@ interface_up(char *name)
 				    "ioctl(SIOCSIFINFO_IN6): %s",
 		    		    strerror(errno));
 				close(s);
-				return(-1);
+				return (-1);
 			}
 		} else {
 			warnmsg(LOG_WARNING, __func__,
 			    "%s does not accept Router Advertisement.", name);
 			close(s);
-			return(-1);
+			return (-1);
 		}
 	}
 	close(s);
@@ -154,22 +154,22 @@ interface_up(char *name)
 	if (llflag < 0) {
 		warnmsg(LOG_WARNING, __func__,
 		    "get_llflag() failed, anyway I'll try");
-		return 0;
+		return (0);
 	}
 
 	if (!(llflag & IN6_IFF_NOTREADY)) {
 		warnmsg(LOG_DEBUG, __func__, "%s is ready", name);
-		return(0);
+		return (0);
 	} else {
 		if (llflag & IN6_IFF_TENTATIVE) {
 			warnmsg(LOG_DEBUG, __func__, "%s is tentative",
 			    name);
-			return IFS_TENTATIVE;
+			return (IFS_TENTATIVE);
 		}
 		if (llflag & IN6_IFF_DUPLICATED)
 			warnmsg(LOG_DEBUG, __func__, "%s is duplicated",
 			    name);
-		return -1;
+		return (-1);
 	}
 }
 
@@ -186,16 +186,14 @@ interface_status(struct ifinfo *ifinfo)
 	if (ioctl(ifsock, SIOCGIFFLAGS, &ifr) < 0) {
 		warnmsg(LOG_ERR, __func__, "ioctl(SIOCGIFFLAGS) on %s: %s",
 		    ifname, strerror(errno));
-		return(-1);
+		return (-1);
 	}
 	/*
 	 * if one of UP and RUNNING flags is dropped,
 	 * the interface is not active.
 	 */
-	if ((ifr.ifr_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING)) {
+	if ((ifr.ifr_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING))
 		goto inactive;
-	}
-
 	/* Next, check carrier on the interface, if possible */
 	if (!ifinfo->mediareqok)
 		goto active;
@@ -232,10 +230,10 @@ interface_status(struct ifinfo *ifinfo)
 	}
 
   inactive:
-	return(0);
+	return (0);
 
   active:
-	return(1);
+	return (1);
 }
 
 #define ROUNDUP(a, size) \
@@ -254,9 +252,9 @@ lladdropt_length(struct sockaddr_dl *sdl
 #ifdef IFT_IEEE80211
 	case IFT_IEEE80211:
 #endif
-		return(ROUNDUP8(ETHER_ADDR_LEN + 2));
+		return (ROUNDUP8(ETHER_ADDR_LEN + 2));
 	default:
-		return(0);
+		return (0);
 	}
 }
 
@@ -301,7 +299,7 @@ if_nametosdl(char *name)
 		return(NULL);
 	if (sysctl(mib, 6, buf, &len, NULL, 0) < 0) {
 		free(buf);
-		return(NULL);
+		return (NULL);
 	}
 
 	lim = buf + len;
@@ -327,17 +325,17 @@ if_nametosdl(char *name)
 	if (next == lim) {
 		/* search failed */
 		free(buf);
-		return(NULL);
+		return (NULL);
 	}
 
 	if ((ret_sdl = malloc(sdl->sdl_len)) == NULL) {
 		free(buf);
-		return(NULL);
+		return (NULL);
 	}
 	memcpy((caddr_t)ret_sdl, (caddr_t)sdl, sdl->sdl_len);
 
 	free(buf);
-	return(ret_sdl);
+	return (ret_sdl);
 }
 
 int
@@ -350,9 +348,9 @@ getinet6sysctl(int code)
 	mib[3] = code;
 	size = sizeof(value);
 	if (sysctl(mib, sizeof(mib)/sizeof(mib[0]), &value, &size, NULL, 0) < 0)
-		return -1;
+		return (-1);
 	else
-		return value;
+		return (value);
 }
 
 int
@@ -366,9 +364,9 @@ setinet6sysctl(int code, int newval)
 	size = sizeof(value);
 	if (sysctl(mib, sizeof(mib)/sizeof(mib[0]), &value, &size,
 	    &newval, sizeof(newval)) < 0)
-		return -1;
+		return (-1);
 	else
-		return value;
+		return (value);
 }
 
 /*------------------------------------------------------------*/
@@ -414,12 +412,12 @@ get_llflag(const char *name)
 
 		freeifaddrs(ifap);
 		close(s);
-		return ifr6.ifr_ifru.ifru_flags6;
+		return (ifr6.ifr_ifru.ifru_flags6);
 	}
 
 	freeifaddrs(ifap);
 	close(s);
-	return -1;
+	return (-1);
 }
 
 

Modified: user/hrs/ipv6/usr.sbin/rtsold/probe.c
==============================================================================
--- user/hrs/ipv6/usr.sbin/rtsold/probe.c	Mon May 30 15:44:22 2011	(r222499)
+++ user/hrs/ipv6/usr.sbin/rtsold/probe.c	Mon May 30 15:48:28 2011	(r222500)
@@ -72,18 +72,18 @@ probe_init(void)
 	if (sndcmsgbuf == NULL &&
 	    (sndcmsgbuf = (u_char *)malloc(scmsglen)) == NULL) {
 		warnmsg(LOG_ERR, __func__, "malloc failed");
-		return(-1);
+		return (-1);
 	}
 
 	if ((probesock = socket(AF_INET6, SOCK_RAW, IPPROTO_NONE)) < 0) {
 		warnmsg(LOG_ERR, __func__, "socket: %s", strerror(errno));
-		return(-1);
+		return (-1);
 	}
 
 	/* make the socket send-only */
 	if (shutdown(probesock, 0)) {
 		warnmsg(LOG_ERR, __func__, "shutdown: %s", strerror(errno));
-		return(-1);
+		return (-1);
 	}
 
 	/* initialize msghdr for sending packets */
@@ -92,7 +92,8 @@ probe_init(void)
 	sndmhdr.msg_iovlen = 1;
 	sndmhdr.msg_control = (caddr_t)sndcmsgbuf;
 	sndmhdr.msg_controllen = scmsglen;
-	return(0);
+
+	return (0);
 }
 
 /*

Modified: user/hrs/ipv6/usr.sbin/rtsold/rtsock.c
==============================================================================
--- user/hrs/ipv6/usr.sbin/rtsold/rtsock.c	Mon May 30 15:44:22 2011	(r222499)
+++ user/hrs/ipv6/usr.sbin/rtsold/rtsock.c	Mon May 30 15:48:28 2011	(r222500)
@@ -83,7 +83,7 @@ int
 rtsock_open(void)
 {
 
-	return socket(PF_ROUTE, SOCK_RAW, 0);
+	return (socket(PF_ROUTE, SOCK_RAW, 0));
 }
 
 int
@@ -130,7 +130,7 @@ rtsock_input(int s)
 		}
 	}
 
-	return ret;
+	return (ret);
 }
 
 #ifdef RTM_IFANNOUNCE	/*NetBSD 1.5 or later*/
@@ -142,7 +142,7 @@ rtsock_input_ifannounce(int s __unused, 
 
 	ifan = (struct if_announcemsghdr *)rtm;
 	if ((char *)(ifan + 1) > lim)
-		return -1;
+		return (-1);
 
 	switch (ifan->ifan_what) {
 	case IFAN_ARRIVAL:
@@ -170,6 +170,6 @@ rtsock_input_ifannounce(int s __unused, 
 		break;
 	}
 
-	return 0;
+	return (0);
 }
 #endif

Modified: user/hrs/ipv6/usr.sbin/rtsold/rtsol.c
==============================================================================
--- user/hrs/ipv6/usr.sbin/rtsold/rtsol.c	Mon May 30 15:44:22 2011	(r222499)
+++ user/hrs/ipv6/usr.sbin/rtsold/rtsol.c	Mon May 30 15:48:28 2011	(r222500)
@@ -2,6 +2,7 @@
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * Copyright (C) 2011 Hiroki Sato
  * All rights reserved.
  * 
  * Redistribution and use in source and binary forms, with or without
@@ -62,8 +63,6 @@
 #include <syslog.h>
 #include "rtsold.h"
 
-#define ALLROUTER "ff02::2"
-
 static struct msghdr rcvmhdr;
 static struct msghdr sndmhdr;
 static struct iovec rcviov[2];
@@ -72,10 +71,32 @@ static struct sockaddr_in6 from;
 static int rcvcmsglen;
 
 int rssock;
+/*
+ * RFC 3542 API deprecates IPV6_PKTINFO in favor of
+ * IPV6_RECVPKTINFO
+ */
+#ifndef IPV6_RECVPKTINFO
+#ifdef IPV6_PKTINFO
+#define IPV6_RECVPKTINFO	IPV6_PKTINFO
+#endif
+#endif
+/*
+ * RFC 3542 API deprecates IPV6_HOPLIMIT in favor of
+ * IPV6_RECVHOPLIMIT
+ */
+#ifndef IPV6_RECVHOPLIMIT
+#ifdef IPV6_HOPLIMIT
+#define IPV6_RECVHOPLIMIT	IPV6_HOPLIMIT
+#endif
+#endif
 
-static struct sockaddr_in6 sin6_allrouters = {
+#define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT			\
+	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	\
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }}}
+static const struct sockaddr_in6 sin6_allrouters = {
 	.sin6_len =	sizeof(sin6_allrouters),
 	.sin6_family =	AF_INET6,
+	.sin6_addr =	IN6ADDR_LINKLOCAL_ALLROUTERS_INIT,
 };
 
 struct script_msg {
@@ -84,7 +105,7 @@ struct script_msg {
 	char *sm_msg;
 };
 
-static void call_script(char **, void *);
+static void call_script(const int, const char *const *, void *);
 static size_t dname_labeldec(char *, const char *);
 static int safefile(const char *);
 
@@ -92,8 +113,8 @@ static int safefile(const char *);
 #define _ARGS_RESCONF	resolvconf_script, "-a", ifi->ifname
 #define CALL_SCRIPT(name, sm_head)	\
 	do {						\
-		char *sarg[] = { _ARGS_##name, NULL };	\
-		call_script(sarg, sm_head);		\
+		const char *const sarg[] = { _ARGS_##name, NULL };	\
+		call_script(sizeof(sarg), sarg, sm_head);		\
 	} while(0);
 
 int
@@ -109,63 +130,35 @@ sockopen(void)
 	if (rcvcmsgbuf == NULL && (rcvcmsgbuf = malloc(rcvcmsglen)) == NULL) {
 		warnmsg(LOG_ERR, __func__,
 		    "malloc for receive msghdr failed");
-		return(-1);
+		return (-1);
 	}
 	if (sndcmsgbuf == NULL && (sndcmsgbuf = malloc(sndcmsglen)) == NULL) {
 		warnmsg(LOG_ERR, __func__,
 		    "malloc for send msghdr failed");
-		return(-1);
-	}
-	memset(&sin6_allrouters, 0, sizeof(struct sockaddr_in6));
-	sin6_allrouters.sin6_family = AF_INET6;
-	sin6_allrouters.sin6_len = sizeof(sin6_allrouters);
-	if (inet_pton(AF_INET6, ALLROUTER,
-	    &sin6_allrouters.sin6_addr.s6_addr) != 1) {
-		warnmsg(LOG_ERR, __func__, "inet_pton failed for %s",
-		    ALLROUTER);
-		return(-1);
+		return (-1);
 	}
-
 	if ((rssock = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6)) < 0) {
 		warnmsg(LOG_ERR, __func__, "socket: %s", strerror(errno));
-		return(-1);
+		return (-1);
 	}
 
 	/* specify to tell receiving interface */
 	on = 1;
-#ifdef IPV6_RECVPKTINFO
 	if (setsockopt(rssock, IPPROTO_IPV6, IPV6_RECVPKTINFO, &on,
 	    sizeof(on)) < 0) {
 		warnmsg(LOG_ERR, __func__, "IPV6_RECVPKTINFO: %s",
 		    strerror(errno));
 		exit(1);
 	}
-#else  /* old adv. API */
-	if (setsockopt(rssock, IPPROTO_IPV6, IPV6_PKTINFO, &on,
-	    sizeof(on)) < 0) {
-		warnmsg(LOG_ERR, __func__, "IPV6_PKTINFO: %s",
-		    strerror(errno));
-		exit(1);
-	}
-#endif
 
-	on = 1;
 	/* specify to tell value of hoplimit field of received IP6 hdr */
-#ifdef IPV6_RECVHOPLIMIT
+	on = 1;
 	if (setsockopt(rssock, IPPROTO_IPV6, IPV6_RECVHOPLIMIT, &on,
 	    sizeof(on)) < 0) {
 		warnmsg(LOG_ERR, __func__, "IPV6_RECVHOPLIMIT: %s",
 		    strerror(errno));
 		exit(1);
 	}
-#else  /* old adv. API */
-	if (setsockopt(rssock, IPPROTO_IPV6, IPV6_HOPLIMIT, &on,
-	    sizeof(on)) < 0) {
-		warnmsg(LOG_ERR, __func__, "IPV6_HOPLIMIT: %s",
-		    strerror(errno));
-		exit(1);
-	}
-#endif
 
 	/* specfiy to accept only router advertisements on the socket */
 	ICMP6_FILTER_SETBLOCKALL(&filt);
@@ -192,7 +185,7 @@ sockopen(void)
 	sndmhdr.msg_control = (caddr_t)sndcmsgbuf;
 	sndmhdr.msg_controllen = sndcmsglen;
 
-	return(rssock);
+	return (rssock);
 }
 
 void
@@ -563,9 +556,9 @@ rtsol_input(int s)
 }
 
 static void
-call_script(char *argv[], void *head)
+call_script(const int argc, const char *const argv[], void *head)
 {
-	char *scriptpath;
+	const char *scriptpath;
 	int fd[2];
 	int error;
 	pid_t pid, wpid;
@@ -626,6 +619,7 @@ call_script(char *argv[], void *head)
 		}
 	} else {		/* child */
 		int nullfd;
+		char **_argv;
 
 		if (safefile(scriptpath)) {
 			warnmsg(LOG_ERR, __func__,
@@ -658,7 +652,14 @@ call_script(char *argv[], void *head)
 		if (nullfd > STDERR_FILENO)
 			close(nullfd);
 
-		execv(scriptpath, argv);
+		_argv = malloc(sizeof(*_argv) * argc);
+		if (_argv == NULL) {
+			warnmsg(LOG_ERR, __func__,
+				"malloc: %s", strerror(errno));
+			exit(1);
+		}
+		memcpy(_argv, argv, (size_t)argc);
+		execv(scriptpath, (char *const *)_argv);
 		warnmsg(LOG_ERR, __func__, "child: exec failed: %s",
 		    strerror(errno));
 		exit(1);

Modified: user/hrs/ipv6/usr.sbin/rtsold/rtsold.c
==============================================================================
--- user/hrs/ipv6/usr.sbin/rtsold/rtsold.c	Mon May 30 15:44:22 2011	(r222499)
+++ user/hrs/ipv6/usr.sbin/rtsold/rtsold.c	Mon May 30 15:48:28 2011	(r222500)
@@ -63,6 +63,9 @@
 
 #include "rtsold.h"
 
+#define RTSOL_DUMPFILE	"/var/run/rtsold.dump";
+#define RTSOL_PIDFILE	"/var/run/rtsold.pid";
+
 struct ifinfo *iflist;
 struct timeval tm_max =	{0x7fffffff, 0x7fffffff};
 static int log_upto = 999;
@@ -72,8 +75,8 @@ int Fflag = 0;	/* force setting sysctl p
 int aflag = 0;
 int dflag = 0;
 
-char *otherconf_script;
-char *resolvconf_script = "/sbin/resolvconf";
+const char *otherconf_script;
+const char *resolvconf_script = "/sbin/resolvconf";
 
 /* protocol constants */
 #define MAX_RTR_SOLICITATION_DELAY	1 /* second */
@@ -86,16 +89,12 @@ char *resolvconf_script = "/sbin/resolvc
  */
 #define PROBE_INTERVAL 60
 
-int main(int, char **);
-
 /* static variables and functions */
 static int mobile_node = 0;
+static const char *pidfilename = RTSOL_PIDFILE;
 #ifndef SMALL
 static int do_dump;
-static const char *dumpfilename = "/var/run/rtsold.dump"; /* XXX: should be configurable */
-#endif
-#if 1
-static const char *pidfilename = "/var/run/rtsold.pid"; /* should be configurable */
+static const char *dumpfilename = RTSOL_DUMPFILE;
 #endif
 
 #if 0
@@ -107,14 +106,13 @@ static struct timeval *rtsol_check_timer
 #ifndef SMALL
 static void rtsold_set_dump_file(int);
 #endif
-static void usage(char *);
+static void usage(void);
 
 int
 main(int argc, char **argv)
 {
 	int s, ch, once = 0;
 	struct timeval *timeout;
-	char *argv0;
 	const char *opts;
 #ifdef HAVE_POLL_H
 	struct pollfd set[2];
@@ -125,19 +123,15 @@ main(int argc, char **argv)
 #endif
 	int rtsock;
 
-	/*
-	 * Initialization
-	 */
-	argv0 = argv[0];
-
-	/* get option */
-	if (argv0 && argv0[strlen(argv0) - 1] != 'd') {
-		fflag = 1;
-		once = 1;
-		opts = "adDFO:R:";
-	} else
-		opts = "adDfFm1O:R:";
-
+#ifndef SMALL
+	/* rtsold */
+	opts = "adDfFm1O:P:R:";
+#else
+	/* rtsol */
+	opts = "adDFO:P:R:";
+	fflag = 1;
+	once = 1;
+#endif
 	while ((ch = getopt(argc, argv, opts)) != -1) {
 		switch (ch) {
 		case 'a':
@@ -164,20 +158,23 @@ main(int argc, char **argv)
 		case 'O':
 			otherconf_script = optarg;
 			break;
+		case 'P':
+			pidfilename = optarg;
+			break;
 		case 'R':
 			resolvconf_script = optarg;
 			break;
 		default:
-			usage(argv0);
-			/*NOTREACHED*/
+			usage();
+			exit(1);
 		}
 	}
 	argc -= optind;
 	argv += optind;
 
 	if ((!aflag && argc == 0) || (aflag && argc != 0)) {
-		usage(argv0);
-		/*NOTREACHED*/
+		usage();
+		exit(1);
 	}
 
 	/* set log level */
@@ -186,9 +183,9 @@ main(int argc, char **argv)
 	if (!fflag) {
 		char *ident;
 
-		ident = strrchr(argv0, '/');
+		ident = strrchr(argv[0], '/');
 		if (!ident)
-			ident = argv0;
+			ident = argv[0];
 		else
 			ident++;
 		openlog(ident, LOG_NDELAY|LOG_PID, LOG_DAEMON);
@@ -200,7 +197,14 @@ main(int argc, char **argv)
 		errx(1, "configuration script (%s) must be an absolute path",
 		    otherconf_script);
 	}
-
+	if (resolvconf_script && *resolvconf_script != '/') {
+		errx(1, "configuration script (%s) must be an absolute path",
+		    resolvconf_script);
+	}
+	if (pidfilename && *pidfilename != '/') {
+		errx(1, "pid filename (%s) must be an absolute path",
+		    pidfilename);
+	}
 #ifndef HAVE_ARC4RANDOM
 	/* random value initialization */
 	srandom((u_long)time(NULL));
@@ -230,7 +234,6 @@ main(int argc, char **argv)
 	if ((s = sockopen()) < 0) {
 		warnmsg(LOG_ERR, __func__, "failed to open a socket");
 		exit(1);
-		/*NOTREACHED*/
 	}
 #ifdef HAVE_POLL_H
 	set[0].fd = s;
@@ -246,7 +249,6 @@ main(int argc, char **argv)
 	if ((rtsock = rtsock_open()) < 0) {
 		warnmsg(LOG_ERR, __func__, "failed to open a socket");
 		exit(1);
-		/*NOTREACHED*/
 	}
 #ifdef HAVE_POLL_H
 	set[1].fd = rtsock;
@@ -259,12 +261,12 @@ main(int argc, char **argv)
 #ifndef HAVE_POLL_H
 	fdmasks = howmany(maxfd + 1, NFDBITS) * sizeof(fd_mask);
 	if ((fdsetp = malloc(fdmasks)) == NULL) {
-		err(1, "malloc");
-		/*NOTREACHED*/
+		warnmsg(LOG_ERR, __func__, "malloc");
+		exit(1);
 	}
 	if ((selectfdp = malloc(fdmasks)) == NULL) {
-		err(1, "malloc");
-		/*NOTREACHED*/
+		warnmsg(LOG_ERR, __func__, "malloc");
+		exit(1);
 	}
 #endif
 
@@ -273,7 +275,6 @@ main(int argc, char **argv)
 		warnmsg(LOG_ERR, __func__,
 		    "failed to initialize interfaces");
 		exit(1);
-		/*NOTREACHED*/
 	}
 	if (aflag)
 		argv = autoifprobe();
@@ -282,7 +283,6 @@ main(int argc, char **argv)
 			warnmsg(LOG_ERR, __func__,
 			    "failed to initialize %s", *argv);
 			exit(1);
-			/*NOTREACHED*/
 		}
 		argv++;
 	}
@@ -295,7 +295,6 @@ main(int argc, char **argv)
 		/*NOTREACHED*/
 	}
 
-#if 1
 	/* dump the current pid */
 	if (!once) {
 		pid_t pid = getpid();
@@ -310,8 +309,6 @@ main(int argc, char **argv)
 			fclose(fp);
 		}
 	}
-#endif
-
 #ifndef HAVE_POLL_H
 	memset(fdsetp, 0, fdmasks);
 	FD_SET(s, fdsetp);
@@ -377,7 +374,7 @@ main(int argc, char **argv)
 	}
 	/* NOTREACHED */
 
-	return 0;
+	return (0);
 }
 
 int
@@ -390,19 +387,19 @@ ifconfig(char *ifname)
 	if ((sdl = if_nametosdl(ifname)) == NULL) {
 		warnmsg(LOG_ERR, __func__,
 		    "failed to get link layer information for %s", ifname);
-		return(-1);
+		return (-1);
 	}
 	if (find_ifinfo(sdl->sdl_index)) {
 		warnmsg(LOG_ERR, __func__,
 		    "interface %s was already configured", ifname);
 		free(sdl);
-		return(-1);
+		return (-1);
 	}
 
 	if ((ifinfo = malloc(sizeof(*ifinfo))) == NULL) {
 		warnmsg(LOG_ERR, __func__, "memory allocation failed");
 		free(sdl);
-		return(-1);
+		return (-1);
 	}
 	memset(ifinfo, 0, sizeof(*ifinfo));
 	ifinfo->sdl = sdl;
@@ -452,12 +449,12 @@ ifconfig(char *ifname)
 		ifinfo->next = iflist;
 	iflist = ifinfo;
 
-	return(0);
+	return (0);
 
 bad:
 	free(ifinfo->sdl);
 	free(ifinfo);
-	return(-1);
+	return (-1);
 }
 
 void
@@ -498,7 +495,7 @@ ifreconfig(char *ifname)
 		free(ifi->rs_data);
 	free(ifi->sdl);
 	free(ifi);
-	return rv;
+	return (rv);
 }
 #endif
 
@@ -509,8 +506,8 @@ find_ifinfo(int ifindex)
 
 	for (ifi = iflist; ifi; ifi = ifi->next)
 		if (ifi->sdl->sdl_index == ifindex)
-			return(ifi);
-	return(NULL);
+			return (ifi);
+	return (NULL);
 }
 
 static int
@@ -532,7 +529,7 @@ make_packet(struct ifinfo *ifinfo)
 	if ((buf = malloc(packlen)) == NULL) {
 		warnmsg(LOG_ERR, __func__,
 		    "memory allocation failed for %s", ifinfo->ifname);
-		return(-1);
+		return (-1);
 	}
 	ifinfo->rs_data = buf;
 
@@ -548,7 +545,7 @@ make_packet(struct ifinfo *ifinfo)
 	if (lladdroptlen)
 		lladdropt_fill(ifinfo->sdl, (struct nd_opt_hdr *)buf);
 
-	return(0);
+	return (0);
 }
 
 static struct timeval *
@@ -644,7 +641,7 @@ rtsol_check_timer(void)
 
 	if (timercmp(&rtsol_timer, &tm_max, ==)) {
 		warnmsg(LOG_DEBUG, __func__, "there is no timer");
-		return(NULL);
+		return (NULL);
 	} else if (timercmp(&rtsol_timer, &now, <))
 		/* this may occur when the interval is too small */
 		returnval.tv_sec = returnval.tv_usec = 0;
@@ -655,7 +652,7 @@ rtsol_check_timer(void)
 		warnmsg(LOG_DEBUG, __func__, "New timer is %ld:%08ld",
 		    (long)returnval.tv_sec, (long)returnval.tv_usec);
 
-	return(&returnval);
+	return (&returnval);
 }
 
 void
@@ -746,28 +743,19 @@ rtsold_set_dump_file(int sig __unused)
 #endif
 
 static void
-usage(char *progname)
+usage(void)
 {
-	if (progname && progname[strlen(progname) - 1] != 'd') {
-		fprintf(stderr, "usage: rtsol [-dDF] interfaces...\n");
-		fprintf(stderr, "usage: rtsol [-dDF] -a\n");
-	} else {
-		fprintf(stderr, "usage: rtsold [-adDfFm1] interfaces...\n");
-		fprintf(stderr, "usage: rtsold [-dDfFm1] -a\n");
-	}
-	exit(1);
+#ifndef SMALL
+	fprintf(stderr, "usage: rtsold [-adDfFm1] [-O script-name] [-P pidfile] [-R script-name] interfaces...\n");
+	fprintf(stderr, "usage: rtsold [-dDfFm1] [-O script-name] [-P pidfile] [-R script-name] -a\n");
+#else
+	fprintf(stderr, "usage: rtsol [-dDF] [-O script-name] [-P pidfile] [-R script-name] interfaces...\n");
+	fprintf(stderr, "usage: rtsol [-dDF] [-O script-name] [-P pidfile] [-R script-name] -a\n");
+#endif
 }
 
 void
-#if __STDC__
 warnmsg(int priority, const char *func, const char *msg, ...)
-#else
-warnmsg(priority, func, msg, va_alist)
-	int priority;
-	const char *func;
-	const char *msg;
-	va_dcl
-#endif
 {
 	va_list ap;
 	char buf[BUFSIZ];
@@ -809,11 +797,11 @@ autoifprobe(void)
 	n = 0;
 
 	if (getifaddrs(&ifap) != 0)
-		return NULL;
+		return (NULL);
 
 	if (!Fflag && (s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
-		err(1, "socket");
-		/* NOTREACHED */
+		warnmsg(LOG_ERR, __func__, "socket");
+		exit(1);
 	}
 
 	target = NULL;
@@ -849,8 +837,9 @@ autoifprobe(void)
 			memset(&nd, 0, sizeof(nd));
 			strlcpy(nd.ifname, ifa->ifa_name, sizeof(nd.ifname));
 			if (ioctl(s, SIOCGIFINFO_IN6, (caddr_t)&nd) < 0) {
-				err(1, "ioctl(SIOCGIFINFO_IN6)");
-				/* NOTREACHED */
+				warnmsg(LOG_ERR, __func__,
+					"ioctl(SIOCGIFINFO_IN6)");
+				exit(1);
 			}
 			if ((nd.ndi.flags & ND6_IFF_IFDISABLED))
 				continue;
@@ -860,32 +849,40 @@ autoifprobe(void)
 
 		/* if we find multiple candidates, just warn. */
 		if (n != 0 && dflag > 1)
-			warnx("multiple interfaces found");
+			warnmsg(LOG_WARNING, __func__,
+				"multiple interfaces found");
 
 		a = (char **)realloc(argv, (n + 1) * sizeof(char **));
-		if (a == NULL)
-			err(1, "realloc");
+		if (a == NULL) {
+			warnmsg(LOG_ERR, __func__, "realloc");
+			exit(1);
+		}
 		argv = a;
 		argv[n] = strdup(ifa->ifa_name);
-		if (!argv[n])
-			err(1, "malloc");
+		if (!argv[n]) {
+			warnmsg(LOG_ERR, __func__, "malloc");
+			exit(1);
+		}
 		n++;
 	}
 
 	if (n) {
 		a = (char **)realloc(argv, (n + 1) * sizeof(char **));
-		if (a == NULL)
-			err(1, "realloc");
+		if (a == NULL) {
+			warnmsg(LOG_ERR, __func__, "realloc");
+			exit(1);
+		}
 		argv = a;
 		argv[n] = NULL;
 
 		if (dflag > 0) {
 			for (i = 0; i < n; i++)
-				warnx("probing %s", argv[i]);
+				warnmsg(LOG_WARNING, __func__, "probing %s",
+					argv[i]);
 		}
 	}
 	if (!Fflag)
 		close(s);
 	freeifaddrs(ifap);
-	return argv;
+	return (argv);
 }

Modified: user/hrs/ipv6/usr.sbin/rtsold/rtsold.h
==============================================================================
--- user/hrs/ipv6/usr.sbin/rtsold/rtsold.h	Mon May 30 15:44:22 2011	(r222499)
+++ user/hrs/ipv6/usr.sbin/rtsold/rtsold.h	Mon May 30 15:48:28 2011	(r222500)
@@ -68,8 +68,8 @@ extern struct timeval tm_max;
 extern int dflag;
 extern int aflag;
 extern int Fflag;
-extern char *otherconf_script;
-extern char *resolvconf_script;
+extern const char *otherconf_script;
+extern const char *resolvconf_script;
 extern int ifconfig(char *);
 extern void iflist_init(void);
 struct ifinfo *find_ifinfo(int);


More information about the svn-src-user mailing list