Ethereal-dev: [ethereal-dev] On the fly registering of a dissector and a port

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

Date: Tue, 16 May 2000 13:56:28 +0200
Hi

For implementing the H.323 dissector I have to dissect the H.245 protocol.
Unfortunbately this protocol is NOT bound to a known tcp port. This 
information is exchanged between two machines using the H.225 protocol.
Unfortunately after that time I only know one IP address and corresponding 
port number.

What I want to do is this:
- When I receive a H245 adresss and port I call dissector_add() with the 
  correct port number
- I also call conversation_new() with the correct port and adress and some 
  garbage to fill in either dest or src.
- If the H.245 is called to dissect a frame it checks for a known 
  conversation. If the conversation is not known it stops.

Is it safe to call dissector_add() several times with the same port number?

How can I find out if there two or more conversations with the same 
portnumber? What I want to do is to call dissector_delete() (or simliar)
when the last conversation with a certain portnumber has stopped.

I could skip the last step, so the problem becomes  significantly smaller, 
but the first question remains. Can I call dissector_add during dissection?

-- 
Andreas Sikkema
andreas.sikkema@xxxxxxxxxxx
"Standing barefoot in a river of clues, most people would 
         not get their toes wet." - Brian Kantor in a.s.r.