diff options
Diffstat (limited to 'net/tcpdump/files/patch-print-ppp.c')
-rw-r--r-- | net/tcpdump/files/patch-print-ppp.c | 227 |
1 files changed, 0 insertions, 227 deletions
diff --git a/net/tcpdump/files/patch-print-ppp.c b/net/tcpdump/files/patch-print-ppp.c deleted file mode 100644 index f8161fdd822a..000000000000 --- a/net/tcpdump/files/patch-print-ppp.c +++ /dev/null @@ -1,227 +0,0 @@ ---- print-ppp.c.orig Wed Mar 24 03:32:43 2004 -+++ print-ppp.c Sun Jan 23 00:26:26 2005 -@@ -89,6 +89,7 @@ - { PPP_IPXCP, "IPXCP" }, - { PPP_STIICP, "STIICP" }, - { PPP_VINESCP, "VINESCP" }, -+ { PPP_IPV6CP, "IP6CP" }, - { PPP_MPLSCP, "MPLSCP" }, - - { PPP_LCP, "LCP" }, -@@ -211,7 +212,6 @@ - "PPP-Muxing", /* (30) */ - }; - --/* IPV6CP - to be supported */ - /* ECP - to be supported */ - - /* CCP Config Options */ -@@ -275,17 +275,36 @@ - /* SDCP - to be supported */ - - /* IPCP Config Options */ -- - #define IPCPOPT_2ADDR 1 /* RFC1172, RFC1332 (deprecated) */ - #define IPCPOPT_IPCOMP 2 /* RFC1332 */ - #define IPCPOPT_ADDR 3 /* RFC1332 */ - #define IPCPOPT_MOBILE4 4 /* RFC2290 */ -- - #define IPCPOPT_PRIDNS 129 /* RFC1877 */ - #define IPCPOPT_PRINBNS 130 /* RFC1877 */ - #define IPCPOPT_SECDNS 131 /* RFC1877 */ - #define IPCPOPT_SECNBNS 132 /* RFC1877 */ - -+struct tok ipcpopt_values[] = { -+ { IPCPOPT_2ADDR, "IP-Addrs" }, -+ { IPCPOPT_IPCOMP, "IP-Comp" }, -+ { IPCPOPT_ADDR, "IP-Addr" }, -+ { IPCPOPT_MOBILE4, "Home-Addr" }, -+ { IPCPOPT_PRIDNS, "Pri-DNS" }, -+ { IPCPOPT_PRINBNS, "Pri-NBNS" }, -+ { IPCPOPT_SECDNS, "Sec-DNS" }, -+ { IPCPOPT_SECNBNS, "Sec-NBNS" }, -+ { 0, NULL } -+}; -+ -+ -+/* IP6CP Config Options */ -+#define IP6CP_IFID 1 -+ -+struct tok ip6cpopt_values[] = { -+ { IP6CP_IFID, "Interface-ID" }, -+ { 0, NULL } -+}; -+ - /* ATCP - to be supported */ - /* OSINLCP - to be supported */ - /* BVCP - to be supported */ -@@ -366,6 +385,7 @@ - static void handle_bap (const u_char *p, int length); - static int print_lcp_config_options (const u_char *p, int); - static int print_ipcp_config_options (const u_char *p, int); -+static int print_ip6cp_config_options (const u_char *p, int); - static int print_ccp_config_options (const u_char *p, int); - static int print_bacp_config_options (const u_char *p, int); - static void handle_ppp (u_int proto, const u_char *p, int length); -@@ -382,7 +402,7 @@ - - tptr=pptr; - -- typestr = tok2str(ppptype2str, "unknown", proto); -+ typestr = tok2str(ppptype2str, "unknown ctrl-proto (0x%04x)", proto); - printf("%s, ",typestr); - - if (length < 4) /* FIXME weak boundary checking */ -@@ -401,7 +421,7 @@ - tptr += 2; - - if (length <= 4) -- return; /* there may be a NULL confreq etc. */ -+ goto print_len_and_return; /* there may be a NULL confreq etc. */ - - switch (code) { - case CPCODES_VEXT: -@@ -427,6 +447,9 @@ - case PPP_IPCP: - pfunc = print_ipcp_config_options; - break; -+ case PPP_IPV6CP: -+ pfunc = print_ip6cp_config_options; -+ break; - case PPP_CCP: - pfunc = print_ccp_config_options; - break; -@@ -492,6 +515,8 @@ - print_unknown_data(pptr-2,"\n\t",length+2); - break; - } -+ -+ print_len_and_return: - printf(", length %u", length); - - if (vflag >1) -@@ -902,61 +927,41 @@ - opt = p[0]; - if (length < len) - return 0; -+ -+ printf(", %s (0x%02x) ", -+ tok2str(ipcpopt_values,"unknown",opt), -+ opt); -+ - switch (opt) { - case IPCPOPT_2ADDR: /* deprecated */ - if (len != 10) - goto invlen; - TCHECK2(*(p + 6), 4); -- printf(", IP-Addrs src %s, dst %s", -+ printf("src %s, dst %s", - ipaddr_string(p + 2), - ipaddr_string(p + 6)); - break; - case IPCPOPT_IPCOMP: - if (len < 4) - goto invlen; -- printf(", IP-Comp"); - TCHECK2(*(p + 2), 2); - if (EXTRACT_16BITS(p + 2) == PPP_VJC) { -- printf(" VJ-Comp"); -+ printf("VJ-Comp"); - /* XXX: VJ-Comp parameters should be decoded */ - } else -- printf(" unknown-comp-proto=%04x", EXTRACT_16BITS(p + 2)); -- break; -- case IPCPOPT_ADDR: -- if (len != 6) -- goto invlen; -- TCHECK2(*(p + 2), 4); -- printf(", IP-Addr %s", ipaddr_string(p + 2)); -+ printf("unknown-comp-proto %04x", EXTRACT_16BITS(p + 2)); - break; -+ -+ case IPCPOPT_ADDR: /* those options share the same format - fall through */ - case IPCPOPT_MOBILE4: -- if (len != 6) -- goto invlen; -- TCHECK2(*(p + 2), 4); -- printf(", Home-Addr %s", ipaddr_string(p + 2)); -- break; - case IPCPOPT_PRIDNS: -- if (len != 6) -- goto invlen; -- TCHECK2(*(p + 2), 4); -- printf(", Pri-DNS %s", ipaddr_string(p + 2)); -- break; - case IPCPOPT_PRINBNS: -- if (len != 6) -- goto invlen; -- TCHECK2(*(p + 2), 4); -- printf(", Pri-NBNS %s", ipaddr_string(p + 2)); -- break; - case IPCPOPT_SECDNS: -- if (len != 6) -- goto invlen; -- TCHECK2(*(p + 2), 4); -- printf(", Sec-DNS %s", ipaddr_string(p + 2)); -- break; - case IPCPOPT_SECNBNS: - if (len != 6) - goto invlen; - TCHECK2(*(p + 2), 4); -- printf(", Sec-NBNS %s", ipaddr_string(p + 2)); -+ printf("%s", ipaddr_string(p + 2)); - break; - default: - printf(", unknown-%d", opt); -@@ -972,6 +977,51 @@ - printf("[|ipcp]"); - return 0; - } -+ -+/* IP6CP config options */ -+static int -+print_ip6cp_config_options(const u_char *p, int length) -+{ -+ int len, opt; -+ -+ if (length < 2) -+ return 0; -+ TCHECK2(*p, 2); -+ len = p[1]; -+ opt = p[0]; -+ if (length < len) -+ return 0; -+ -+ printf(", %s (0x%02x) ", -+ tok2str(ip6cpopt_values,"unknown",opt), -+ opt); -+ -+ switch (opt) { -+ case IP6CP_IFID: -+ if (len != 10) -+ goto invlen; -+ TCHECK2(*(p + 2), 8); -+ printf("%04x:%04x:%04x:%04x", -+ EXTRACT_16BITS(p + 2), -+ EXTRACT_16BITS(p + 4), -+ EXTRACT_16BITS(p + 6), -+ EXTRACT_16BITS(p + 8)); -+ break; -+ default: -+ printf(", unknown-%d", opt); -+ break; -+ } -+ return len; -+ -+invlen: -+ printf(", invalid-length-%d", opt); -+ return 0; -+ -+trunc: -+ printf("[|ip6cp]"); -+ return 0; -+} -+ - - /* CCP config options */ - static int |