Comment # 6
on bug 10805
from Yang Liu
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.