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 0x4A

This message deals with user permissions and the user editor.

Subtypes

Subtype Direction Purpose
0 both open user editor (list accounts)
1 both add account
2 both delete account
3 both update account
4 client->server close user editor
5 server->client permissions for the local user, sent to everyone
6 both change owners

Only one user at a time can access the user editor. to claim the user editor a client sends a 0x00 subtype message and to release it a 0x04 subtype message. changes in the account list are sent only to the active lock holder.

Subtype 0 Packet

Offset Description
0 User permissions header
20 Array of UserAccount? structs (header.count elements)

May span multiple packets, last packet is marked by header.error_id == 10.

Subtype 1,3 Packet

Offset Description
0 User permissions header
20 UserAccount? struct

Subtype 2,5,6 Packet

Offset Description
0 User permissions header
20 v3_permissions struct

Below are the structs used in the packet definitions:

User permissions header

Type Description Offset
uint32_t packet type 0
uint16_t subtype (see subtypes table) 4
uint16_t error_id (see errors table) 6
uint16_t unknown 8
uint16_t number of user-permissions items in packet (max is 4) 10
uint16_t unknown 12
uint16_t unknown 14
uint32_t unknown 16

Errors

Error ID Error message
1 Specified ID is no longer valid.
2 Duplicate name.
3 Server reported an error.
4 All user accounts must have a valid password.
5 Missing required fields.
6 Not allowed to delete Guest account.
7 The specified login name is not allowed.
8 The specified login name contains characters that are not allowed.
9 Insufficient access rights to complete the request.
11 Specified alternate ID is not valid.
12 Specified new owner does not have 'Add Users' rights.
13 The user account database is full. You must delete an existing account before you can add a new one.
14 The Guest account can not be locked without having at least one other account defined and is not locked it self. Otherwise, you would be locking everyone out of the server.

UserAccount? struct

Type Description Offset
v3_permissions basic permissions 0
VentriloNetString username 104
VentriloNetString owner Variable
VentriloNetString notes Variable
VentriloNetString lock reason Variable
VentriloNetIDArray chan admin Variable
VentriloNetIDArray chan auth Variable