Wireshark-commits: [Wireshark-commits] master c06189f: raknet, mcpe: Improve dissectors

From: Wireshark code review <code-review-do-not-reply@xxxxxxxxxxxxx>
Date: Wed, 12 Oct 2016 03:57:23 +0000 (UTC)
URL: https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=c06189f7c6e6e428d914bfabdd96e5de42a2400d
Submitter: Anders Broman (a.broman58@xxxxxxxxx)
Changed: branch: master
Repository: wireshark

Commits:

c06189f by PHO (pho@xxxxxxxxxxxxxx):

    raknet, mcpe: Improve dissectors
    
    packet-raknet.c now correctly dissects the following offline messages:
    * ID_UNCONNECTED_PING
    * ID_UNCONNECTED_PING_OPEN_CONNECTIONS
    * ID_OPEN_CONNECTION_REQUEST_1
    * ID_OPEN_CONNECTION_REPLY_1
    * ID_OPEN_CONNECTION_REQUEST_2
    * ID_OPEN_CONNECTION_REPLY_2
    * ID_OUT_OF_BAND_INTERNAL
    * ID_CONNECTION_ATTEMPT_FAILED
    * ID_ALREADY_CONNECTED
    * ID_NO_FREE_INCOMING_CONNECTIONS
    * ID_CONNECTION_BANNED
    * ID_INCOMPATIBLE_PROTOCOL_VERSION
    * ID_IP_RECENTLY_CONNECTED
    * ID_UNCONNECTED_PONG
    
    packet-raknet.c now correctly dissects the following system messages:
    * ID_CONNECTED_PING
    * ID_CONNECTED_PONG
    * ID_CONNECTION_REQUEST
    * ID_CONNECTION_REQUEST_ACCEPTED
    * ID_NEW_INCOMING_CONNECTION
    
    packet-raknet.h exports the following functions:
    * raknet_add_udp_dissector()
    * raknet_delete_udp_dissector()
    * raknet_conversation_set_dissector()
    
    packet-raknet.c now dissects message flags, reliability, reliable message number and so on. It now reassembles fragmented packets, supports heuristics, supports dissecting combined packets, and gives up dissecting messages when they are encrypted.
    
    packet-raknet.c now calls subdissectors with a tvbuff buffer only having a message ID and payload. It first tries to locate a subdissector based on the port, and then tries heuristic dissectors if any.
    
    packet-mcpe.c is updated so that it uses the new raknet interface, and it now correctly dissects the following game packets:
    * 0x01 Login
    * 0x03 Server to Client Handshake
    * 0x06 Batch
    
    packet-mcpe.c now supports heuristics, and gives up dissecting packets in a conversation once it sees a "Server to Client Handshake" packet because everything, including packet ID, are encrypted after that.
    
    Change-Id: I92c0b3ff0f18d22d4513bb014aeb4ea6475fb06c
    Reviewed-on: https://code.wireshark.org/review/18044
    Petri-Dish: Alexis La Goutte <alexis.lagoutte@xxxxxxxxx>
    Tested-by: Petri Dish Buildbot <buildbot-no-reply@xxxxxxxxxxxxx>
    Reviewed-by: Anders Broman <a.broman58@xxxxxxxxx>
    

Actions performed:

    from  1cd2255   Qt: convert UatDialog to model/view pattern, improve UX
    adds  c06189f   raknet, mcpe: Improve dissectors


Summary of changes:
 epan/dissectors/Makefile.am     |    1 +
 epan/dissectors/packet-mcpe.c   |  792 ++++++++++-----
 epan/dissectors/packet-raknet.c | 2078 +++++++++++++++++++++++++++++++++------
 epan/dissectors/packet-raknet.h |   64 ++
 4 files changed, 2408 insertions(+), 527 deletions(-)
 create mode 100644 epan/dissectors/packet-raknet.h