Module Name: src Committed By: christos Date: Mon Mar 22 18:41:11 UTC 2021
Modified Files: src/usr.sbin/rtadvd: config.c config.h if.c if.h rtadvd.c rtadvd.h Log Message: - remove extra \n from stderr logging - add string message types - sprinkle const To generate a diff of this commit: cvs rdiff -u -r1.44 -r1.45 src/usr.sbin/rtadvd/config.c cvs rdiff -u -r1.11 -r1.12 src/usr.sbin/rtadvd/config.h \ src/usr.sbin/rtadvd/if.h cvs rdiff -u -r1.26 -r1.27 src/usr.sbin/rtadvd/if.c cvs rdiff -u -r1.79 -r1.80 src/usr.sbin/rtadvd/rtadvd.c cvs rdiff -u -r1.20 -r1.21 src/usr.sbin/rtadvd/rtadvd.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/rtadvd/config.c diff -u src/usr.sbin/rtadvd/config.c:1.44 src/usr.sbin/rtadvd/config.c:1.45 --- src/usr.sbin/rtadvd/config.c:1.44 Tue Apr 21 08:16:47 2020 +++ src/usr.sbin/rtadvd/config.c Mon Mar 22 14:41:11 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: config.c,v 1.44 2020/04/21 12:16:47 roy Exp $ */ +/* $NetBSD: config.c,v 1.45 2021/03/22 18:41:11 christos Exp $ */ /* $KAME: config.c,v 1.93 2005/10/17 14:40:02 suz Exp $ */ /* @@ -965,7 +965,8 @@ update_prefix(struct prefix * prefix) * able to be specified. */ void -add_prefix(struct rainfo *rai, int ifindex, struct in6_addr *addr, int plen) +add_prefix(struct rainfo *rai, int ifindex, const struct in6_addr *addr, + int plen) { struct prefix *prefix; char ntopbuf[INET6_ADDRSTRLEN]; Index: src/usr.sbin/rtadvd/config.h diff -u src/usr.sbin/rtadvd/config.h:1.11 src/usr.sbin/rtadvd/config.h:1.12 --- src/usr.sbin/rtadvd/config.h:1.11 Tue Apr 21 08:16:47 2020 +++ src/usr.sbin/rtadvd/config.h Mon Mar 22 14:41:11 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: config.h,v 1.11 2020/04/21 12:16:47 roy Exp $ */ +/* $NetBSD: config.h,v 1.12 2021/03/22 18:41:11 christos Exp $ */ /* $KAME: config.h,v 1.9 2003/08/06 04:19:40 ono Exp $ */ /* @@ -35,7 +35,7 @@ extern void getconfig(const char *, int) extern void delete_prefix(struct prefix *); extern void invalidate_prefix(struct prefix *); extern void update_prefix(struct prefix *); -extern void add_prefix(struct rainfo *, int, struct in6_addr *, int); +extern void add_prefix(struct rainfo *, int, const struct in6_addr *, int); extern void make_packet(struct rainfo *); extern void get_prefix(struct rainfo *); Index: src/usr.sbin/rtadvd/if.h diff -u src/usr.sbin/rtadvd/if.h:1.11 src/usr.sbin/rtadvd/if.h:1.12 --- src/usr.sbin/rtadvd/if.h:1.11 Fri Apr 20 06:39:37 2018 +++ src/usr.sbin/rtadvd/if.h Mon Mar 22 14:41:11 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: if.h,v 1.11 2018/04/20 10:39:37 roy Exp $ */ +/* $NetBSD: if.h,v 1.12 2021/03/22 18:41:11 christos Exp $ */ /* $KAME: if.h,v 1.12 2003/09/21 07:17:03 itojun Exp $ */ /* @@ -39,16 +39,17 @@ int if_getflags(int, int); int lladdropt_length(struct sockaddr_dl *); void lladdropt_fill(struct sockaddr_dl *, struct nd_opt_hdr *); char *get_next_msg(char *, char *, int, size_t *, int); -struct in6_addr *get_addr(char *); -int get_rtm_ifindex(char *); -int get_ifm_ifindex(char *); -int get_ifam_ifindex(char *); -int get_ifm_flags(char *); +const struct in6_addr *get_addr(const void *); +int get_rtm_ifindex(const void *); +int get_ifm_ifindex(const void *); +int get_ifam_ifindex(const void *); +int get_ifm_flags(const void *); #ifdef RTM_IFANNOUNCE -int get_ifan_ifindex(char *); -int get_ifan_what(char *); +int get_ifan_ifindex(const void *); +int get_ifan_what(const void *); #endif -int get_prefixlen(char *); +int get_prefixlen(const void *); int prefixlen(const unsigned char *, const unsigned char *); -int rtmsg_type(char *); -int rtmsg_len(char *); +const char *rtmsg_typestr(const void *); +int rtmsg_type(const void *); +int rtmsg_len(const void *); Index: src/usr.sbin/rtadvd/if.c diff -u src/usr.sbin/rtadvd/if.c:1.26 src/usr.sbin/rtadvd/if.c:1.27 --- src/usr.sbin/rtadvd/if.c:1.26 Fri Apr 20 06:39:37 2018 +++ src/usr.sbin/rtadvd/if.c Mon Mar 22 14:41:11 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: if.c,v 1.26 2018/04/20 10:39:37 roy Exp $ */ +/* $NetBSD: if.c,v 1.27 2021/03/22 18:41:11 christos Exp $ */ /* $KAME: if.c,v 1.36 2004/11/30 22:32:01 suz Exp $ */ /* @@ -30,6 +30,7 @@ * SUCH DAMAGE. */ +#define RTM_NAMES #include <sys/param.h> #include <sys/queue.h> #include <sys/socket.h> @@ -65,7 +66,8 @@ #endif static void -get_rtaddrs(int addrs, struct sockaddr *sa, struct sockaddr **rti_info) +get_rtaddrs(int addrs, const struct sockaddr *sa, + const struct sockaddr **rti_info) { int i; @@ -189,14 +191,14 @@ lladdropt_fill(struct sockaddr_dl *sdl, } #define FILTER_MATCH(type, filter) ((0x1 << type) & filter) -#define SIN6(s) ((struct sockaddr_in6 *)(s)) -#define SDL(s) ((struct sockaddr_dl *)(s)) +#define SIN6(s) ((const struct sockaddr_in6 *)(s)) +#define SDL(s) ((const struct sockaddr_dl *)(s)) char * get_next_msg(char *buf, char *lim, int ifindex, size_t *lenp, int filter) { struct rt_msghdr *rtm; struct ifa_msghdr *ifam; - struct sockaddr *sa, *dst, *gw, *ifa, *rti_info[RTAX_MAX]; + const struct sockaddr *sa, *dst, *gw, *ifa, *rti_info[RTAX_MAX]; *lenp = 0; for (rtm = (struct rt_msghdr *)buf; @@ -280,85 +282,85 @@ get_next_msg(char *buf, char *lim, int i } #undef FILTER_MATCH -struct in6_addr * -get_addr(char *buf) +const struct in6_addr * +get_addr(const void *buf) { - struct rt_msghdr *rtm = (struct rt_msghdr *)buf; - struct sockaddr *sa, *rti_info[RTAX_MAX]; + const struct rt_msghdr *rtm = buf; + const struct sockaddr *sa, *rti_info[RTAX_MAX]; - sa = (struct sockaddr *)(rtm + 1); + sa = (const struct sockaddr *)(rtm + 1); get_rtaddrs(rtm->rtm_addrs, sa, rti_info); - return(&SIN6(rti_info[RTAX_DST])->sin6_addr); + return &SIN6(rti_info[RTAX_DST])->sin6_addr; } int -get_rtm_ifindex(char *buf) +get_rtm_ifindex(const void *buf) { - struct rt_msghdr *rtm = (struct rt_msghdr *)buf; - struct sockaddr *sa, *rti_info[RTAX_MAX]; + const struct rt_msghdr *rtm = buf; + const struct sockaddr *sa, *rti_info[RTAX_MAX]; - sa = (struct sockaddr *)(rtm + 1); + sa = (const struct sockaddr *)(rtm + 1); get_rtaddrs(rtm->rtm_addrs, sa, rti_info); - return(((struct sockaddr_dl *)rti_info[RTAX_GATEWAY])->sdl_index); + return SDL(rti_info[RTAX_GATEWAY])->sdl_index; } int -get_ifm_ifindex(char *buf) +get_ifm_ifindex(const void *buf) { - struct if_msghdr *ifm = (struct if_msghdr *)buf; + const struct if_msghdr *ifm = buf; - return ((int)ifm->ifm_index); + return (int)ifm->ifm_index; } int -get_ifam_ifindex(char *buf) +get_ifam_ifindex(const void *buf) { - struct ifa_msghdr *ifam = (struct ifa_msghdr *)buf; + const struct ifa_msghdr *ifam = buf; - return ((int)ifam->ifam_index); + return (int)ifam->ifam_index; } int -get_ifm_flags(char *buf) +get_ifm_flags(const void *buf) { - struct if_msghdr *ifm = (struct if_msghdr *)buf; + const struct if_msghdr *ifm = buf; - return (ifm->ifm_flags); + return ifm->ifm_flags; } #ifdef RTM_IFANNOUNCE int -get_ifan_ifindex(char *buf) +get_ifan_ifindex(const void *buf) { - struct if_announcemsghdr *ifan = (struct if_announcemsghdr *)buf; + const struct if_announcemsghdr *ifan = buf; - return ((int)ifan->ifan_index); + return (int)ifan->ifan_index; } int -get_ifan_what(char *buf) +get_ifan_what(const void *buf) { - struct if_announcemsghdr *ifan = (struct if_announcemsghdr *)buf; + const struct if_announcemsghdr *ifan = buf; - return ((int)ifan->ifan_what); + return (int)ifan->ifan_what; } #endif int -get_prefixlen(char *buf) +get_prefixlen(const void *buf) { - struct rt_msghdr *rtm = (struct rt_msghdr *)buf; - struct sockaddr *sa, *rti_info[RTAX_MAX]; - unsigned char *p, *lim; + const struct rt_msghdr *rtm = buf; + const struct sockaddr *sa, *rti_info[RTAX_MAX]; + const unsigned char *p, *lim; - sa = (struct sockaddr *)(rtm + 1); + sa = (const struct sockaddr *)(rtm + 1); get_rtaddrs(rtm->rtm_addrs, sa, rti_info); sa = rti_info[RTAX_NETMASK]; - p = (unsigned char *)(&SIN6(sa)->sin6_addr); - lim = (unsigned char *)sa + sa->sa_len; + p = (const unsigned char *)(&SIN6(sa)->sin6_addr); + lim = (const unsigned char *)sa + sa->sa_len; return prefixlen(p, lim); } @@ -396,25 +398,34 @@ prefixlen(const unsigned char *p, const case 0x00: break; default: - return(-1); + return -1; } } - return(masklen); + return masklen; } int -rtmsg_type(char *buf) +rtmsg_type(const void *buf) { - struct rt_msghdr *rtm = (struct rt_msghdr *)buf; + const struct rt_msghdr *rtm = buf; - return(rtm->rtm_type); + return rtm->rtm_type; +} + +const char * +rtmsg_typestr(const void *buf) +{ + const struct rt_msghdr *rtm = buf; + + return rtm->rtm_type < __arraycount(rtm_names) + ? rtm_names[rtm->rtm_type] : "*unknown*"; } int -rtmsg_len(char *buf) +rtmsg_len(const void *buf) { - struct rt_msghdr *rtm = (struct rt_msghdr *)buf; + const struct rt_msghdr *rtm = buf; - return(rtm->rtm_msglen); + return rtm->rtm_msglen; } Index: src/usr.sbin/rtadvd/rtadvd.c diff -u src/usr.sbin/rtadvd/rtadvd.c:1.79 src/usr.sbin/rtadvd/rtadvd.c:1.80 --- src/usr.sbin/rtadvd/rtadvd.c:1.79 Thu Aug 27 20:19:37 2020 +++ src/usr.sbin/rtadvd/rtadvd.c Mon Mar 22 14:41:11 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: rtadvd.c,v 1.79 2020/08/28 00:19:37 rjs Exp $ */ +/* $NetBSD: rtadvd.c,v 1.80 2021/03/22 18:41:11 christos Exp $ */ /* $KAME: rtadvd.c,v 1.92 2005/10/17 14:40:02 suz Exp $ */ /* @@ -469,7 +469,7 @@ rtmsg_input(void) char ifname[IF_NAMESIZE]; struct prefix *prefix; struct rainfo *rai; - struct in6_addr *addr; + const struct in6_addr *addr; char addrbuf[INET6_ADDRSTRLEN]; int prefixchange = 0, argc; @@ -483,8 +483,8 @@ rtmsg_input(void) msg = buffer.data; if (dflag > 1) { logit(LOG_DEBUG, "%s: received a routing message " - "(type = %d, len = %d)", __func__, rtmsg_type(msg), - rtmsg_len(msg)); + "(type = %d [%s], len = %d)", __func__, rtmsg_type(msg), + rtmsg_typestr(msg), rtmsg_len(msg)); } if (n > rtmsg_len(msg)) { /* @@ -1323,7 +1323,7 @@ prefix_check(struct nd_opt_prefix_info * } struct prefix * -find_prefix(struct rainfo *rai, struct in6_addr *prefix, int plen) +find_prefix(struct rainfo *rai, const struct in6_addr *prefix, int plen) { struct prefix *pp; int bytelen, bitlen; @@ -1810,7 +1810,7 @@ logit(int level, const char *fmt, ...) if (level >= LOG_INFO && !dflag) return; - vwarnx(expandm(fmt, "\n", &buf), ap); + vwarnx(expandm(fmt, "", &buf), ap); free(buf); va_end(ap); } Index: src/usr.sbin/rtadvd/rtadvd.h diff -u src/usr.sbin/rtadvd/rtadvd.h:1.20 src/usr.sbin/rtadvd/rtadvd.h:1.21 --- src/usr.sbin/rtadvd/rtadvd.h:1.20 Mon Nov 11 08:42:49 2019 +++ src/usr.sbin/rtadvd/rtadvd.h Mon Mar 22 14:41:11 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: rtadvd.h,v 1.20 2019/11/11 13:42:49 roy Exp $ */ +/* $NetBSD: rtadvd.h,v 1.21 2021/03/22 18:41:11 christos Exp $ */ /* $KAME: rtadvd.h,v 1.30 2005/10/17 14:40:02 suz Exp $ */ /* @@ -196,6 +196,6 @@ void ra_timer_set_short_delay(struct rai int prefix_match(struct in6_addr *, int, struct in6_addr *, int); struct rainfo *if_indextorainfo(unsigned int); -struct prefix *find_prefix(struct rainfo *, struct in6_addr *, int); +struct prefix *find_prefix(struct rainfo *, const struct in6_addr *, int); extern int Cflag;