Wireshark-dev: Re: [Wireshark-dev] Dissector global variable
From: Hans Glück <hanschris.glueck@xxxxxxxx>
Date: Tue, 1 Jul 2008 18:55:48 +0000 (GMT)
Hi, Ok, I read through the documents but now I think it is not possible to realize my "problem"/task in wireshark. I have a communication on 2-3 channels, ok therefor I could use conversations. But I want also that I can calculate the next expected frame on e.g. channel 1, therefor I extract the actual frame number out of frame n and increase it (="next calculated frame number"). Then I´ll compare the calculated frame number with the frame number of the next received frame n+1 on channel 1. But because of the random access of the capture file I do not know whether the "next calculated frame number" should be the same like the actual frame n+i. I couldn´t find out if the last dissected packet (where I calculate the "next calculated frame number") was really the predecessor of my actual frame. With the help of timestamps I can find out if the last dissected packet was A predecessor but not if it was THE predecessor of my actual frame. I could also check, if frame n-1 was already visited, but that doesn´t helps, too. Am I wrong or is there a possibility? Regards and Thanks Chris ----- Ursprüngliche Mail ---- Von: Jaap Keuter <jaap.keuter@xxxxxxxxx> An: Developer support list for Wireshark <wireshark-dev@xxxxxxxxxxxxx> Gesendet: Montag, den 30. Juni 2008, 19:44:30 Uhr Betreff: Re: [Wireshark-dev] Dissector global variable Hi, A global variable won't work for two reasons: 1. The capture file is accessed randomly. 2. You might have multiple exchanges you need to follow. To tackle point 2 you can use conversations. Read about them in README.developer. To collect and keep track of protocol data across packets have a look at README.request_response_tracking. Thanx, Jaap Hans Glück wrote: > Hello, > > I´m writing a dissector and I want to implement "error recovery mode"/"flow control", therefor I need two gloabl variables where I can store some values (-> "next_expected_frame_to_be_recieved" and "next_expected_frame_to_be_send"). > I declared them at the beginning of my c-file: > static guint8 next_expected_frame_to_be_recieved = 0; > static guint8 next_expected_frame_to_be_send = 0; > > And I set value of this variables in my dissector code: > static void dissect_mux27010(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){ > ... > if (received_successful()) { > next_expected_frame_to_be_recieved++; > } > ... > } > > My problem is: Every time I click in Wireshark at packet the value is increased e.g. > click first packet -> next_expected_frame_to_be_recieved == 1 > click second packet -> next_expected_frame_to_be_recieved == 2 > click first packet -> next_expected_frame_to_be_recieved == 3 > click second packet -> next_expected_frame_to_be_recieved == 4 > > But what I want is that the variables are increased step-by-step/ ordered (if packet n is an ACK -> increase; if packet n+1 is an ACK -> increase...) > How can I realize this? > > Thanks for any advice. > Chris > _______________________________________________ Wireshark-dev mailing list Wireshark-dev@xxxxxxxxxxxxx https://wireshark.org/mailman/listinfo/wireshark-dev __________________________________________________________ Gesendet von Yahoo! Mail. Dem pfiffigeren Posteingang. http://de.overview.mail.yahoo.com
- Prev by Date: [Wireshark-dev] reassemble packets
- Next by Date: [Wireshark-dev] Script using tshark
- Previous by thread: [Wireshark-dev] reassemble packets
- Next by thread: [Wireshark-dev] Script using tshark
- Index(es):