Hi
add AFP3 setforkparam 64 bits parameters.

Didier
Index: packet-afp.c
===================================================================
RCS file: /cvsroot/ethereal/packet-afp.c,v
retrieving revision 1.27
diff -u -r1.27 packet-afp.c
--- packet-afp.c        19 Jan 2003 21:21:32 -0000      1.27
+++ packet-afp.c        12 Feb 2003 20:48:35 -0000
@@ -293,6 +296,7 @@
 
 static int hf_afp_last_written64       = -1;
 
+static int hf_afp_ofork_len64           = -1;
 static int hf_afp_session_token_type   = -1;
 static int hf_afp_session_token_len    = -1;
 static int hf_afp_session_token                = -1;
@@ -2561,17 +2565,24 @@
 static gint
 dissect_query_afp_set_fork_param(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, 
gint offset)
 {
+       guint16 bitmap;
 
        PAD(1);
         add_info_fork(tvb, pinfo, offset);
        proto_tree_add_item(tree, hf_afp_ofork, tvb, offset, 2,FALSE);
        offset += 2;
 
-       decode_file_bitmap(tree, tvb, offset);
+       bitmap = decode_file_bitmap(tree, tvb, offset);
        offset += 2;
 
-       proto_tree_add_item(tree, hf_afp_ofork_len, tvb, offset, 4,FALSE);
-       offset += 4;
+       if ((bitmap & kFPExtDataForkLenBit) || (bitmap & kFPExtRsrcForkLenBit)) {
+               proto_tree_add_item(tree, hf_afp_ofork_len64, tvb, offset, 8, FALSE);
+               offset += 8;
+       }
+       else {
+               proto_tree_add_item(tree, hf_afp_ofork_len, tvb, offset, 4,FALSE);
+               offset += 4;
+       }
        return offset;
 }
 
@@ -4393,6 +4404,10 @@
                FT_UINT64, BASE_DEC, NULL, 0x0,
        "Offset of the last byte written (64 bits)", HFILL }},
 
+    { &hf_afp_ofork_len64,
+      { "New length",         "afp.ofork_len64",
+               FT_INT64, BASE_DEC, NULL, 0x0,
+       "New length (64 bits)", HFILL }},
     { &hf_afp_session_token_type,
       { "Type",         "afp.session_token_type",
                FT_UINT16, BASE_HEX, NULL, 0x0,

Reply via email to