From b0c598ff8d03a57627a5335448a8a60f0950f4f7 Mon Sep 17 00:00:00 2001 From: Wichert Akkerman Date: Mon, 1 Apr 2002 12:48:06 +0000 Subject: [PATCH] decode packet options --- ChangeLog | 4 ++++ net.c | 36 ++++++++++++++++++++++++++++++++---- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index e09cf619..db8bdfe2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2002-04-01 Wichert Akkerman + + * net.c: decode packet options + 2002-03-31 Wichert Akkerman * linux/{alpha,hppa,ia64,mips,powerpc,sparc}/syscallent.h: regenerated diff --git a/net.c b/net.c index 3da89945..068f84cf 100644 --- a/net.c +++ b/net.c @@ -597,6 +597,33 @@ static struct xlat icmpfilterflags[] = { }; #endif /* SOL_RAW */ +#if defined(AF_PACKET) /* from e.g. linux/if_packet.h */ +static struct xlat af_packet_types[] = { +#if defined(PACKET_HOST) + { PACKET_HOST, "PACKET_HOST" }, +#endif +#if defined(PACKET_BROADCAST) + { PACKET_BROADCAST, "PACKET_BROADCAST" }, +#endif +#if defined(PACKET_MULTICAST) + { PACKET_MULTICAST, "PACKET_MULTICAST" }, +#endif +#if defined(PACKET_OTHERHOST) + { PACKET_OTHERHOST, "PACKET_OTHERHOST" }, +#endif +#if defined(PACKET_OUTGOING) + { PACKET_OUTGOING, "PACKET_OUTGOING" }, +#endif +#if defined(PACKET_LOOPBACK) + { PACKET_LOOPBACK, "PACKET_LOOPBACK" }, +#endif +#if defined(PACKET_FASTROUTE) + { PACKET_FASTROUTE, "PACKET_FASTROUTE" }, +#endif + { 0, NULL }, +}; +#endif /* defined(AF_PACKET) */ + void printsock(tcp, addr, addrlen) @@ -709,13 +736,14 @@ int addrlen; case AF_PACKET: { int i; - tprintf("proto=%#04x, if%d, pkttype=%d, addr(%d)={%d, ", + tprintf("proto=%#04x, if%d, pkttype=", ntohs(addrbuf.ll.sll_protocol), - addrbuf.ll.sll_ifindex, - addrbuf.ll.sll_pkttype, + addrbuf.ll.sll_ifindex); + printxval(af_packet_types, addrbuf.ll.sll_pkttype, "?"); + tprintf(", addr(%d)={%d, ", addrbuf.ll.sll_halen, addrbuf.ll.sll_hatype); - for (i=0; i