summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/librpc/rpc/dcerpc.c16
-rw-r--r--source/librpc/rpc/dcerpc.h12
2 files changed, 23 insertions, 5 deletions
diff --git a/source/librpc/rpc/dcerpc.c b/source/librpc/rpc/dcerpc.c
index 654ccb1a15a..c8bca8d3eb7 100644
--- a/source/librpc/rpc/dcerpc.c
+++ b/source/librpc/rpc/dcerpc.c
@@ -1,6 +1,6 @@
/*
Unix SMB/CIFS implementation.
- Samba utility functions
+ Samba 4-compatible DCE/RPC API on top of the Samba 3 DCE/RPC client library.
Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008
This program is free software; you can redistribute it and/or modify
@@ -20,6 +20,9 @@
#include "includes.h"
#include "librpc/rpc/dcerpc.h"
+/**
+ * Send a struct-based RPC request using the Samba 3 RPC client library.
+ */
struct rpc_request *dcerpc_ndr_request_send(struct dcerpc_pipe *p, const struct GUID *object,
const struct ndr_interface_table *table, uint32_t opnum,
TALLOC_CTX *mem_ctx, void *r)
@@ -66,6 +69,11 @@ struct rpc_request *dcerpc_ndr_request_send(struct dcerpc_pipe *p, const struct
return ret;
}
+/**
+ * Wait for a DCE/RPC request.
+ *
+ * @note at the moment this is still sync, even though the API is async.
+ */
NTSTATUS dcerpc_ndr_request_recv(struct rpc_request *req)
{
prs_struct r_ps;
@@ -109,6 +117,12 @@ NTSTATUS dcerpc_ndr_request_recv(struct rpc_request *req)
return NT_STATUS_OK;
}
+/**
+ * Connect to a DCE/RPC interface.
+ *
+ * @note lp_ctx and ev are ignored at the moment but present
+ * for API compatibility.
+ */
_PUBLIC_ NTSTATUS dcerpc_pipe_connect(TALLOC_CTX *parent_ctx, struct dcerpc_pipe **pp,
const char *binding_string, const struct ndr_interface_table *table,
struct cli_credentials *credentials, struct event_context *ev,
diff --git a/source/librpc/rpc/dcerpc.h b/source/librpc/rpc/dcerpc.h
index a225f821895..739e60a341a 100644
--- a/source/librpc/rpc/dcerpc.h
+++ b/source/librpc/rpc/dcerpc.h
@@ -33,9 +33,16 @@
struct loadparm_context;
struct cli_credentials;
+/**
+ * Connection to a particular DCE/RPC interface.
+ */
struct dcerpc_pipe {
const struct ndr_interface_table *table;
+
+ /** SMB context used when transport is ncacn_np. */
struct cli_state *cli;
+
+ /** Samba 3 DCE/RPC client context. */
struct rpc_pipe_client *rpc_cli;
};
@@ -53,7 +60,7 @@ enum dcerpc_transport_t {
NCADG_UNIX_DGRAM, NCACN_HTTP, NCADG_IPX, NCACN_SPX };
-/* this describes a binding to a particular transport/pipe */
+/** this describes a binding to a particular transport/pipe */
struct dcerpc_binding {
enum dcerpc_transport_t transport;
struct ndr_syntax_id object;
@@ -65,7 +72,4 @@ struct dcerpc_binding {
uint32_t assoc_group_id;
};
-
-
-
#endif /* __DCERPC_H__ */