ipfilter: Reliably print the interface name
When printing the interface name from the ipstate_t struct the interface name in is_ifp may not always be avaiable when reading it from kmem (tested on FreeBSD and NetBSD). However the is_ifname (the interface name character string) is almost always available -- it is not available when the source of the packet is a process running on the firewall itself. Rather than print both interface name strings, print only the one. MFC after: 1 week
This commit is contained in:
parent
ec793543fe
commit
93c1048a13
@ -184,23 +184,19 @@ printstate(ipstate_t *sp, int opts, u_long now)
|
|||||||
PRINTF("\tis_flx %#x %#x %#x %#x\n", sp->is_flx[0][0],
|
PRINTF("\tis_flx %#x %#x %#x %#x\n", sp->is_flx[0][0],
|
||||||
sp->is_flx[0][1], sp->is_flx[1][0], sp->is_flx[1][1]);
|
sp->is_flx[0][1], sp->is_flx[1][0], sp->is_flx[1][1]);
|
||||||
}
|
}
|
||||||
PRINTF("\tinterfaces: in %s[%s", getifname(sp->is_ifp[0]),
|
PRINTF("\tinterfaces: in %s", FORMAT_IF(sp->is_ifname[0]));
|
||||||
sp->is_ifname[0]);
|
|
||||||
if (opts & OPT_DEBUG)
|
if (opts & OPT_DEBUG)
|
||||||
PRINTF("/%p", sp->is_ifp[0]);
|
PRINTF("/%p", sp->is_ifp[0]);
|
||||||
putchar(']');
|
PRINTF(",%s", FORMAT_IF(sp->is_ifname[1]));
|
||||||
PRINTF(",%s[%s", getifname(sp->is_ifp[1]), sp->is_ifname[1]);
|
|
||||||
if (opts & OPT_DEBUG)
|
if (opts & OPT_DEBUG)
|
||||||
PRINTF("/%p", sp->is_ifp[1]);
|
PRINTF("/%p", sp->is_ifp[1]);
|
||||||
putchar(']');
|
PRINTF(" out %s", FORMAT_IF(sp->is_ifname[2]));
|
||||||
PRINTF(" out %s[%s", getifname(sp->is_ifp[2]), sp->is_ifname[2]);
|
|
||||||
if (opts & OPT_DEBUG)
|
if (opts & OPT_DEBUG)
|
||||||
PRINTF("/%p", sp->is_ifp[2]);
|
PRINTF("/%p", sp->is_ifp[2]);
|
||||||
putchar(']');
|
PRINTF(",%s", FORMAT_IF(sp->is_ifname[3]));
|
||||||
PRINTF(",%s[%s", getifname(sp->is_ifp[3]), sp->is_ifname[3]);
|
|
||||||
if (opts & OPT_DEBUG)
|
if (opts & OPT_DEBUG)
|
||||||
PRINTF("/%p", sp->is_ifp[3]);
|
PRINTF("/%p", sp->is_ifp[3]);
|
||||||
PRINTF("]\n");
|
PRINTF("\n");
|
||||||
|
|
||||||
PRINTF("\tSync status: ");
|
PRINTF("\tSync status: ");
|
||||||
if (sp->is_sync != NULL) {
|
if (sp->is_sync != NULL) {
|
||||||
|
Loading…
Reference in New Issue
Block a user