Wireshark-bugs: [Wireshark-bugs] [Bug 10805] Websocket dissector does not find subdissector corr

Date: Wed, 31 Dec 2014 06:36:54 +0000

Comment # 6 on bug 10805 from
I am trying to create a dissector above websocket protocol, but websocket
didn't pass payload to my dissector each time. my protocol is running on port
32123, each time websocket dissector is called pinfo->match_uint = 6, so my
dissector never called.

I guess here pinfo->match_uint could be used only if "we.port" is defined in
websocket dissector, but I didn't find it.

handle = dissector_get_uint_handle(port_subdissector_table,
pinfo->match_uint);



(In reply to Martin Kaiser from comment #5)
> > File packet-websocket.c
> > 
> > Websocket dissector registered dissector table port_subdissector_table
> > 
> > 
> > port_subdissector_table = register_dissector_table("ws.port",
> >       "TCP port for protocols using WebSocket", FT_UINT16, BASE_DEC);
> > 
> > 
> > but no "ws.port" defined in websocket protocol.
> 
> That's true. Nobody adds an entry to the table. But it's not a bug.
> 
> > When finding subdissector using:
> > 
> > 
> > 
> > handle = dissector_get_uint_handle(port_subdissector_table,
> > pinfo->match_uint);
> > 
> > 
> > 
> > pinfo->match_uint value is not correct.
> 
> That's what I thought as well. But I think I was wrong. match_uint is the
> port that was used by the previous dissector for selecting websocket. We're
> using the same port for finding the next dissector. 
> 
> If http is on port 80 and http passed the packet to websocket, we check if
> an upper layer protocol registered itselft for websocket payload on port 80.


You are receiving this mail because:
  • You are watching all bug changes.