1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-25 17:57:42 +03:00

s3:rpcd_witness.idl: add rpcd_witness_registration_updateB message definitions

This will be used for rpcd_witness_registration_updateB messages
in 'net witness [client-move,...]' commands later.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
This commit is contained in:
Stefan Metzmacher 2023-12-21 15:03:05 +01:00
parent 0744d55be0
commit b722dc74f8

View File

@ -38,4 +38,72 @@ interface rpcd_witness
void rpcd_witness_registration_decode(
[in] rpcd_witness_registration reg
);
typedef [enum16bit] enum {
RPCD_WITNESS_REGISTRATION_UPDATE_CLIENT_MOVE_TO_NODE = 0x0001,
RPCD_WITNESS_REGISTRATION_UPDATE_CLIENT_MOVE_TO_IPV4 = 0x0002,
RPCD_WITNESS_REGISTRATION_UPDATE_CLIENT_MOVE_TO_IPV6 = 0x0003,
RPCD_WITNESS_REGISTRATION_UPDATE_SHARE_MOVE_TO_NODE = 0x0004,
RPCD_WITNESS_REGISTRATION_UPDATE_SHARE_MOVE_TO_IPV4 = 0x0005,
RPCD_WITNESS_REGISTRATION_UPDATE_SHARE_MOVE_TO_IPV6 = 0x0006,
RPCD_WITNESS_REGISTRATION_UPDATE_FORCE_UNREGISTER = 0x0007,
RPCD_WITNESS_REGISTRATION_UPDATE_FORCE_RESPONSE = 0x0008
} rpcd_witness_registration_update_type;
typedef struct {
uint32 new_node;
} rpcd_witness_registration_update_move_to_node;
typedef struct {
[flag(NDR_BIG_ENDIAN)] ipv4address new_ipv4;
} rpcd_witness_registration_update_move_to_ipv4;
typedef struct {
[flag(NDR_BIG_ENDIAN)] ipv6address new_ipv6;
} rpcd_witness_registration_update_move_to_ipv6;
typedef struct {
witness_notifyResponse *response;
WERROR result;
} rpcd_witness_registration_update_force_response;
typedef [switch_type(rpcd_witness_registration_update_type)] union {
[case(RPCD_WITNESS_REGISTRATION_UPDATE_CLIENT_MOVE_TO_NODE)]
rpcd_witness_registration_update_move_to_node client_move_to_node;
[case(RPCD_WITNESS_REGISTRATION_UPDATE_CLIENT_MOVE_TO_IPV4)]
rpcd_witness_registration_update_move_to_ipv4 client_move_to_ipv4;
[case(RPCD_WITNESS_REGISTRATION_UPDATE_CLIENT_MOVE_TO_IPV6)]
rpcd_witness_registration_update_move_to_ipv6 client_move_to_ipv6;
[case(RPCD_WITNESS_REGISTRATION_UPDATE_SHARE_MOVE_TO_NODE)]
rpcd_witness_registration_update_move_to_node share_move_to_node;
[case(RPCD_WITNESS_REGISTRATION_UPDATE_SHARE_MOVE_TO_IPV4)]
rpcd_witness_registration_update_move_to_ipv4 share_move_to_ipv4;
[case(RPCD_WITNESS_REGISTRATION_UPDATE_SHARE_MOVE_TO_IPV6)]
rpcd_witness_registration_update_move_to_ipv6 share_move_to_ipv6;
[case(RPCD_WITNESS_REGISTRATION_UPDATE_FORCE_UNREGISTER)];
/* empty */
[case(RPCD_WITNESS_REGISTRATION_UPDATE_FORCE_RESPONSE)]
rpcd_witness_registration_update_force_response force_response;
} rpcd_witness_registration_updateU;
/*
* This is the content of
* MSG_RPCD_WITNESS_REGISTRATION_UPDATE messages
*/
typedef [public] struct {
policy_handle context_handle;
rpcd_witness_registration_update_type type;
[switch_is(type)] rpcd_witness_registration_updateU update;
} rpcd_witness_registration_updateB;
void rpcd_witness_registration_update_decode(
[in] rpcd_witness_registration_updateB update
);
}