Guy,


Just tested this and it works fine (much nicer than the "hack").
Patch to update sip to drop the registering and adding the heur_dissector_add
attached.

Thanks,
    Ruud

Guy Harris wrote:

On Friday, August 1, 2003, at 2:18 AM, Ruud Linders wrote:


Good point, currently we are using a hack in packet-sctp which checks
for PPI=0  (=NOT_SPECIFIED_PROTOCOL_ID) and just calls the sip decoder.
The src/dst port is both 1 which is also not very distinctive so that
would leave a heuristic approach.


I've just checked in a change to give the SCTP dissector a heuristic subdissector list (named, in an extraordinary burst of creativity, "sctp"), so adding

heur_dissector_add( "sctp", dissect_sip_heur, proto_sip );

to "proto_reg_handoff_sip()" should register it as a heuristic subdissector of SCTP.

Try that, with the current CVS version of packet-sctp.c (without the hack checking for PPI=0), and see if that works. If it does, we should remove the registering of the SIP dissector, and replace it with the version that adds it as a heuristic subdissector of SCTP.

--- packet-sip.c.0804   Thu Jul 31 20:14:02 2003
+++ packet-sip.c        Mon Aug  4 13:04:59 2003
@@ -956,8 +956,6 @@
         proto_register_field_array(proto_sip, hf, array_length(hf));
         proto_register_subtree_array(ett, array_length(ett));
 
-        /* Register the dissector so it can be called from other protocols */
-        register_dissector("sip", dissect_sip, proto_sip);
 }
 
 void
@@ -971,6 +969,7 @@
 
         heur_dissector_add( "udp", dissect_sip_heur, proto_sip );
         heur_dissector_add( "tcp", dissect_sip_heur, proto_sip );
+       heur_dissector_add( "sctp", dissect_sip_heur, proto_sip );
 
         /*
          * Get a handle for the SDP dissector.

Reply via email to