Wireshark-dev: Re: [Wireshark-dev] Source, Destination, Protocol, Info columns values missing.
From: Guy Harris <[email protected]>
Date: Fri, 9 Jun 2006 16:23:42 -0700
On Jun 9, 2006, at 3:29 PM, Ravi Kondamuru wrote:

I applied the patch of the changes I have been working on ethereal on to wireshark. I am seeing some wierd behavior. On the packet- list pane, I can only see the values of No. and Time. The remainder of the columns are empty. However the remainder of the 2 panes: detailed protocol info and hex dump of packet panes have the correct info.
If I apply a filter and select a subset or all of the packets in  
the packet-list, it then starts to show all the columns. When I  
clear the filter, its back to showing only the No and Time columns.  
What are the functions called for displaying the full packet-list  
and a filtered packet-list.
Any other ideas why this could be happening?
For a filtered packet list, the dissectors are called with a non-null  
"tree" argument.
For a full packet list, the dissectors might be called with a null  
"tree" argument, because it might not be necessary to do a full  
dissection of the packet.
This means that if a dissector calls a subdissector, it must

			*A*L*W*A*Y*S*

call that subdissector, *regardless* of whether the "tree" argument is null or not. Code that does
	dissect_myprotocol(...)
	{
		set the columns;

			...

		if (!tree)
			return;

			...

		call a subdissector;
	}

or

	dissect_myprotocol(...)
	{
		set the columns;

			...

		if (tree) {

			...

			call a subdissector;
		}
	}

is not valid code.