Ethereal-dev: Re: [Ethereal-dev] Help needed....
On Thu, 14 Apr 2005, nimalan s wrote:
> Hi,
> I am creating a customised protocol dissector on top
> of UDP.I have some basic doubts,in my protocol there
> is a particular field say parametertype which contains
> about seven types.The next field to it is parameter
> length which is of variable lengths(can be from 2 to
> 254 bytes) follwed by data field of length specified
> by parameter length.
So a basic "Tag, Length, Value" schema.
> Again after this I have the same
> set repeated from param type,length and data untill
> the end of the packet.(packet size not known)
Loop
> 1.could any one tell me  how to use byte accessors to
> get data of these variable lengths.ie..,(which of the
> tvb_get_*** to use).
    length = tvb_get_guint8(tvb, offset);
    offset++;
    if (tree) proto_tree_add_item(proto_tree, hf_data, tvb, offset, length, FALSE);
    offset += length;
where
    static hf_register_info hf[] =
      ......
      {
        &hf_data,
        {
          "Data", "proto.data",
          FT_BYTES, BASE_HEX,
          NULL, 0,
          "data", HFILL
        }
      },
      .......
> 2.How to return back  to next param type routine,
> again after dissecting param data.
  while(tvb_length_remaining(tvb, offset) > 0)
  {
    Dissect
  }
Hope it helps
Jaap