ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
April 17th, 2024 | 14:30-16:00 SGT (UTC+8) | Online

Wireshark-commits: [Wireshark-commits] master a8562b2: Add handling of OSC over TCP; fix a bug in t

From: Wireshark code review <code-review-do-not-reply@xxxxxxxxxxxxx>
Date: Fri, 28 Mar 2014 18:00:44 +0000 (UTC)
URL: https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=a8562b2a66dcef1214d4585af012fb0544c0497c
Submitter: Bill Meier (wmeier@xxxxxxxxxxx)
Changed: branch: master
Repository: wireshark

Commits:

a8562b2 by Bill Meier (wmeier@xxxxxxxxxxx):

    Add handling of OSC over TCP; fix a bug in the UDP heuristic.
    
    Bug Fixed: UDP heuristic wasn't properly setting the dissector
    for the UDP conversation.
    
    From https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9837#c3:
    
     I did a little survey about alternative OSC transmission, but UDP.
    
     As OSC is packet-based, it is tramitted raw via packet-oriented protocols (e.g. UDP).
    
     For reliable stream-based protocols (TCP, USB), the raw OSC packet is
     prefixed with the packets Int32 size as a packetization scheme.
    
     For unreliable stream-based protocols (RS232 and other serial lines),
     the raw OSC packet is SLIP and/or double SLIP encoded as packetization
     scheme.
    
     There was discussion in the past to make SLIP encoding the default for
     all stream-based protocols, but apparently it has never been adopted
     for any OSC via TCP implementation I've found in the web.
    
     As OSC is used in networked Audio, most implementations run with the
     Nagle algorithm disable, and send the prefixed length and the raw OSC
     packet separately.
    
    Change-Id: Ife690cc5ea0575c65124a7b441431e1cc6ba5091
    Reviewed-on: https://code.wireshark.org/review/858
    Reviewed-by: Bill Meier <wmeier@xxxxxxxxxxx>
    Tested-by: Bill Meier <wmeier@xxxxxxxxxxx>
    

Actions performed:

    from  f7c6254   tvb_get_ascii_string is really expensive. On a large capture file which I profiled in october Fetch cost has gone from 15,6M to 24,2M, changing tvb_get_string() to tvb_get_string_enc() with ENC_UTF_8 where it seems safe helps a bit and should be done any way.
    adds  a8562b2   Add handling of OSC over TCP; fix a bug in the UDP heuristic.


Summary of changes:
 epan/dissectors/packet-osc.c |  118 ++++++++++++++++++++++++++++++++----------
 1 file changed, 92 insertions(+), 26 deletions(-)