Warning: Can't synchronize with the repository (Unsupported version control system "svn": "/usr/lib64/libsvn_ra_neon-1.so.0: undefined symbol: svn_compat_wrap_file_rev_handler" ). Look in the Trac log for more information.

Message 0x56

Complaint List

0x56 Structure

Type Description Offset
uint32_t type 0
uint16_t sub-type 4
uint16_t empty 6
uint16_t against user_id 8 Subtype 1 only, Empty Otherwise
uint16_t empty 10
uint32_t empty 12
uint32_t big-endian unix timestamp 16 Subtype 3 Only, Empty Otherwise
uint32_t empty 20
uint32_t empty 24 Subtype 1 Only
VentriloNetString complaint message 28 Subtype 1 Only
VentriloNetString against username 24 Subtype 3 Only
VentriloNetString by username (after against user) Subtype 3 Only
VentriloNetString complaint message (after by user) Subtype 3 Only

Subtypes

Sub-Type Description
0x00 Open Complaint List
0x01 Send Complaint
0x02 Flush Complaints
0x03 Receive Complaint

Notes

When a user sends a complaint, every admin with rights immediately receives it. 
By default, Ventrilo has 'Auto open' checked in the complaint window, so it opens immediately.
Auto open is a client side only setting.

Offsets 24+ only exist in subtypes 1 and 3
Offset 24 is a uint32 of value 0 in subtype 1, a VentriloNetString in subtype 3
The next item is a VentriloNetString (both 1 and 3)
In subtype 3, there is another VentriloNetString after

There are a lot of pieces of the 0x56 packet that are always 0, noted in stucture.

If the user being complained about logs out (even if they log in again) before the complaint is 
sent, ventrilo generates 'The intended user is no longer valid', and no packets are sent.

If nothing is types in the complaint message, ventrilo generates 'You must provide a reason why
you are sending the complaint.', and no packets are sent.

Packet flow for Sending a Complaint

-Transaction Begins-
Client Sends
Type 0x56 - Subtype 0x01 - Empty - Against UserID - Empty - Empty - Timestamp 0x00 - Empty - Empty - Complaint Message
Server Sends (to all users with rights to read complaints)
Type 0x56 - Subtype 0x03 - Empty - Against UserID 0x00 - Empty - Empty - Timestamp - Empty - Against Username - By Username - Complaint Message 
-Transaction Complete-

Packet Flow for Opening Complaint Window

-Transaction Begins-
Client Sends
Type 0x56 - Subtype 0x00 - Empty - Against UserID 0x00 - Empty - Empty - Timestamp 0x00 - Empty
.. if no complaints exist, transaction complete; if complaints do exist, continue...
Server Responds 
Type 0x56 - Subtype 0x03 - Empty - Against UserID 0x00 - Empty - Empty - Timestamp - Empty - Against Username - By Username - Complaint Message 
.. repeat for all complaints ..
-Transaction Complete-

Packet Flow for Flushing All Complaints

-Transaction Begins-
Client Sends
Type 0x56 - Subtype 0x02 - Empty - Against UserID 0x00 - Empty - Empty - Timestamp 0x00 - Empty
-Transaction Complete-