summaryrefslogtreecommitdiff
path: root/usr/src/cmd/ipf
diff options
context:
space:
mode:
authorDarren Reed <Darren.Reed@Sun.COM>2008-12-28 18:54:41 -0800
committerDarren Reed <Darren.Reed@Sun.COM>2008-12-28 18:54:41 -0800
commit43412a427a2387ef15ab084d8f30a56a13e32cf7 (patch)
treee96801ee3ddd4330ecbc5113a9b9df67d67268b3 /usr/src/cmd/ipf
parent7c2fbfb345896881c631598ee3852ce9ce33fb07 (diff)
downloadillumos-joyent-43412a427a2387ef15ab084d8f30a56a13e32cf7.tar.gz
6749429 printing out of fragment information is confused
6749445 ipfstat -f does not show ttl but rather expiration tick 6783820 IPF preauth crash 6730356 legacy test regressions: i2, i4, i11
Diffstat (limited to 'usr/src/cmd/ipf')
-rw-r--r--usr/src/cmd/ipf/lib/common/printfraginfo.c4
-rw-r--r--usr/src/cmd/ipf/tools/ipfstat.c9
2 files changed, 8 insertions, 5 deletions
diff --git a/usr/src/cmd/ipf/lib/common/printfraginfo.c b/usr/src/cmd/ipf/lib/common/printfraginfo.c
index 557b031a6b..0dc5f56576 100644
--- a/usr/src/cmd/ipf/lib/common/printfraginfo.c
+++ b/usr/src/cmd/ipf/lib/common/printfraginfo.c
@@ -21,7 +21,7 @@ struct ipfr *ifr;
sizeof(fr)) == -1)
return;
printf("%s id %d ttl %d pr %d seen0 %d ifp %p tos %#02x = %#x\n",
- hostname(4, &ifr->ipfr_dst), ifr->ipfr_id, ifr->ipfr_seen0,
- ifr->ipfr_ttl, ifr->ipfr_p, ifr->ipfr_ifp, ifr->ipfr_tos,
+ hostname(4, &ifr->ipfr_dst), ifr->ipfr_id, ifr->ipfr_ttl,
+ ifr->ipfr_p, ifr->ipfr_seen0, ifr->ipfr_ifp, ifr->ipfr_tos,
fr.fr_flags);
}
diff --git a/usr/src/cmd/ipf/tools/ipfstat.c b/usr/src/cmd/ipf/tools/ipfstat.c
index 1262b86921..27b018e273 100644
--- a/usr/src/cmd/ipf/tools/ipfstat.c
+++ b/usr/src/cmd/ipf/tools/ipfstat.c
@@ -131,7 +131,7 @@ typedef struct statetop {
int main __P((int, char *[]));
static void showstats __P((friostat_t *, u_32_t));
-static void showfrstates __P((ipfrstat_t *));
+static void showfrstates __P((ipfrstat_t *, u_long));
static void showlist __P((friostat_t *));
static void showipstates __P((ips_stat_t *));
static void showauthstates __P((fr_authstat_t *));
@@ -385,7 +385,7 @@ char *argv[];
showlist(fiop);
}
} else if (opts & OPT_FRSTATES)
- showfrstates(ifrstp);
+ showfrstates(ifrstp, fiop->f_ticks);
#ifdef STATETOP
else if (opts & OPT_STATETOP)
topipstates(saddr, daddr, sport, dport, protocol,
@@ -1565,8 +1565,9 @@ out:
/*
* Show fragment cache information that's held in the kernel.
*/
-static void showfrstates(ifsp)
+static void showfrstates(ifsp, ticks)
ipfrstat_t *ifsp;
+u_long ticks;
{
struct ipfr *ipfrtab[IPFT_SIZE], ifr;
int i;
@@ -1593,6 +1594,7 @@ ipfrstat_t *ifsp;
if (kmemcpy((char *)&ifr, (u_long)ipfrtab[i],
sizeof(ifr)) == -1)
break;
+ ifr.ipfr_ttl -= ticks;
printfraginfo("", &ifr);
ipfrtab[i] = ifr.ipfr_next;
}
@@ -1606,6 +1608,7 @@ ipfrstat_t *ifsp;
if (kmemcpy((char *)&ifr, (u_long)ipfrtab[i],
sizeof(ifr)) == -1)
break;
+ ifr.ipfr_ttl -= ticks;
printfraginfo("NAT: ", &ifr);
ipfrtab[i] = ifr.ipfr_next;
}