1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-27 22:50:26 +03:00

Add ncacn_http (RTS) IDL implementation in dcerpc.idl

Signed-off-by: Julien Kerihuel <j.kerihuel@openchange.org>
Signed-off-by: Jelmer Vernooij <jelmer@samba.org>

Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Wed Dec  8 14:17:45 CET 2010 on sn-devel-104
This commit is contained in:
Julien Kerihuel 2010-12-05 23:10:30 +01:00 committed by Jelmer Vernooij
parent 623c93c8ba
commit 1bd3bd6e6e

View File

@ -252,6 +252,156 @@ interface dcerpc
typedef [public] struct {
} dcerpc_working;
/* RTS data structures */
typedef [public] struct {
GUID Cookie;
} RTSCookie;
typedef [v1_enum,public] enum {
RTS_IPV4 = 0,
RTS_IPV6 = 1
} AddressType;
typedef [nodiscriminant] union {
[case(RTS_IPV4)] ipv4address ClientAddressIPV4;
[case(RTS_IPV6)] ipv6address ClientAddressIPV6;
} ClientAddressType;
typedef [public] struct {
AddressType AddressType;
[switch_is(AddressType)] ClientAddressType ClientAddress;
uint8 Padding[12];
} ClientAddress;
typedef [v1_enum, public] enum {
FDClient = 0,
FDInProxy = 1,
FDServer = 2,
FDOutProxy = 3
} ForwardDestination;
typedef [public] struct {
uint32 BytesReceived;
uint32 AvailableWindow;
RTSCookie ChannelCookie;
} FlowControlAcknowledgment;
/* RTS commands */
/* RTS command: 0x0 */
typedef [public] struct {
[range(0x2000,0x40000)] uint32 ReceiveWindowSize;
} dcerpc_rts_cmd_ReceiveWindowSize;
/* RTS command: 0x1 */
typedef [public] struct {
FlowControlAcknowledgment Ack;
} dcerpc_rts_cmd_FlowControlAck;
/* RTS command: 0x2 */
typedef [public] struct {
[range(0x1D4C0,0xDBBA00)] uint32 ConnectionTimeout;
} dcerpc_rts_cmd_ConnectionTimeout;
/* RTS command: 0x3 */
typedef [public] struct {
RTSCookie Cookie;
} dcerpc_rts_cmd_Cookie;
/* RTS command: 0x4 */
typedef [public] struct {
[range(0x20000,0x800000000)] uint32 ChannelLifetime;
} dcerpc_rts_cmd_ChannelLifetime;
/* RTS command: 0x5 */
typedef [public] struct {
uint32 ClientKeepalive;
} dcerpc_rts_cmd_ClientKeepalive;
/* RTS command: 0x6 */
typedef [public] struct {
uint32 Version;
} dcerpc_rts_cmd_Version;
/* RTS command: 0x7 */
typedef [public] struct {
} dcerpc_rts_cmd_Empty;
/* RTS command: 0x8 */
typedef [public] struct {
[range(0x0,0xFFFF)] uint32 ConformanceCount;
uint8 Padding[ConformanceCount];
} dcerpc_rts_cmd_Padding;
/* RTS command: 0x9 */
typedef [public] struct {
} dcerpc_rts_cmd_NegativeANCE;
/* RTS Command: 0xA */
typedef [public] struct {
} dcerpc_rts_cmd_ANCE;
/* RTS command: 0xB */
typedef [public] struct {
ClientAddress ClientAddress;
} dcerpc_rts_cmd_ClientAddress;
/* RTS command: 0xC */
typedef [public] struct {
RTSCookie AssociationGroupId;
} dcerpc_rts_cmd_AssociationGroupId;
/* RTS command: 0xD */
typedef [public] struct {
ForwardDestination ForwardDestination;
} dcerpc_rts_cmd_Destination;
/* RTS command: 0xE */
typedef [public] struct {
uint32 PingTrafficSent;
} dcerpc_rts_cmd_PingTrafficSentNotify;
typedef [nodiscriminant] union {
[case(0x0)] dcerpc_rts_cmd_ReceiveWindowSize ReceiveWindowSize;
[case(0x1)] dcerpc_rts_cmd_FlowControlAck FlowControlAck;
[case(0x2)] dcerpc_rts_cmd_ConnectionTimeout ConnectionTimeout;
[case(0x3)] dcerpc_rts_cmd_Cookie Cookie;
[case(0x4)] dcerpc_rts_cmd_ChannelLifetime ChannelLifetime;
[case(0x5)] dcerpc_rts_cmd_ClientKeepalive ClientKeepalive;
[case(0x6)] dcerpc_rts_cmd_Version Version;
[case(0x7)] dcerpc_rts_cmd_Empty Empty;
[case(0x8)] dcerpc_rts_cmd_Padding Padding;
[case(0x9)] dcerpc_rts_cmd_NegativeANCE NegativeANCE;
[case(0xA)] dcerpc_rts_cmd_ANCE ANCE;
[case(0xB)] dcerpc_rts_cmd_ClientAddress ClientAddress;
[case(0xC)] dcerpc_rts_cmd_AssociationGroupId AssociationGroupId;
[case(0xD)] dcerpc_rts_cmd_Destination Destination;
[case(0xE)] dcerpc_rts_cmd_PingTrafficSentNotify PingTrafficSentNotify;
} dcerpc_rts_cmds;
typedef [public] struct {
uint32 CommandType;
[switch_is(CommandType)] dcerpc_rts_cmds Command;
} dcerpc_rts_cmd;
/* The RTS flags */
typedef [public, bitmap16bit] bitmap {
RTS_FLAG_NONE = 0x0000,
RTS_FLAG_PING = 0x0001,
RTS_FLAG_OTHER_CMD = 0x0002,
RTS_FLAG_RECYCLE_CHANNEL = 0x0004,
RTS_FLAG_IN_CHANNEL = 0x0008,
RTS_FLAG_OUT_CHANNEL = 0x0010,
RTS_FLAG_EOF = 0x0020,
RTS_FLAG_ECHO = 0x0040
} dcerpc_rts_flags;
typedef [public] struct {
dcerpc_rts_flags Flags;
uint16 NumberOfCommands;
dcerpc_rts_cmd Commands[NumberOfCommands];
} dcerpc_rts;
typedef [enum8bit] enum {
DCERPC_PKT_REQUEST = 0, /* Ordinary request. */
DCERPC_PKT_PING = 1, /* Connectionless is server alive ? */
@ -272,7 +422,8 @@ interface dcerpc
DCERPC_PKT_AUTH3 = 16, /* not the real name! this is undocumented! */
DCERPC_PKT_SHUTDOWN = 17, /* Server to client request to shutdown. */
DCERPC_PKT_CO_CANCEL = 18, /* Connection-oriented cancel request. */
DCERPC_PKT_ORPHANED = 19 /* Client telling server it's aborting a partially sent request or telling server to stop sending replies. */
DCERPC_PKT_ORPHANED = 19, /* Client telling server it's aborting a partially sent request or telling server to stop sending replies. */
DCERPC_PKT_RTS = 20 /* RTS packets used in ncacn_http */
} dcerpc_pkt_type;
typedef [nodiscriminant] union {
@ -296,6 +447,7 @@ interface dcerpc
[case(DCERPC_PKT_CO_CANCEL)] dcerpc_co_cancel co_cancel;
[case(DCERPC_PKT_ORPHANED)] dcerpc_orphaned orphaned;
[case(DCERPC_PKT_AUTH3)] dcerpc_auth3 auth3;
[case(DCERPC_PKT_RTS)] dcerpc_rts rts;
} dcerpc_payload;
/* pfc_flags values */