From ee70b5d6af9f4f51fb9c7f3884f534cc3fcf2dba Mon Sep 17 00:00:00 2001 From: dsl Date: Fri, 16 May 2003 22:59:50 +0000 Subject: Revert previous change. Remove s parameter from teh function and rotate the result through a fixed set of strings instead. There never was a possibility of a buffer overrun in inet_fmt{s}(). Fix an actual buffer overrun in a scanf() call. --- usr.sbin/mrouted/cfparse.y | 50 +++++----- usr.sbin/mrouted/config.c | 10 +- usr.sbin/mrouted/defs.h | 13 +-- usr.sbin/mrouted/igmp.c | 22 ++-- usr.sbin/mrouted/inet.c | 46 +++++---- usr.sbin/mrouted/kern.c | 12 +-- usr.sbin/mrouted/prune.c | 243 ++++++++++++++++++++++----------------------- usr.sbin/mrouted/route.c | 34 +++---- usr.sbin/mrouted/rsrr.c | 12 +-- usr.sbin/mrouted/vif.c | 63 ++++++------ 10 files changed, 250 insertions(+), 255 deletions(-) (limited to 'usr.sbin/mrouted') diff --git a/usr.sbin/mrouted/cfparse.y b/usr.sbin/mrouted/cfparse.y index 054670623b8..e62924f6135 100644 --- a/usr.sbin/mrouted/cfparse.y +++ b/usr.sbin/mrouted/cfparse.y @@ -1,5 +1,5 @@ %{ -/* $NetBSD: cfparse.y,v 1.12 2003/05/16 18:10:38 itojun Exp $ */ +/* $NetBSD: cfparse.y,v 1.13 2003/05/16 22:59:50 dsl Exp $ */ /* * Configuration file parser for mrouted. @@ -123,7 +123,7 @@ stmt : error if (vifi == numvifs) fatal("%s is not a configured interface", - inet_fmt($2,s1, sizeof(s1))); + inet_fmt($2)); } ifmods @@ -138,18 +138,18 @@ stmt : error ifr = ifconfaddr(&ifc, $2); if (ifr == 0) fatal("Tunnel local address %s is not mine", - inet_fmt($2, s1, sizeof(s1))); + inet_fmt($2)); strncpy(ffr.ifr_name, ifr->ifr_name, IFNAMSIZ); if (ioctl(udp_socket, SIOCGIFFLAGS, (char *)&ffr)<0) fatal("ioctl SIOCGIFFLAGS on %s",ffr.ifr_name); if (ffr.ifr_flags & IFF_LOOPBACK) fatal("Tunnel local address %s is a loopback interface", - inet_fmt($2, s1, sizeof(s1))); + inet_fmt($2)); if (ifconfaddr(&ifc, $3) != 0) fatal("Tunnel remote address %s is one of mine", - inet_fmt($3, s1, sizeof(s1))); + inet_fmt($3)); for (vifi = 0, v = uvifs; vifi < numvifs; @@ -157,11 +157,11 @@ stmt : error if (v->uv_flags & VIFF_TUNNEL) { if ($3 == v->uv_rmt_addr) fatal("Duplicate tunnel to %s", - inet_fmt($3, s1, sizeof(s1))); + inet_fmt($3)); } else if (!(v->uv_flags & VIFF_DISABLED)) { if (($3 & v->uv_subnetmask) == v->uv_subnet) fatal("Unnecessary tunnel to %s", - inet_fmt($3,s1, sizeof(s1))); + inet_fmt($3)); } if (numvifs == MAXVIFS) @@ -192,8 +192,8 @@ stmt : error { logit(LOG_INFO, 0, "installing tunnel from %s to %s as vif #%u - rate=%d", - inet_fmt($2, s1, sizeof(s1)), - inet_fmt($3, s2, sizeof(s2)), + inet_fmt($2), + inet_fmt($3), numvifs, v->uv_rate_limit); ++numvifs; @@ -278,7 +278,7 @@ ifmod : mod ph->pa_subnetbcast = ph->pa_subnet | ~ph->pa_subnetmask; if ($2.addr & ~ph->pa_subnetmask) warn("Extra subnet %s/%d has host bits set", - inet_fmt($2.addr,s1, sizeof(s1)), $2.mask); + inet_fmt($2.addr), $2.mask); ph->pa_next = v->uv_addrs; v->uv_addrs = ph; @@ -328,7 +328,7 @@ mod : THRESHOLD NUMBER { if ($2 < 1 || $2 > 255) v_acl->acl_addr = $2.addr & v_acl->acl_mask; if ($2.addr & ~v_acl->acl_mask) warn("Boundary spec %s/%d has host bits set", - inet_fmt($2.addr,s1, sizeof(s1)),$2.mask); + inet_fmt($2.addr),$2.mask); v_acl->acl_next = v->uv_acl; v->uv_acl = v_acl; @@ -381,7 +381,7 @@ boundary : ADDRMASK { if ((ntohl($1.addr) & 0xff000000) != 0xef000000) { fatal("Boundaries must be 239.x.x.x, not %s/%d", - inet_fmt($1.addr, s1, sizeof(s1)), $1.mask); + inet_fmt($1.addr), $1.mask); } $$ = $1; @@ -475,6 +475,7 @@ yylex() int n; u_int32_t addr; char *q; + char c; if ((q = next_word()) == NULL) { return 0; @@ -516,26 +517,21 @@ yylex() yylval.num = 0; return BOOLEAN; } - if (sscanf(q,"%[.0-9]/%d%c",s1,&n,s2) == 2) { - if ((addr = inet_parse(s1)) != 0xffffffff) { - yylval.addrmask.mask = n; - yylval.addrmask.addr = addr; - return ADDRMASK; - } - /* fall through to returning STRING */ + if ((addr = inet_parse(q, &n)) != 0xffffffff) { + yylval.addrmask.mask = n; + yylval.addrmask.addr = addr; + return ADDRMASK; } - if (sscanf(q,"%[.0-9]%c",s1,s2) == 1) { - if ((addr = inet_parse(s1)) != 0xffffffff && - inet_valid_host(addr)) { - yylval.addr = addr; - return ADDR; - } + if ((addr = inet_parse(q,0)) != 0xffffffff && + inet_valid_host(addr)) { + yylval.addr = addr; + return ADDR; } - if (sscanf(q,"0x%8x%c",&n,s1) == 1) { + if (sscanf(q,"0x%8x%c",&n,&c) == 1) { yylval.addr = n; return ADDR; } - if (sscanf(q,"%d%c",&n,s1) == 1) { + if (sscanf(q,"%d%c",&n,&c) == 1) { yylval.num = n; return NUMBER; } diff --git a/usr.sbin/mrouted/config.c b/usr.sbin/mrouted/config.c index 79927222fe8..b77b112ef5b 100644 --- a/usr.sbin/mrouted/config.c +++ b/usr.sbin/mrouted/config.c @@ -1,4 +1,4 @@ -/* $NetBSD: config.c,v 1.12 2003/05/16 18:10:38 itojun Exp $ */ +/* $NetBSD: config.c,v 1.13 2003/05/16 22:59:50 dsl Exp $ */ /* * The mrouted program is covered by the license in the accompanying file @@ -59,8 +59,8 @@ config_vifs_from_kernel(void) addr == (subnet | ~mask)) { logit(LOG_WARNING, 0, "ignoring %s, has invalid address (%s) and/or mask (%s)", - ifa->ifa_name, inet_fmt(addr, s1, sizeof(s1)), - inet_fmt(mask, s2, sizeof(s2))); + ifa->ifa_name, inet_fmt(addr), + inet_fmt(mask)); continue; } @@ -103,8 +103,8 @@ config_vifs_from_kernel(void) v->uv_addrs = NULL; logit(LOG_INFO,0,"installing %s (%s on subnet %s) as vif #%u - rate=%d", - v->uv_name, inet_fmt(addr, s1, sizeof(s1)), - inet_fmts(subnet, mask, s2, sizeof(s2)), + v->uv_name, inet_fmt(addr), + inet_fmts(subnet, mask), numvifs, v->uv_rate_limit); ++numvifs; diff --git a/usr.sbin/mrouted/defs.h b/usr.sbin/mrouted/defs.h index 349cbf49477..59a49e1a501 100644 --- a/usr.sbin/mrouted/defs.h +++ b/usr.sbin/mrouted/defs.h @@ -1,4 +1,4 @@ -/* $NetBSD: defs.h,v 1.12 2003/05/16 18:10:38 itojun Exp $ */ +/* $NetBSD: defs.h,v 1.13 2003/05/16 22:59:50 dsl Exp $ */ /* * The mrouted program is covered by the license in the accompanying file @@ -126,11 +126,6 @@ extern int vifs_down; extern int udp_socket; extern int vifs_with_neighbors; -extern char s1[19]; -extern char s2[19]; -extern char s3[19]; -extern char s4[19]; - #if !(defined(BSD) && (BSD >= 199103)) extern int errno; extern int sys_nerr; @@ -226,9 +221,9 @@ extern void config_vifs_from_file(void); extern int inet_valid_host(u_int32_t naddr); extern int inet_valid_mask(u_int32_t mask); extern int inet_valid_subnet(u_int32_t nsubnet, u_int32_t nmask); -extern char * inet_fmt(u_int32_t addr, char *s, size_t); -extern char * inet_fmts(u_int32_t addr, u_int32_t mask, char *s, size_t); -extern u_int32_t inet_parse(char *s); +extern char * inet_fmt(u_int32_t addr); +extern char * inet_fmts(u_int32_t addr, u_int32_t mask); +extern u_int32_t inet_parse(char *s, int *); extern int inet_cksum(u_short *addr, u_int len); /* prune.c */ diff --git a/usr.sbin/mrouted/igmp.c b/usr.sbin/mrouted/igmp.c index 0eaa1043b01..614c85895bb 100644 --- a/usr.sbin/mrouted/igmp.c +++ b/usr.sbin/mrouted/igmp.c @@ -1,4 +1,4 @@ -/* $NetBSD: igmp.c,v 1.11 2003/05/16 18:10:38 itojun Exp $ */ +/* $NetBSD: igmp.c,v 1.12 2003/05/16 22:59:50 dsl Exp $ */ /* * The mrouted program is covered by the license in the accompanying file @@ -156,7 +156,7 @@ accept_igmp(int recvlen) if (iphdrlen + ipdatalen != recvlen) { logit(LOG_WARNING, 0, "received packet from %s shorter (%u bytes) than hdr+data length (%u+%u)", - inet_fmt(src, s1, sizeof(s1)), recvlen, iphdrlen, ipdatalen); + inet_fmt(src), recvlen, iphdrlen, ipdatalen); return; } @@ -166,13 +166,13 @@ accept_igmp(int recvlen) if (igmpdatalen < 0) { logit(LOG_WARNING, 0, "received IP data field too short (%u bytes) for IGMP, from %s", - ipdatalen, inet_fmt(src, s1, sizeof(s1))); + ipdatalen, inet_fmt(src)); return; } logit(LOG_DEBUG, 0, "RECV %s from %-15s to %s", packet_kind(igmp->igmp_type, igmp->igmp_code), - inet_fmt(src, s1, sizeof(s1)), inet_fmt(dst, s2, sizeof(s2))); + inet_fmt(src), inet_fmt(dst)); switch (igmp->igmp_type) { @@ -245,8 +245,8 @@ accept_igmp(int recvlen) default: logit(LOG_INFO, 0, "ignoring unknown DVMRP message code %u from %s to %s", - igmp->igmp_code, inet_fmt(src, s1, sizeof(s1)), - inet_fmt(dst, s2, sizeof(s2))); + igmp->igmp_code, inet_fmt(src), + inet_fmt(dst)); return; } @@ -264,8 +264,8 @@ accept_igmp(int recvlen) default: logit(LOG_INFO, 0, "ignoring unknown IGMP message type %x from %s to %s", - igmp->igmp_type, inet_fmt(src, s1, sizeof(s1)), - inet_fmt(dst, s2, sizeof(s2))); + igmp->igmp_type, inet_fmt(src), + inet_fmt(dst)); return; } } @@ -342,13 +342,13 @@ send_igmp(u_int32_t src, u_int32_t dst, int type, int code, u_int32_t group, else logit(igmp_log_level(type, code), errno, "sendto to %s on %s", - inet_fmt(dst, s1, sizeof(s1)), inet_fmt(src, s2, sizeof(s2))); + inet_fmt(dst), inet_fmt(src)); } if (setloop) k_set_loop(FALSE); logit(LOG_DEBUG, 0, "SENT %s from %-15s to %s", - packet_kind(type, code), inet_fmt(src, s1, sizeof(s1)), - inet_fmt(dst, s2, sizeof(s2))); + packet_kind(type, code), inet_fmt(src), + inet_fmt(dst)); } diff --git a/usr.sbin/mrouted/inet.c b/usr.sbin/mrouted/inet.c index 911a847d3fc..639d84c2175 100644 --- a/usr.sbin/mrouted/inet.c +++ b/usr.sbin/mrouted/inet.c @@ -1,4 +1,4 @@ -/* $NetBSD: inet.c,v 1.10 2003/05/16 18:10:38 itojun Exp $ */ +/* $NetBSD: inet.c,v 1.11 2003/05/16 22:59:50 dsl Exp $ */ /* * The mrouted program is covered by the license in the accompanying file @@ -13,13 +13,11 @@ #include "defs.h" -/* - * Exported variables. - */ -char s1[19]; /* buffers to hold the string representations */ -char s2[19]; /* of IP addresses, to be passed to inet_fmt() */ -char s3[19]; /* or inet_fmts(). */ -char s4[19]; +/* buffers to hold the string representations */ +/* of IP addresses, returned by inet_fmt{s}() */ +#define SS_MASK ((1 << 3) - 1) +static char ss[SS_MASK + 1][32]; +static int ss_index = 0; /* index into above */ /* @@ -103,12 +101,13 @@ inet_valid_subnet(u_int32_t nsubnet, u_int32_t nmask) * Convert an IP address in u_long (network) format into a printable string. */ char * -inet_fmt(u_int32_t addr, char *s, size_t len) +inet_fmt(u_int32_t addr) { u_char *a; + char *s = ss[++ss_index & SS_MASK]; a = (u_char *)&addr; - snprintf(s, len, "%u.%u.%u.%u", a[0], a[1], a[2], a[3]); + snprintf(s, sizeof ss[0], "%u.%u.%u.%u", a[0], a[1], a[2], a[3]); return (s); } @@ -118,24 +117,25 @@ inet_fmt(u_int32_t addr, char *s, size_t len) * string including the netmask as a number of bits. */ char * -inet_fmts(u_int32_t addr, u_int32_t mask, char *s, size_t len) +inet_fmts(u_int32_t addr, u_int32_t mask) { u_char *a, *m; int bits; + char *s = ss[++ss_index & SS_MASK]; if ((addr == 0) && (mask == 0)) { - snprintf(s, len, "default"); + snprintf(s, sizeof ss[0], "default"); return (s); } a = (u_char *)&addr; m = (u_char *)&mask; bits = 33 - ffs(ntohl(mask)); - if (m[3] != 0) snprintf(s, len, "%u.%u.%u.%u/%d", a[0], a[1], a[2], a[3], + if (m[3] != 0) snprintf(s, sizeof ss[0], "%u.%u.%u.%u/%d", a[0], a[1], a[2], a[3], bits); - else if (m[2] != 0) snprintf(s, len, "%u.%u.%u/%d", a[0], a[1], a[2], bits); - else if (m[1] != 0) snprintf(s, len, "%u.%u/%d", a[0], a[1], bits); - else snprintf(s, len, "%u/%d", a[0], bits); + else if (m[2] != 0) snprintf(s, sizeof ss[0], "%u.%u.%u/%d", a[0], a[1], a[2], bits); + else if (m[1] != 0) snprintf(s, sizeof ss[0], "%u.%u/%d", a[0], a[1], bits); + else snprintf(s, sizeof ss[0], "%u/%d", a[0], bits); return (s); } @@ -147,14 +147,19 @@ inet_fmts(u_int32_t addr, u_int32_t mask, char *s, size_t len) * with "255.255.255.255".) */ u_int32_t -inet_parse(char *s) +inet_parse(char *s, int *mask_p) { u_int32_t a = 0; u_int a0, a1, a2, a3; char c; + int mask = 0; + int n; - if (sscanf(s, "%u.%u.%u.%u%c", &a0, &a1, &a2, &a3, &c) != 4 || - a0 > 255 || a1 > 255 || a2 > 255 || a3 > 255) + n = sscanf(s, "%u.%u.%u.%u/%d%c", &a0, &a1, &a2, &a3, &mask, &c); + if (n < 4 || (n == 4 && mask_p) || (n == 5 && !mask_p) || n >= 6) + return (0xffffffff); + + if (a0 > 255 || a1 > 255 || a2 > 255 || a3 > 255) return (0xffffffff); ((u_char *)&a)[0] = a0; @@ -162,6 +167,9 @@ inet_parse(char *s) ((u_char *)&a)[2] = a2; ((u_char *)&a)[3] = a3; + if (mask_p) + *mask_p = mask; + return (a); } diff --git a/usr.sbin/mrouted/kern.c b/usr.sbin/mrouted/kern.c index 0bc78e8794c..ec86650a041 100644 --- a/usr.sbin/mrouted/kern.c +++ b/usr.sbin/mrouted/kern.c @@ -1,4 +1,4 @@ -/* $NetBSD: kern.c,v 1.8 2003/05/16 18:10:38 itojun Exp $ */ +/* $NetBSD: kern.c,v 1.9 2003/05/16 22:59:50 dsl Exp $ */ /* * The mrouted program is covered by the license in the accompanying file @@ -61,7 +61,7 @@ void k_set_if(u_int32_t ifa) if (setsockopt(igmp_socket, IPPROTO_IP, IP_MULTICAST_IF, (char *)&adr, sizeof(adr)) < 0) logit(LOG_ERR, errno, "setsockopt IP_MULTICAST_IF %s", - inet_fmt(ifa, s1, sizeof(s1))); + inet_fmt(ifa)); } @@ -75,8 +75,8 @@ void k_join(u_int32_t grp, u_int32_t ifa) if (setsockopt(igmp_socket, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&mreq, sizeof(mreq)) < 0) logit(LOG_WARNING, errno, "can't join group %s on interface %s", - inet_fmt(grp, s1, sizeof(s1)), - inet_fmt(ifa, s2, sizeof(s2))); + inet_fmt(grp), + inet_fmt(ifa)); } @@ -90,8 +90,8 @@ void k_leave(u_int32_t grp, u_int32_t ifa) if (setsockopt(igmp_socket, IPPROTO_IP, IP_DROP_MEMBERSHIP, (char *)&mreq, sizeof(mreq)) < 0) logit(LOG_WARNING, errno, "can't leave group %s on interface %s", - inet_fmt(grp, s1, sizeof(s1)), - inet_fmt(ifa, s2, sizeof(s2))); + inet_fmt(grp), + inet_fmt(ifa)); } diff --git a/usr.sbin/mrouted/prune.c b/usr.sbin/mrouted/prune.c index c845be06706..9a750112cf3 100644 --- a/usr.sbin/mrouted/prune.c +++ b/usr.sbin/mrouted/prune.c @@ -1,4 +1,4 @@ -/* $NetBSD: prune.c,v 1.13 2003/05/16 18:10:38 itojun Exp $ */ +/* $NetBSD: prune.c,v 1.14 2003/05/16 22:59:50 dsl Exp $ */ /* * The mrouted program is covered by the license in the accompanying file @@ -282,11 +282,10 @@ send_prune(struct gtable *gt) htonl(MROUTED_LEVEL), datalen); logit(LOG_DEBUG, 0, "sent prune for (%s %s)/%d on vif %d to %s", - inet_fmts(gt->gt_route->rt_origin, gt->gt_route->rt_originmask, s1, - sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2)), + inet_fmts(gt->gt_route->rt_origin, gt->gt_route->rt_originmask), + inet_fmt(gt->gt_mcastgrp), gt->gt_prsent_timer, gt->gt_route->rt_parent, - inet_fmt(gt->gt_route->rt_gateway, s3, sizeof(s3))); + inet_fmt(gt->gt_route->rt_gateway)); } /* @@ -326,9 +325,9 @@ send_graft(struct gtable *gt) htonl(MROUTED_LEVEL), datalen); } logit(LOG_DEBUG, 0, "sent graft for (%s %s) to %s on vif %d", - inet_fmts(gt->gt_route->rt_origin, gt->gt_route->rt_originmask, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2)), - inet_fmt(gt->gt_route->rt_gateway, s3, sizeof(s3)), + inet_fmts(gt->gt_route->rt_origin, gt->gt_route->rt_originmask), + inet_fmt(gt->gt_mcastgrp), + inet_fmt(gt->gt_route->rt_gateway), gt->gt_route->rt_parent); } @@ -355,8 +354,8 @@ send_graft_ack(u_int32_t src, u_int32_t dst, u_int32_t origin, u_int32_t grp) htonl(MROUTED_LEVEL), datalen); logit(LOG_DEBUG, 0, "sent graft ack for (%s, %s) to %s", - inet_fmt(origin, s1, sizeof(s1)), inet_fmt(grp, s2, sizeof(s2)), - inet_fmt(dst, s3, sizeof(s3))); + inet_fmt(origin), inet_fmt(grp), + inet_fmt(dst)); } /* @@ -678,8 +677,8 @@ add_table_entry(u_int32_t origin, u_int32_t mcastgrp) g = gtp ? gtp->gt_gnext : kernel_table; logit(LOG_WARNING, 0, "Entry for (%s %s) (rt:%p) exists (rt:%p)", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2)), + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(g->gt_mcastgrp), r, g->gt_route); } else { if (gtp) { @@ -720,8 +719,8 @@ add_table_entry(u_int32_t origin, u_int32_t mcastgrp) md_log(MD_DUPE, origin, mcastgrp); #endif logit(LOG_WARNING, 0, "kernel entry already exists for (%s %s)", - inet_fmt(origin, s1, sizeof(s1)), - inet_fmt(mcastgrp, s2, sizeof(s2))); + inet_fmt(origin), + inet_fmt(mcastgrp)); /* XXX Doing this should cause no harm, and may ensure * kernel<>mrouted synchronization */ k_add_rg(origin, gt); @@ -732,8 +731,8 @@ add_table_entry(u_int32_t origin, u_int32_t mcastgrp) k_add_rg(origin, gt); logit(LOG_DEBUG, 0, "add cache entry (%s %s) gm:%x, parent-vif:%d", - inet_fmt(origin, s1, sizeof(s1)), - inet_fmt(mcastgrp, s2, sizeof(s2)), + inet_fmt(origin), + inet_fmt(mcastgrp), gt->gt_grpmems, r ? r->rt_parent : -1); /* If there are no leaf vifs @@ -767,8 +766,8 @@ reset_neighbor_state(vifi_t vifi, u_int32_t addr) if (vifi == r->rt_parent) { if (addr == r->rt_gateway) { logit(LOG_DEBUG, 0, "reset_neighbor_state parent reset (%s %s)", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2))); + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(g->gt_mcastgrp)); g->gt_prsent_timer = 0; g->gt_grftsnt = 0; @@ -824,8 +823,8 @@ reset_neighbor_state(vifi_t vifi, u_int32_t addr) #endif /* RSRR */ logit(LOG_DEBUG, 0, "reset member state (%s %s) gm:%x", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2)), g->gt_grpmems); + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(g->gt_mcastgrp), g->gt_grpmems); } } } @@ -846,15 +845,15 @@ del_table_entry(struct rtentry *r, u_int32_t mcastgrp, u_int del_flag) g = r->rt_groups; while (g) { logit(LOG_DEBUG, 0, "del_table_entry deleting (%s %s)", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2))); + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(g->gt_mcastgrp)); st = g->gt_srctbl; while (st) { if (k_del_rg(st->st_origin, g) < 0) { logit(LOG_WARNING, errno, "del_table_entry trying to delete (%s, %s)", - inet_fmt(st->st_origin, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2))); + inet_fmt(st->st_origin), + inet_fmt(g->gt_mcastgrp)); } kroutes--; prev_st = st; @@ -898,15 +897,15 @@ del_table_entry(struct rtentry *r, u_int32_t mcastgrp, u_int del_flag) for (g = r->rt_groups; g; g = g->gt_next) { if (g->gt_mcastgrp == mcastgrp) { logit(LOG_DEBUG, 0, "del_table_entry deleting (%s %s)", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2))); + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(g->gt_mcastgrp)); st = g->gt_srctbl; while (st) { if (k_del_rg(st->st_origin, g) < 0) { logit(LOG_WARNING, errno, "del_table_entry trying to delete (%s, %s)", - inet_fmt(st->st_origin, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2))); + inet_fmt(st->st_origin), + inet_fmt(g->gt_mcastgrp)); } kroutes--; prev_st = st; @@ -985,8 +984,8 @@ update_table_entry(struct rtentry *r) g->gt_grpmems &= ~g->gt_scope; logit(LOG_DEBUG, 0, "updating cache entries (%s %s) gm:%x", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2)), + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(g->gt_mcastgrp), g->gt_grpmems); if (g->gt_grpmems && g->gt_prsent_timer) { @@ -1021,7 +1020,7 @@ update_lclgrp(vifi_t vifi, u_int32_t mcastgrp) struct gtable *g; logit(LOG_DEBUG, 0, "group %s joined on vif %d", - inet_fmt(mcastgrp, s1, sizeof(s1)), vifi); + inet_fmt(mcastgrp), vifi); for (g = kernel_table; g; g = g->gt_gnext) { if (ntohl(mcastgrp) < ntohl(g->gt_mcastgrp)) @@ -1038,8 +1037,8 @@ update_lclgrp(vifi_t vifi, u_int32_t mcastgrp) prun_add_ttls(g); logit(LOG_DEBUG, 0, "update lclgrp (%s %s) gm:%x", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2)), g->gt_grpmems); + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(g->gt_mcastgrp), g->gt_grpmems); update_kernel(g); #ifdef RSRR @@ -1060,7 +1059,7 @@ delete_lclgrp(vifi_t vifi, u_int32_t mcastgrp) struct gtable *g; logit(LOG_DEBUG, 0, "group %s left on vif %d", - inet_fmt(mcastgrp, s1, sizeof(s1)), vifi); + inet_fmt(mcastgrp), vifi); for (g = kernel_table; g; g = g->gt_gnext) { if (ntohl(mcastgrp) < ntohl(g->gt_mcastgrp)) @@ -1087,8 +1086,8 @@ delete_lclgrp(vifi_t vifi, u_int32_t mcastgrp) if (stop_sending) { VIFM_CLR(vifi, g->gt_grpmems); logit(LOG_DEBUG, 0, "delete lclgrp (%s %s) gm:%x", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2)), g->gt_grpmems); + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(g->gt_mcastgrp), g->gt_grpmems); prun_add_ttls(g); update_kernel(g); @@ -1139,7 +1138,7 @@ accept_prune(u_int32_t src, u_int32_t dst, char *p, int datalen) if ((vifi = find_vif(src, dst)) == NO_VIF) { logit(LOG_INFO, 0, "ignoring prune report from non-neighbor %s", - inet_fmt(src, s1, sizeof(s1))); + inet_fmt(src)); return; } @@ -1148,7 +1147,7 @@ accept_prune(u_int32_t src, u_int32_t dst, char *p, int datalen) { logit(LOG_WARNING, 0, "non-decipherable prune from %s", - inet_fmt(src, s1, sizeof(s1))); + inet_fmt(src)); return; } @@ -1161,8 +1160,8 @@ accept_prune(u_int32_t src, u_int32_t dst, char *p, int datalen) prun_tmr = ntohl(prun_tmr); logit(LOG_DEBUG, 0, "%s on vif %d prunes (%s %s)/%d", - inet_fmt(src, s1, sizeof(s1)), vifi, - inet_fmt(prun_src, s2, sizeof(s2)), inet_fmt(prun_grp, s3, sizeof(s3)), prun_tmr); + inet_fmt(src), vifi, + inet_fmt(prun_src), inet_fmt(prun_grp), prun_tmr); /* * Find the subnet for the prune @@ -1173,14 +1172,14 @@ accept_prune(u_int32_t src, u_int32_t dst, char *p, int datalen) if (!VIFM_ISSET(vifi, r->rt_children)) { logit(LOG_WARNING, 0, "prune received from non-child %s for (%s %s)", - inet_fmt(src, s1, sizeof(s1)), inet_fmt(prun_src, s2, sizeof(s2)), - inet_fmt(prun_grp, s3, sizeof(s3))); + inet_fmt(src), inet_fmt(prun_src), + inet_fmt(prun_grp)); return; } if (VIFM_ISSET(vifi, g->gt_scope)) { logit(LOG_WARNING, 0, "prune received from %s on scoped grp (%s %s)", - inet_fmt(src, s1, sizeof(s1)), inet_fmt(prun_src, s2, sizeof(s2)), - inet_fmt(prun_grp, s3, sizeof(s3))); + inet_fmt(src), inet_fmt(prun_src), + inet_fmt(prun_grp)); return; } if ((pt = find_prune_entry(src, g->gt_pruntbl)) != NULL) { @@ -1191,8 +1190,8 @@ accept_prune(u_int32_t src, u_int32_t dst, char *p, int datalen) if (pt->pt_timer > 10) { logit(LOG_WARNING, 0, "%s %d from %s for (%s %s)/%d %s %d %s %x", "duplicate prune received on vif", - vifi, inet_fmt(src, s1, sizeof(s1)), inet_fmt(prun_src, s2, sizeof(s2)), - inet_fmt(prun_grp, s3, sizeof(s3)), prun_tmr, + vifi, inet_fmt(src), inet_fmt(prun_src), + inet_fmt(prun_grp), prun_tmr, "old timer:", pt->pt_timer, "cur gm:", g->gt_grpmems); } pt->pt_timer = prun_tmr; @@ -1229,8 +1228,8 @@ accept_prune(u_int32_t src, u_int32_t dst, char *p, int datalen) if (stop_sending && !grplst_mem(vifi, prun_grp)) { VIFM_CLR(vifi, g->gt_grpmems); logit(LOG_DEBUG, 0, "prune (%s %s), stop sending on vif %d, gm:%x", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2)), vifi, g->gt_grpmems); + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(g->gt_mcastgrp), vifi, g->gt_grpmems); prun_add_ttls(g); update_kernel(g); @@ -1257,8 +1256,8 @@ accept_prune(u_int32_t src, u_int32_t dst, char *p, int datalen) */ logit(LOG_DEBUG, 0, "%s (%s %s)/%d from %s", "prune message received with no kernel entry for", - inet_fmt(prun_src, s1, sizeof(s1)), inet_fmt(prun_grp, s2, sizeof(s2)), - prun_tmr, inet_fmt(src, s3, sizeof(s3))); + inet_fmt(prun_src), inet_fmt(prun_grp), + prun_tmr, inet_fmt(src)); return; } } @@ -1301,8 +1300,8 @@ chkgrp_graft(vifi_t vifi, u_int32_t mcastgrp) g->gt_timer = max_prune_lifetime; logit(LOG_DEBUG, 0, "chkgrp graft (%s %s) gm:%x", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2)), g->gt_grpmems); + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(g->gt_mcastgrp), g->gt_grpmems); prun_add_ttls(g); update_kernel(g); @@ -1340,14 +1339,14 @@ accept_graft(u_int32_t src, u_int32_t dst, char *p, int datalen) if ((vifi = find_vif(src, dst)) == NO_VIF) { logit(LOG_INFO, 0, "ignoring graft from non-neighbor %s", - inet_fmt(src, s1, sizeof(s1))); + inet_fmt(src)); return; } if (datalen < 8) { logit(LOG_WARNING, 0, "received non-decipherable graft from %s", - inet_fmt(src, s1, sizeof(s1))); + inet_fmt(src)); return; } @@ -1357,8 +1356,8 @@ accept_graft(u_int32_t src, u_int32_t dst, char *p, int datalen) ((char *)&graft_grp)[i] = *p++; logit(LOG_DEBUG, 0, "%s on vif %d grafts (%s %s)", - inet_fmt(src, s1, sizeof(s1)), vifi, - inet_fmt(graft_src, s2, sizeof(s2)), inet_fmt(graft_grp, s3, sizeof(s3))); + inet_fmt(src), vifi, + inet_fmt(graft_src), inet_fmt(graft_grp)); /* * Find the subnet for the graft @@ -1369,8 +1368,8 @@ accept_graft(u_int32_t src, u_int32_t dst, char *p, int datalen) if (VIFM_ISSET(vifi, g->gt_scope)) { logit(LOG_WARNING, 0, "graft received from %s on scoped grp (%s %s)", - inet_fmt(src, s1, sizeof(s1)), inet_fmt(graft_src, s2, sizeof(s2)), - inet_fmt(graft_grp, s3, sizeof(s3))); + inet_fmt(src), inet_fmt(graft_src), + inet_fmt(graft_grp)); return; } @@ -1382,8 +1381,8 @@ accept_graft(u_int32_t src, u_int32_t dst, char *p, int datalen) VIFM_SET(vifi, g->gt_grpmems); logit(LOG_DEBUG, 0, "accept graft (%s %s) gm:%x", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(g->gt_mcastgrp, s2, sizeof(s2)), g->gt_grpmems); + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(g->gt_mcastgrp), g->gt_grpmems); prun_add_ttls(g); update_kernel(g); @@ -1421,8 +1420,8 @@ accept_graft(u_int32_t src, u_int32_t dst, char *p, int datalen) send_graft_ack(dst, src, graft_src, graft_grp); logit(LOG_DEBUG, 0, "%s (%s %s) from %s", "graft received with no kernel entry for", - inet_fmt(graft_src, s1, sizeof(s1)), inet_fmt(graft_grp, s2, sizeof(s2)), - inet_fmt(src, s3, sizeof(s3))); + inet_fmt(graft_src), inet_fmt(graft_grp), + inet_fmt(src)); return; } } @@ -1447,14 +1446,14 @@ accept_g_ack(u_int32_t src, u_int32_t dst, char *p, int datalen) if ((vifi = find_vif(src, dst)) == NO_VIF) { logit(LOG_INFO, 0, "ignoring graft ack from non-neighbor %s", - inet_fmt(src, s1, sizeof(s1))); + inet_fmt(src)); return; } if (datalen < 0 || datalen > 8) { logit(LOG_WARNING, 0, "received non-decipherable graft ack from %s", - inet_fmt(src, s1, sizeof(s1))); + inet_fmt(src)); return; } @@ -1464,8 +1463,8 @@ accept_g_ack(u_int32_t src, u_int32_t dst, char *p, int datalen) ((char *)&grft_grp)[i] = *p++; logit(LOG_DEBUG, 0, "%s on vif %d acks graft (%s, %s)", - inet_fmt(src, s1, sizeof(s1)), vifi, - inet_fmt(grft_src, s2, sizeof(s2)), inet_fmt(grft_grp, s3, sizeof(s3))); + inet_fmt(src), vifi, + inet_fmt(grft_src), inet_fmt(grft_grp)); /* * Find the subnet for the graft ack @@ -1476,8 +1475,8 @@ accept_g_ack(u_int32_t src, u_int32_t dst, char *p, int datalen) } else { logit(LOG_WARNING, 0, "%s (%s, %s) from %s", "rcvd graft ack with no kernel entry for", - inet_fmt(grft_src, s1, sizeof(s1)), inet_fmt(grft_grp, s2, sizeof(s2)), - inet_fmt(src, s3, sizeof(s3))); + inet_fmt(grft_src), inet_fmt(grft_grp), + inet_fmt(src)); return; } } @@ -1553,22 +1552,22 @@ steal_sources(struct rtentry *rt) for (rp = rt->rt_next; rp; rp = rp->rt_next) { if ((rt->rt_origin & rp->rt_originmask) == rp->rt_origin) { logit(LOG_DEBUG, 0, "Route for %s stealing sources from %s", - inet_fmts(rt->rt_origin, rt->rt_originmask, s1, sizeof(s1)), - inet_fmts(rp->rt_origin, rp->rt_originmask, s2, sizeof(s2))); + inet_fmts(rt->rt_origin, rt->rt_originmask), + inet_fmts(rp->rt_origin, rp->rt_originmask)); for (gt = rp->rt_groups; gt; gt = gt->gt_next) { stnp = >->gt_srctbl; while ((st = *stnp) != NULL) { if ((st->st_origin & rt->rt_originmask) == rt->rt_origin) { logit(LOG_DEBUG, 0, "%s stealing (%s %s) from %s", - inet_fmts(rt->rt_origin, rt->rt_originmask, s1, sizeof(s1)), - inet_fmt(st->st_origin, s3, sizeof(s3)), - inet_fmt(gt->gt_mcastgrp, s4, sizeof(s4)), - inet_fmts(rp->rt_origin, rp->rt_originmask, s2, sizeof(s2))); + inet_fmts(rt->rt_origin, rt->rt_originmask), + inet_fmt(st->st_origin), + inet_fmt(gt->gt_mcastgrp), + inet_fmts(rp->rt_origin, rp->rt_originmask)); if (k_del_rg(st->st_origin, gt) < 0) { logit(LOG_WARNING, errno, "%s (%s, %s)", "steal_sources trying to delete", - inet_fmt(st->st_origin, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2))); + inet_fmt(st->st_origin), + inet_fmt(gt->gt_mcastgrp)); } *stnp = st->st_next; kroutes--; @@ -1586,15 +1585,15 @@ steal_sources(struct rtentry *rt) if (gt->gt_srctbl && ((gt->gt_srctbl->st_origin & rt->rt_originmask) == rt->rt_origin)) { logit(LOG_DEBUG, 0, "%s stealing (%s %s) from %s", - inet_fmts(rt->rt_origin, rt->rt_originmask, s1, sizeof(s1)), - inet_fmt(gt->gt_srctbl->st_origin, s3, sizeof(s3)), - inet_fmt(gt->gt_mcastgrp, s4, sizeof(s4)), + inet_fmts(rt->rt_origin, rt->rt_originmask), + inet_fmt(gt->gt_srctbl->st_origin), + inet_fmt(gt->gt_mcastgrp), "no_route table"); if (k_del_rg(gt->gt_srctbl->st_origin, gt) < 0) { logit(LOG_WARNING, errno, "%s (%s %s)", "steal_sources trying to delete", - inet_fmt(gt->gt_srctbl->st_origin, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2))); + inet_fmt(gt->gt_srctbl->st_origin), + inet_fmt(gt->gt_mcastgrp)); } kroutes--; free(gt->gt_srctbl); @@ -1636,8 +1635,8 @@ age_table_entry(void) gt->gt_prsent_timer -= ROUTE_MAX_REPORT_DELAY; if (gt->gt_prsent_timer <= 0) { logit(LOG_DEBUG, 0, "upstream prune tmo (%s %s)", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2))); + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(gt->gt_mcastgrp)); gt->gt_prsent_timer = -1; } } @@ -1659,9 +1658,9 @@ age_table_entry(void) while ((pt = *ptnp) != NULL) { if ((pt->pt_timer -= ROUTE_MAX_REPORT_DELAY) <= 0) { logit(LOG_DEBUG, 0, "expire prune (%s %s) from %s on vif %d", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2)), - inet_fmt(pt->pt_router, s3, sizeof(s3)), + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(gt->gt_mcastgrp), + inet_fmt(pt->pt_router), pt->pt_vifi); expire_prune(pt->pt_vifi, gt); @@ -1689,21 +1688,21 @@ age_table_entry(void) if (ioctl(igmp_socket, SIOCGETSGCNT, (char *)&sg_req) < 0) { logit(LOG_WARNING, errno, "%s (%s %s)", "age_table_entry: SIOCGETSGCNT failing for", - inet_fmt(st->st_origin, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2))); + inet_fmt(st->st_origin), + inet_fmt(gt->gt_mcastgrp)); /* Make sure it gets deleted below */ sg_req.pktcnt = st->st_pktcnt; } if (sg_req.pktcnt == st->st_pktcnt) { *stnp = st->st_next; logit(LOG_DEBUG, 0, "age_table_entry deleting (%s %s)", - inet_fmt(st->st_origin, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2))); + inet_fmt(st->st_origin), + inet_fmt(gt->gt_mcastgrp)); if (k_del_rg(st->st_origin, gt) < 0) { logit(LOG_WARNING, errno, "age_table_entry trying to delete (%s %s)", - inet_fmt(st->st_origin, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2))); + inet_fmt(st->st_origin), + inet_fmt(gt->gt_mcastgrp)); } kroutes--; free(st); @@ -1732,8 +1731,8 @@ age_table_entry(void) } logit(LOG_DEBUG, 0, "timeout cache entry (%s, %s)", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2))); + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(gt->gt_mcastgrp)); if (gt->gt_prev) gt->gt_prev->gt_next = gt->gt_next; @@ -1783,8 +1782,8 @@ age_table_entry(void) if (k_del_rg(gt->gt_srctbl->st_origin, gt) < 0) { logit(LOG_WARNING, errno, "%s (%s %s)", "age_table_entry trying to delete no-route", - inet_fmt(gt->gt_srctbl->st_origin, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2))); + inet_fmt(gt->gt_srctbl->st_origin), + inet_fmt(gt->gt_mcastgrp)); } free(gt->gt_srctbl); } @@ -1822,8 +1821,8 @@ expire_prune(vifi_t vifi, struct gtable *gt) struct rtentry *rt = gt->gt_route; VIFM_SET(vifi, gt->gt_grpmems); logit(LOG_DEBUG, 0, "forw again (%s %s) gm:%x vif:%d", - inet_fmts(rt->rt_origin, rt->rt_originmask, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2)), gt->gt_grpmems, vifi); + inet_fmts(rt->rt_origin, rt->rt_originmask), + inet_fmt(gt->gt_mcastgrp), gt->gt_grpmems, vifi); prun_add_ttls(gt); update_kernel(gt); @@ -1892,18 +1891,18 @@ dump_cache(FILE *fp2) for (gt = kernel_no_route; gt; gt = gt->gt_next) { if (gt->gt_srctbl) { fprintf(fp2, " %-18s %-15s %-4s %-4s - -1\n", - inet_fmts(gt->gt_srctbl->st_origin, 0xffffffff, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2)), scaletime(gt->gt_timer), + inet_fmts(gt->gt_srctbl->st_origin, 0xffffffff), + inet_fmt(gt->gt_mcastgrp), scaletime(gt->gt_timer), scaletime(thyme - gt->gt_ctime)); - fprintf(fp2, ">%s\n", inet_fmt(gt->gt_srctbl->st_origin, s1, sizeof(s1))); + fprintf(fp2, ">%s\n", inet_fmt(gt->gt_srctbl->st_origin)); } } for (gt = kernel_table; gt; gt = gt->gt_gnext) { r = gt->gt_route; fprintf(fp2, " %-18s %-15s", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - inet_fmt(gt->gt_mcastgrp, s2, sizeof(s2))); + inet_fmts(r->rt_origin, r->rt_originmask), + inet_fmt(gt->gt_mcastgrp)); fprintf(fp2, " %-4s", scaletime(gt->gt_timer)); @@ -1925,11 +1924,11 @@ dump_cache(FILE *fp2) } fprintf(fp2, "\n"); for (st = gt->gt_srctbl; st; st = st->st_next) { - fprintf(fp2, ">%s\n", inet_fmt(st->st_origin, s1, sizeof(s1))); + fprintf(fp2, ">%s\n", inet_fmt(st->st_origin)); } #ifdef DEBUG_PRUNES for (pt = gt->gt_pruntbl; pt; pt = pt->pt_next) { - fprintf(fp2, "pt_router, s1, sizeof(s1)), + fprintf(fp2, "pt_router), pt->pt_vifi, pt->pt_timer); } #endif @@ -1972,12 +1971,12 @@ accept_mtrace(u_int32_t src, u_int32_t dst, u_int32_t group, char *data, if (datalen == QLEN) { type = QUERY; logit(LOG_DEBUG, 0, "Initial traceroute query rcvd from %s to %s", - inet_fmt(src, s1, sizeof(s1)), inet_fmt(dst, s2, sizeof(s2))); + inet_fmt(src), inet_fmt(dst)); } else if ((datalen - QLEN) % RLEN == 0) { type = RESP; logit(LOG_DEBUG, 0, "In-transit traceroute query rcvd from %s to %s", - inet_fmt(src, s1, sizeof(s1)), inet_fmt(dst, s2, sizeof(s2))); + inet_fmt(src), inet_fmt(dst)); if (IN_MULTICAST(ntohl(dst))) { logit(LOG_DEBUG, 0, "Dropping multicast response"); return; @@ -1986,7 +1985,7 @@ accept_mtrace(u_int32_t src, u_int32_t dst, u_int32_t group, char *data, else { logit(LOG_WARNING, 0, "%s from %s to %s", "Non decipherable traceroute request received", - inet_fmt(src, s1, sizeof(s1)), inet_fmt(dst, s2, sizeof(s2))); + inet_fmt(src), inet_fmt(dst)); return; } @@ -2001,21 +2000,21 @@ accept_mtrace(u_int32_t src, u_int32_t dst, u_int32_t group, char *data, } logit(LOG_DEBUG, 0, "s: %s g: %s d: %s ", - inet_fmt(qry->tr_src, s1, sizeof(s1)), - inet_fmt(group, s2, sizeof(s2)), - inet_fmt(qry->tr_dst, s3, sizeof(s3))); + inet_fmt(qry->tr_src), + inet_fmt(group), + inet_fmt(qry->tr_dst)); logit(LOG_DEBUG, 0, "rttl: %d rd: %s", qry->tr_rttl, - inet_fmt(qry->tr_raddr, s1, sizeof(s1))); + inet_fmt(qry->tr_raddr)); logit(LOG_DEBUG, 0, "rcount:%d, qid:%06x", rcount, qry->tr_qid); /* determine the routing table entry for this traceroute */ rt = determine_route(qry->tr_src); if (rt) { logit(LOG_DEBUG, 0, "rt parent vif: %d rtr: %s metric: %d", - rt->rt_parent, inet_fmt(rt->rt_gateway, s1, sizeof(s1)), + rt->rt_parent, inet_fmt(rt->rt_gateway), rt->rt_metric); logit(LOG_DEBUG, 0, "rt origin %s", - inet_fmts(rt->rt_origin, rt->rt_originmask, s1, sizeof(s1))); + inet_fmts(rt->rt_origin, rt->rt_originmask)); } else logit(LOG_DEBUG, 0, "...no route"); @@ -2042,7 +2041,7 @@ accept_mtrace(u_int32_t src, u_int32_t dst, u_int32_t group, char *data, if (rt == NULL) { logit(LOG_DEBUG, 0, "Mcast traceroute: no route entry %s", - inet_fmt(qry->tr_src, s1, sizeof(s1))); + inet_fmt(qry->tr_src)); if (IN_MULTICAST(ntohl(dst))) return; } @@ -2051,15 +2050,15 @@ accept_mtrace(u_int32_t src, u_int32_t dst, u_int32_t group, char *data, if (vifi == NO_VIF) { /* The traceroute destination is not on one of my subnet vifs. */ logit(LOG_DEBUG, 0, "Destination %s not an interface", - inet_fmt(qry->tr_dst, s1, sizeof(s1))); + inet_fmt(qry->tr_dst)); if (IN_MULTICAST(ntohl(dst))) return; errcode = TR_WRONG_IF; } else if (rt != NULL && !VIFM_ISSET(vifi, rt->rt_children)) { logit(LOG_DEBUG, 0, "Destination %s not on forwarding tree for src %s", - inet_fmt(qry->tr_dst, s1, sizeof(s1)), - inet_fmt(qry->tr_src, s2, sizeof(s2))); + inet_fmt(qry->tr_dst), + inet_fmt(qry->tr_src)); if (IN_MULTICAST(ntohl(dst))) return; errcode = TR_WRONG_IF; @@ -2183,8 +2182,8 @@ accept_mtrace(u_int32_t src, u_int32_t dst, u_int32_t group, char *data, if (!VIFM_ISSET(vifi, rt->rt_children)) { logit(LOG_DEBUG, 0, "Destination %s not on forwarding tree for src %s", - inet_fmt(qry->tr_dst, s1, sizeof(s1)), - inet_fmt(qry->tr_src, s2, sizeof(s2))); + inet_fmt(qry->tr_dst), + inet_fmt(qry->tr_src)); resp->tr_rflags = TR_WRONG_IF; } if (rt->rt_metric >= UNREACHABLE) { @@ -2222,7 +2221,7 @@ sendit: */ if (phys_vif != -1) { logit(LOG_DEBUG, 0, "Sending reply to %s from %s", - inet_fmt(dst, s1, sizeof(s1)), inet_fmt(uvifs[phys_vif].uv_lcl_addr, s2, sizeof(s2))); + inet_fmt(dst), inet_fmt(uvifs[phys_vif].uv_lcl_addr)); k_set_ttl(qry->tr_rttl); send_igmp(uvifs[phys_vif].uv_lcl_addr, dst, resptype, no, group, @@ -2234,7 +2233,7 @@ sendit: } else { logit(LOG_DEBUG, 0, "Sending %s to %s from %s", resptype == IGMP_MTRACE_REPLY ? "reply" : "request on", - inet_fmt(dst, s1, sizeof(s1)), inet_fmt(src, s2, sizeof(s2))); + inet_fmt(dst), inet_fmt(src)); send_igmp(src, dst, resptype, no, group, diff --git a/usr.sbin/mrouted/route.c b/usr.sbin/mrouted/route.c index 7679f6bc686..6063abba1cb 100644 --- a/usr.sbin/mrouted/route.c +++ b/usr.sbin/mrouted/route.c @@ -1,4 +1,4 @@ -/* $NetBSD: route.c,v 1.10 2003/05/16 18:10:38 itojun Exp $ */ +/* $NetBSD: route.c,v 1.11 2003/05/16 22:59:50 dsl Exp $ */ /* * The mrouted program is covered by the license in the accompanying file @@ -352,8 +352,8 @@ update_route(u_int32_t origin, u_int32_t mask, u_int metric, u_int32_t src, if (src != 0 && (metric < 1 || metric >= 2*UNREACHABLE)) { logit(LOG_WARNING, 0, "%s reports out-of-range metric %u for origin %s", - inet_fmt(src, s1, sizeof(s1)), metric, - inet_fmts(origin, mask, s2, sizeof(s2))); + inet_fmt(src), metric, + inet_fmts(origin, mask)); return; } adj_metric = metric + uvifs[vifi].uv_metric; @@ -374,8 +374,8 @@ update_route(u_int32_t origin, u_int32_t mask, u_int metric, u_int32_t src, if (src != 0 && !inet_valid_subnet(origin, mask)) { logit(LOG_WARNING, 0, "%s reports an invalid origin (%s) and/or mask (%08x)", - inet_fmt(src, s1, sizeof(s1)), - inet_fmt(origin, s2, sizeof(s2)), ntohl(mask)); + inet_fmt(src), + inet_fmt(origin), ntohl(mask)); return; } @@ -689,7 +689,7 @@ accept_probe(u_int32_t src, u_int32_t dst, char *p, int datalen, if ((vifi = find_vif(src, dst)) == NO_VIF) { logit(LOG_INFO, 0, - "ignoring probe from non-neighbor %s", inet_fmt(src, s1, sizeof(s1))); + "ignoring probe from non-neighbor %s", inet_fmt(src)); return; } @@ -743,7 +743,7 @@ accept_report(u_int32_t src, u_int32_t dst, char *p, int datalen, if ((vifi = find_vif(src, dst)) == NO_VIF) { logit(LOG_INFO, 0, - "ignoring route report from non-neighbor %s", inet_fmt(src, s1, sizeof(s1))); + "ignoring route report from non-neighbor %s", inet_fmt(src)); return; } @@ -753,7 +753,7 @@ accept_report(u_int32_t src, u_int32_t dst, char *p, int datalen, if (datalen > 2*4096) { logit(LOG_INFO, 0, "ignoring oversize (%d bytes) route report from %s", - datalen, inet_fmt(src, s1, sizeof(s1))); + datalen, inet_fmt(src)); return; } @@ -762,7 +762,7 @@ accept_report(u_int32_t src, u_int32_t dst, char *p, int datalen, if (datalen < 3) { logit(LOG_WARNING, 0, "received truncated route report from %s", - inet_fmt(src, s1, sizeof(s1))); + inet_fmt(src)); return; } ((u_char *)&mask)[0] = 0xff; width = 1; @@ -772,8 +772,8 @@ accept_report(u_int32_t src, u_int32_t dst, char *p, int datalen, if (!inet_valid_mask(ntohl(mask))) { logit(LOG_WARNING, 0, "%s reports bogus netmask 0x%08x (%s)", - inet_fmt(src, s1, sizeof(s1)), ntohl(mask), - inet_fmt(mask, s2, sizeof(s2))); + inet_fmt(src), ntohl(mask), + inet_fmt(mask)); return; } datalen -= 3; @@ -782,7 +782,7 @@ accept_report(u_int32_t src, u_int32_t dst, char *p, int datalen, if (datalen < width + 1) { logit(LOG_WARNING, 0, "received truncated route report from %s", - inet_fmt(src, s1, sizeof(s1))); + inet_fmt(src)); return; } origin = 0; @@ -806,13 +806,13 @@ accept_report(u_int32_t src, u_int32_t dst, char *p, int datalen, rt[nrt-1].mask = 0; logit(LOG_DEBUG, 0, "Updating %d routes from %s to %s", nrt, - inet_fmt(src, s1, sizeof(s1)), inet_fmt(dst, s2, sizeof(s2))); + inet_fmt(src), inet_fmt(dst)); for (i = 0; i < nrt; ++i) { if (i != 0 && rt[i].origin == rt[i-1].origin && rt[i].mask == rt[i-1].mask) { logit(LOG_WARNING, 0, "%s reports duplicate route for %s", - inet_fmt(src, s1, sizeof(s1)), - inet_fmts(rt[i].origin, rt[i].mask, s2, sizeof(s2))); + inet_fmt(src), + inet_fmts(rt[i].origin, rt[i].mask)); continue; } update_route(rt[i].origin, rt[i].mask, rt[i].metric, @@ -1101,8 +1101,8 @@ dump_routes(FILE *fp) for (r = routing_table; r != NULL; r = r->rt_next) { fprintf(fp, " %-18s %-15s ", - inet_fmts(r->rt_origin, r->rt_originmask, s1, sizeof(s1)), - (r->rt_gateway == 0) ? "" : inet_fmt(r->rt_gateway, s2, sizeof(s2))); + inet_fmts(r->rt_origin, r->rt_originmask), + (r->rt_gateway == 0) ? "" : inet_fmt(r->rt_gateway)); fprintf(fp, (r->rt_metric == UNREACHABLE) ? " NR " : "%4u ", r->rt_metric); diff --git a/usr.sbin/mrouted/rsrr.c b/usr.sbin/mrouted/rsrr.c index cace3f9f8b7..e9044bca2aa 100644 --- a/usr.sbin/mrouted/rsrr.c +++ b/usr.sbin/mrouted/rsrr.c @@ -1,4 +1,4 @@ -/* $NetBSD: rsrr.c,v 1.8 2003/05/16 18:10:38 itojun Exp $ */ +/* $NetBSD: rsrr.c,v 1.9 2003/05/16 22:59:50 dsl Exp $ */ /* * Copyright (c) 1993, 1998-2001. @@ -179,8 +179,8 @@ rsrr_accept(recvlen) route_query = (struct rsrr_rq *) (rsrr_recv_buf + RSRR_HEADER_LEN); logit(LOG_INFO, 0, "Received Route Query for src %s grp %s notification %d", - inet_fmt(route_query->source_addr.s_addr, s1, sizeof(s1)), - inet_fmt(route_query->dest_addr.s_addr,s2, sizeof(s2)), + inet_fmt(route_query->source_addr.s_addr), + inet_fmt(route_query->dest_addr.s_addr,s2), BIT_TST(rsrr->flags,RSRR_NOTIFICATION_BIT)); /* Send Route Reply to client */ rsrr_accept_rq(route_query,rsrr->flags,NULL); @@ -365,8 +365,8 @@ rsrr_accept_rq(route_query,flags,gt_notify) logit(LOG_INFO, 0, "Send RSRR Route Reply"); logit(LOG_INFO, 0, "for src %s dst %s in vif %d out vif %d\n", - inet_fmt(route_reply->source_addr.s_addr,s1, sizeof(s1)), - inet_fmt(route_reply->dest_addr.s_addr,s2, sizeof(s2)), + inet_fmt(route_reply->source_addr.s_addr,s1), + inet_fmt(route_reply->dest_addr.s_addr,s2), route_reply->in_vif,route_reply->out_vif_bm); /* Send it. */ @@ -487,7 +487,7 @@ rsrr_cache_clean(gt) struct rsrr_cache *rc,*rc_next; printf("cleaning cache for group %s\n", - inet_fmt(gt->gt_mcastgrp, s1, sizeof(s1))); + inet_fmt(gt->gt_mcastgrp)); rc = gt->gt_rsrr_cache; while (rc) { rc_next = rc->next; diff --git a/usr.sbin/mrouted/vif.c b/usr.sbin/mrouted/vif.c index 09d4c376210..5d64eac8aa2 100644 --- a/usr.sbin/mrouted/vif.c +++ b/usr.sbin/mrouted/vif.c @@ -1,4 +1,4 @@ -/* $NetBSD: vif.c,v 1.13 2003/05/16 18:10:38 itojun Exp $ */ +/* $NetBSD: vif.c,v 1.14 2003/05/16 22:59:50 dsl Exp $ */ /* * The mrouted program is covered by the license in the accompanying file @@ -108,11 +108,11 @@ init_vifs(void) if (!(v->uv_flags & VIFF_DOWN)) { if (v->uv_flags & VIFF_TUNNEL) logit(LOG_INFO, 0, "vif #%d, tunnel %s -> %s", vifi, - inet_fmt(v->uv_lcl_addr, s1, sizeof(s1)), - inet_fmt(v->uv_rmt_addr, s2, sizeof(s2))); + inet_fmt(v->uv_lcl_addr), + inet_fmt(v->uv_rmt_addr)); else logit(LOG_INFO, 0, "vif #%d, phyint %s", vifi, - inet_fmt(v->uv_lcl_addr, s1, sizeof(s1))); + inet_fmt(v->uv_lcl_addr)); start_vif2(vifi); } else logit(LOG_INFO, 0, "%s is not yet up; vif #%u not in service", @@ -137,11 +137,11 @@ init_installvifs(void) if (!(v->uv_flags & VIFF_DOWN)) { if (v->uv_flags & VIFF_TUNNEL) logit(LOG_INFO, 0, "vif #%d, tunnel %s -> %s", vifi, - inet_fmt(v->uv_lcl_addr, s1, sizeof(s1)), - inet_fmt(v->uv_rmt_addr, s2, sizeof(s2))); + inet_fmt(v->uv_lcl_addr), + inet_fmt(v->uv_rmt_addr)); else logit(LOG_INFO, 0, "vif #%d, phyint %s", vifi, - inet_fmt(v->uv_lcl_addr, s1, sizeof(s1))); + inet_fmt(v->uv_lcl_addr)); k_add_vif(vifi, &uvifs[vifi]); } else logit(LOG_INFO, 0, "%s is not yet up; vif #%u not in service", @@ -504,7 +504,7 @@ accept_membership_query(u_int32_t src, u_int32_t dst, u_int32_t group, int tmo) (uvifs[vifi].uv_flags & VIFF_TUNNEL)) { logit(LOG_INFO, 0, "ignoring group membership query from non-adjacent host %s", - inet_fmt(src, s1, sizeof(s1))); + inet_fmt(src)); return; } @@ -541,7 +541,7 @@ accept_group_report(u_int32_t src, u_int32_t dst, u_int32_t group, int r_type) (uvifs[vifi].uv_flags & VIFF_TUNNEL)) { logit(LOG_INFO, 0, "ignoring group membership report from non-adjacent host %s", - inet_fmt(src, s1, sizeof(s1))); + inet_fmt(src)); return; } @@ -615,7 +615,7 @@ accept_leave_message(u_int32_t src, u_int32_t dst, u_int32_t group) (uvifs[vifi].uv_flags & VIFF_TUNNEL)) { logit(LOG_INFO, 0, "ignoring group leave report from non-adjacent host %s", - inet_fmt(src, s1, sizeof(s1))); + inet_fmt(src)); return; } @@ -952,7 +952,7 @@ accept_neighbors(u_int32_t src, u_int32_t dst, u_char *p, int datalen, u_int32_t level) { logit(LOG_INFO, 0, "ignoring spurious DVMRP neighbor list from %s to %s", - inet_fmt(src, s1, sizeof(s1)), inet_fmt(dst, s2, sizeof(s2))); + inet_fmt(src), inet_fmt(dst)); } @@ -964,7 +964,7 @@ accept_neighbors2(u_int32_t src, u_int32_t dst, u_char *p, int datalen, u_int32_t level) { logit(LOG_INFO, 0, "ignoring spurious DVMRP neighbor list2 from %s to %s", - inet_fmt(src, s1, sizeof(s1)), inet_fmt(dst, s2, sizeof(s2))); + inet_fmt(src), inet_fmt(dst)); } /* @@ -974,7 +974,7 @@ void accept_info_reply(u_int32_t src, u_int32_t dst, u_char *p, int datalen) { logit(LOG_INFO, 0, "ignoring spurious DVMRP info reply from %s to %s", - inet_fmt(src, s1, sizeof(s1)), inet_fmt(dst, s2, sizeof(s2))); + inet_fmt(src), inet_fmt(dst)); } @@ -1013,7 +1013,7 @@ update_neighbor(vifi_t vifi, u_int32_t addr, int msgtype, char *p, int datalen, addr == v->uv_subnet )) { logit(LOG_WARNING, 0, "received DVMRP message from 'the unknown host' or self: %s", - inet_fmt(addr, s1, sizeof(s1))); + inet_fmt(addr)); return (FALSE); } @@ -1043,7 +1043,7 @@ update_neighbor(vifi_t vifi, u_int32_t addr, int msgtype, char *p, int datalen, do_reset = TRUE; logit(LOG_DEBUG, 0, "version change neighbor %s [old:%d.%d, new:%d.%d]", - inet_fmt(addr, s1, sizeof(s1)), + inet_fmt(addr), n->al_pv, n->al_mv, level&0xff, (level >> 8) & 0xff); n->al_pv = level & 0xff; @@ -1055,7 +1055,7 @@ update_neighbor(vifi_t vifi, u_int32_t addr, int msgtype, char *p, int datalen, * IP address than me, yield querier duties to it. */ logit(LOG_DEBUG, 0, "New neighbor %s on vif %d v%d.%d nf 0x%02x", - inet_fmt(addr, s1, sizeof(s1)), vifi, + inet_fmt(addr), vifi, level & 0xff, (level >> 8) & 0xff, (level >> 16) & 0xff); n = (struct listaddr *)malloc(sizeof(struct listaddr)); @@ -1108,7 +1108,7 @@ update_neighbor(vifi_t vifi, u_int32_t addr, int msgtype, char *p, int datalen, if (datalen < 4) { logit(LOG_WARNING, 0, "received truncated probe message from %s (len %d)", - inet_fmt(addr, s1, sizeof(s1)), datalen); + inet_fmt(addr), datalen); return (FALSE); } @@ -1121,7 +1121,7 @@ update_neighbor(vifi_t vifi, u_int32_t addr, int msgtype, char *p, int datalen, else if (n->al_genid != genid) { logit(LOG_DEBUG, 0, "new genid neigbor %s on vif %d [old:%x, new:%x]", - inet_fmt(addr, s1, sizeof(s1)), vifi, n->al_genid, genid); + inet_fmt(addr), vifi, n->al_genid, genid); n->al_genid = genid; do_reset = TRUE; @@ -1137,7 +1137,7 @@ update_neighbor(vifi_t vifi, u_int32_t addr, int msgtype, char *p, int datalen, if (datalen < 4) { logit(LOG_WARNING, 0, "received truncated probe message from %s (len %d)", - inet_fmt(addr, s1, sizeof(s1)), datalen); + inet_fmt(addr), datalen); return (FALSE); } for (i = 0; i < 4; i++) @@ -1281,13 +1281,13 @@ dump_vifs(FILE *fp) fprintf(fp, "%2u %6s %-15s %6s: %-18s %2u %3u %5u ", vifi, v->uv_name, - inet_fmt(v->uv_lcl_addr, s1, sizeof(s1)), + inet_fmt(v->uv_lcl_addr), (v->uv_flags & VIFF_TUNNEL) ? "tunnel": "subnet", (v->uv_flags & VIFF_TUNNEL) ? - inet_fmt(v->uv_rmt_addr, s2, sizeof(s2)) : - inet_fmts(v->uv_subnet, v->uv_subnetmask, s3, sizeof(s3)), + inet_fmt(v->uv_rmt_addr) : + inet_fmts(v->uv_subnet, v->uv_subnetmask), v->uv_metric, v->uv_threshold, v->uv_rate_limit); @@ -1304,44 +1304,41 @@ dump_vifs(FILE *fp) if (v->uv_addrs != NULL) { fprintf(fp, " alternate subnets: %s\n", inet_fmts(v->uv_addrs->pa_subnet, - v->uv_addrs->pa_subnetmask, s1, sizeof(s1))); + v->uv_addrs->pa_subnetmask)); for (p = v->uv_addrs->pa_next; p; p = p->pa_next) { fprintf(fp, " %s\n", - inet_fmts(p->pa_subnet, p->pa_subnetmask, s1, - sizeof(s1))); + inet_fmts(p->pa_subnet, p->pa_subnetmask)); } } if (v->uv_neighbors != NULL) { fprintf(fp, " peers: %s (%d.%d) (0x%x)\n", - inet_fmt(v->uv_neighbors->al_addr, s1, sizeof(s1)), + inet_fmt(v->uv_neighbors->al_addr), v->uv_neighbors->al_pv, v->uv_neighbors->al_mv, v->uv_neighbors->al_flags); for (a = v->uv_neighbors->al_next; a != NULL; a = a->al_next) { fprintf(fp, " %s (%d.%d) (0x%x)\n", - inet_fmt(a->al_addr, s1, sizeof(s1)), a->al_pv, + inet_fmt(a->al_addr), a->al_pv, a->al_mv, a->al_flags); } } if (v->uv_groups != NULL) { fprintf(fp, " groups: %-15s\n", - inet_fmt(v->uv_groups->al_addr, s1, sizeof(s1))); + inet_fmt(v->uv_groups->al_addr)); for (a = v->uv_groups->al_next; a != NULL; a = a->al_next) { fprintf(fp, " %-15s\n", - inet_fmt(a->al_addr, s1, sizeof(s1))); + inet_fmt(a->al_addr)); } } if (v->uv_acl != NULL) { struct vif_acl *acl; fprintf(fp, " boundaries: %-18s\n", - inet_fmts(v->uv_acl->acl_addr, v->uv_acl->acl_mask, s1, - sizeof(s1))); + inet_fmts(v->uv_acl->acl_addr, v->uv_acl->acl_mask)); for (acl = v->uv_acl->acl_next; acl != NULL; acl = acl->acl_next) { fprintf(fp, " : %-18s\n", - inet_fmts(acl->acl_addr, acl->acl_mask, s1, - sizeof(s1))); + inet_fmts(acl->acl_addr, acl->acl_mask)); } } v_req.vifi = vifi; -- cgit