thanks Jaap.

Now that tvb_length() and tvb_reported_length() are different. Could you please 
tell me which one I need to use?
As shown in the following picture, 
|-----------------------------------------------------
|                                        |
| ... | ... | total length| ...    |    IP header
|--------------------------------|--------------------
|                                        |
|         ................               |   IP Pay Load
|                                        |
|  ...........      | byte to read||
|--------------------------------|--------------------

The situation is: I need to read the last byte of the packet, the last byte 
containing a length value, we can say such as 10 bytes, and then I need to move 
back 10 bytes from the end of last byte, and here is my dissector start to work 
location. 

 What I thought is: to get the IP_total_length first, and then to get to the 
"byte to read" location. --- Is that correct? or any other ways to do it? I 
still don't know how to do it yet.

Is there any doc or sample code I can refer to?

Thanks a lot, I do appreciate your help

John




> Date: Fri, 24 Jun 2011 09:33:15 +0200
> From: jaap.keu...@xs4all.nl
> To: wireshark-dev@wireshark.org
> Subject: Re: [Wireshark-dev] how to extract "IP.len" (IP_total length) to my 
> local variable in my dissector?
> 
> On 06/24/2011 09:13 AM, John x wrote:
> > Hi, folks,
> > 
> > I am developing a dissector, my tasks are:
> > 
> > 1. to get the “ip.len” (the total length in IP header),
> > 2. using the ip.len to know how long the packet would be and extract the 
> > last 
> > byte to my local variable.
> > 
> > *Could you guys please tell me how to get the IP’s total length from IP 
> > header? *
> > *How to extract the last byte of my packet? *
> > 
> > Any suggestions or advices would be appreciated.
> > 
> > Thanks for your help
> > John
> > 
> 
> So your dissector sits on top of the IP dissector. It gets a TVB (Testy, 
> Virtual
> Buffer) with the IP packet data. Then you can use all the wonderful functions 
> in
> epan/tvbuff.h to get access to that (meta-)data.
> Like tvb_length() and tvb_reported_length().
> 
> Two things: Never go into the TVB data directly, always find the proper access
> function. Be aware that captured packets can be cut short, so the length you
> have (tvb_length) might be smaller than the original (tvb_reported_length).
> 
> Thanks,
> Jaap
> ___________________________________________________________________________
> Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
> Archives:    http://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
>              mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe
                                          
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to