summaryrefslogtreecommitdiff
path: root/source4/librpc/rpc/dcerpc.h
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-11-23 06:28:12 +0000
committerAndrew Tridgell <tridge@samba.org>2003-11-23 06:28:12 +0000
commit800d3e0134b72135fa359fa5a239f1c68adf4ca1 (patch)
tree1f0e6cafab8f1d62dee9a3796443ab18b6394fe1 /source4/librpc/rpc/dcerpc.h
parent02dc7536dd625e0cdee23a96e66cb41b407cdba8 (diff)
downloadsamba-800d3e0134b72135fa359fa5a239f1c68adf4ca1.tar.gz
samba-800d3e0134b72135fa359fa5a239f1c68adf4ca1.tar.bz2
samba-800d3e0134b72135fa359fa5a239f1c68adf4ca1.zip
ooh, this is fun!
I have recoded the core dcerpc packet structures (all the PDUs etc) in terms of IDL, which means we now use pidl to generate all the code for handling the most basic dcerpc packets. This is not normally possible as it isn't completely valid NDR, but pidl has a number of extensions that make it quite easy. This also means we get the server side dcerpc marshalling/unmarshalling code for free. (This used to be commit 92bcad02587c3c1b31b523ee9fa46658a6cef9ff)
Diffstat (limited to 'source4/librpc/rpc/dcerpc.h')
-rw-r--r--source4/librpc/rpc/dcerpc.h87
1 files changed, 0 insertions, 87 deletions
diff --git a/source4/librpc/rpc/dcerpc.h b/source4/librpc/rpc/dcerpc.h
index 65566878e3..ec6189302a 100644
--- a/source4/librpc/rpc/dcerpc.h
+++ b/source4/librpc/rpc/dcerpc.h
@@ -40,18 +40,6 @@ struct dcerpc_pipe {
unsigned flags;
};
-/* dcerpc packet types */
-#define DCERPC_PKT_REQUEST 0
-#define DCERPC_PKT_RESPONSE 2
-#define DCERPC_PKT_BIND 11
-#define DCERPC_PKT_BIND_ACK 12
-#define DCERPC_PKT_BIND_NAK 13
-
-/* hdr.pfc_flags */
-#define DCERPC_PFC_FLAG_FIRST 0x01
-#define DCERPC_PFC_FLAG_LAST 0x02
-#define DCERPC_PFC_FLAG_NOCALL 0x20
-
/* dcerpc pipe flags */
#define DCERPC_DEBUG_PRINT_IN 1
#define DCERPC_DEBUG_PRINT_OUT 2
@@ -60,78 +48,3 @@ struct dcerpc_pipe {
#define DCERPC_DEBUG_VALIDATE_IN 4
#define DCERPC_DEBUG_VALIDATE_OUT 8
#define DCERPC_DEBUG_VALIDATE_BOTH (DCERPC_DEBUG_VALIDATE_IN | DCERPC_DEBUG_VALIDATE_OUT)
-
-/*
- all dcerpc packets use this structure.
-*/
-struct dcerpc_packet {
- /* all requests and responses contain a dcerpc header */
- struct dcerpc_hdr {
- uint8 rpc_vers; /* RPC version */
- uint8 rpc_vers_minor; /* Minor version */
- uint8 ptype; /* Packet type */
- uint8 pfc_flags; /* Fragmentation flags */
- uint8 drep[4]; /* NDR data representation */
- uint16 frag_length; /* Total length of fragment */
- uint16 auth_length; /* authenticator length */
- uint32 call_id; /* Call identifier */
- } hdr;
-
- union {
- struct dcerpc_bind {
- uint16 max_xmit_frag;
- uint16 max_recv_frag;
- uint32 assoc_group_id;
- uint8 num_contexts;
- struct {
- uint16 context_id;
- uint8 num_transfer_syntaxes;
- struct dcerpc_syntax_id {
- const char *uuid_str;
- uint32 if_version;
- } abstract_syntax;
- const struct dcerpc_syntax_id *transfer_syntaxes;
- } *ctx_list;
- DATA_BLOB auth_verifier;
- } bind;
-
- struct dcerpc_request {
- uint32 alloc_hint;
- uint16 context_id;
- uint16 opnum;
- DATA_BLOB stub_data;
- DATA_BLOB auth_verifier;
- } request;
- } in;
-
- union {
- struct dcerpc_bind_ack {
- uint16 max_xmit_frag;
- uint16 max_recv_frag;
- uint32 assoc_group_id;
- const char *secondary_address;
- uint8 num_results;
- struct {
- uint16 result;
- uint16 reason;
- struct dcerpc_syntax_id syntax;
- } *ctx_list;
- DATA_BLOB auth_verifier;
- } bind_ack;
-
- struct dcerpc_bind_nak {
- uint16 reject_reason;
- uint32 num_versions;
- uint32 *versions;
- } bind_nak;
-
- struct dcerpc_response {
- uint32 alloc_hint;
- uint16 context_id;
- uint8 cancel_count;
- DATA_BLOB stub_data;
- DATA_BLOB auth_verifier;
- } response;
- } out;
-};
-