summaryrefslogtreecommitdiff
path: root/source4/include/dcerpc_interfaces.h
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2003-10-28 10:21:36 +0000
committerTim Potter <tpot@samba.org>2003-10-28 10:21:36 +0000
commit06d58f8086f409fcdafb584d6b130adbb0918c19 (patch)
tree32f4e64c16667cbb8e4eba6b28429733a8ef2a4f /source4/include/dcerpc_interfaces.h
parent931dc553909c4ee345f7c16ca79f56f84ae39ff6 (diff)
downloadsamba-06d58f8086f409fcdafb584d6b130adbb0918c19.tar.gz
samba-06d58f8086f409fcdafb584d6b130adbb0918c19.tar.bz2
samba-06d58f8086f409fcdafb584d6b130adbb0918c19.zip
Add data structures for initial dcerpc support.
(This used to be commit 35ee9fdeababea8fd00f69d7d8f9d55eef57994c)
Diffstat (limited to 'source4/include/dcerpc_interfaces.h')
-rw-r--r--source4/include/dcerpc_interfaces.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/source4/include/dcerpc_interfaces.h b/source4/include/dcerpc_interfaces.h
new file mode 100644
index 0000000000..831e19c1e3
--- /dev/null
+++ b/source4/include/dcerpc_interfaces.h
@@ -0,0 +1,93 @@
+/*
+ Unix SMB/CIFS implementation.
+ DCERPC interface structures
+ Copyright (C) Tim Potter 2003
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+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_len; /* Total length of fragment */
+ uint32 call_id; /* Call identifier */
+};
+
+struct dcerpc_uuid {
+ uint32 time_low;
+ uint16 time_mid;
+ uint16 time_hi_and_version;
+ uint8 remaining[8];
+};
+
+struct syntax_id {
+ struct dcerpc_uuid if_uuid;
+ uint32 if_version;
+};
+
+struct p_ctx_list {
+ uint16 cont_id; /* Context id */
+ uint8 num_ts; /* Number of transfer syntaxes */
+ struct syntax_id *as; /* Abstract syntax */
+ struct syntax_id *ts; /* Transfer syntaxes */
+};
+
+struct dcerpc_bind {
+ struct {
+ struct dcerpc_hdr hdr; /* Header */
+ uint16 max_xmit_frag; /* Max transmit frag size */
+ uint16 max_recv_frag; /* Max receive frag size */
+ uint32 assoc_group_id; /* Association group */
+ uint8 num_contexts; /* Number of presentation contexts */
+ struct p_ctx_list *ctx_list; /* Presentation context list */
+ DATA_BLOB auth_verifier;
+ } in;
+ struct {
+ struct dcerpc_hdr hdr; /* Header */
+ uint16 max_xmit_frag; /* Max transmit frag size */
+ uint16 max_recv_frag; /* Max receive frag size */
+ uint32 assoc_group_id; /* Association group */
+ DATA_BLOB auth_verifier;
+ } out;
+};
+
+struct dcerpc_request {
+ struct {
+ struct dcerpc_hdr hdr;
+ uint32 alloc_hint; /* Allocation hint */
+ uint16 cont_id; /* Context id */
+ uint16 opnum; /* Operation number */
+ DATA_BLOB stub_data;
+ DATA_BLOB auth_verifier;
+ } in;
+ struct {
+ struct dcerpc_hdr hdr;
+ uint32 alloc_hint; /* Allocation hint */
+ uint8 cancel_count; /* Context id */
+ DATA_BLOB stub_data;
+ DATA_BLOB auth_verifier;
+ } out;
+};
+
+struct cli_dcerpc_pipe {
+ TALLOC_CTX *mem_ctx;
+ uint16 fnum;
+ int reference_count;
+ uint32 call_id;
+ struct cli_tree *tree;
+};