[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ethereal-dev
Subject:    [Ethereal-dev] patch for packet-icmp6.c - to show a reserved field in a ICMPv6 redirect
From:       Yaniv Kaul <ykaul () checkpoint ! com>
Date:       2003-04-28 11:19:31
[Download RAW message or body]

It checks if the reserved field equals zero, as dictated by the RFC and 
displays it.
Attached diff against 0.9.11:

--- packet-icmpv6.c.orig        Mon Apr 28 14:01:47 2003
+++ packet-icmpv6.c     Mon Apr 28 14:01:52 2003
@@ -147,6 +147,8 @@
     struct nd_opt_hdr nd_opt_hdr, *opt;
     int len;
     char *typename;
+    static const guint8 nd_redirect_reserved[6] = {0, 0, 0, 0, 0, 0};
+    guint8 nd_redirect_res[6];

     if (!tree)
        return;
@@ -272,6 +274,13 @@
        break;
       }
     case ND_OPT_REDIRECTED_HEADER:
+       tvb_memcpy(tvb, (guint8 *)&nd_redirect_res, offset + 2, 6);
+       if (memcmp(nd_redirect_res, nd_redirect_reserved, 6) == 0)
+          proto_tree_add_text(icmp6opt_tree, tvb,
+           offset + 2, 6, "Reserved: 0 (correct)");
+       else
+          proto_tree_add_text(icmp6opt_tree, tvb,
+           offset +2, 6, "Reserved: MUST be 0 (incorrect!)");
        proto_tree_add_text(icmp6opt_tree, tvb,
            offset + 8, (opt->nd_opt_len << 3) - 8, "Redirected packet");
        dissect_contained_icmpv6(tvb, offset + 8, pinfo, icmp6opt_tree);


["packet-icmp6.c.diff" (text/plain)]

--- packet-icmpv6.c.orig	Mon Apr 28 14:01:47 2003
+++ packet-icmpv6.c	Mon Apr 28 14:01:52 2003
@@ -147,6 +147,8 @@
     struct nd_opt_hdr nd_opt_hdr, *opt;
     int len;
     char *typename;
+    static const guint8 nd_redirect_reserved[6] = {0, 0, 0, 0, 0, 0};
+    guint8 nd_redirect_res[6];
 
     if (!tree)
 	return;
@@ -272,6 +274,13 @@
 	break;
       }
     case ND_OPT_REDIRECTED_HEADER:
+	tvb_memcpy(tvb, (guint8 *)&nd_redirect_res, offset + 2, 6);
+	if (memcmp(nd_redirect_res, nd_redirect_reserved, 6) == 0)
+	   proto_tree_add_text(icmp6opt_tree, tvb,
+	    offset + 2, 6, "Reserved: 0 (correct)");
+	else
+	   proto_tree_add_text(icmp6opt_tree, tvb,
+	    offset +2, 6, "Reserved: MUST be 0 (incorrect!)");	
 	proto_tree_add_text(icmp6opt_tree, tvb,
 	    offset + 8, (opt->nd_opt_len << 3) - 8, "Redirected packet");
 	dissect_contained_icmpv6(tvb, offset + 8, pinfo, icmp6opt_tree);

_______________________________________________
Ethereal-dev mailing list
Ethereal-dev@ethereal.com
http://www.ethereal.com/mailman/listinfo/ethereal-dev

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic