summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/config.mk2
-rw-r--r--source4/librpc/idl/dcom.idl13
-rw-r--r--source4/librpc/rpc/dcerpc.c6
3 files changed, 10 insertions, 11 deletions
diff --git a/source4/librpc/config.mk b/source4/librpc/config.mk
index 09e2a278c4..b16c42b938 100644
--- a/source4/librpc/config.mk
+++ b/source4/librpc/config.mk
@@ -81,6 +81,6 @@ ADD_OBJ_FILES = \
################################################
# Start SUBSYSTEM LIBRPC
[SUBSYSTEM::LIBRPC]
-REQUIRED_SUBSYSTEMS = LIBNDR_RAW LIBNDR_GEN LIBRPC_RAW
+REQUIRED_SUBSYSTEMS = LIBNDR_RAW LIBNDR_GEN LIBRPC_RAW LIBDCOM
# End SUBSYSTEM LIBRPC
################################################
diff --git a/source4/librpc/idl/dcom.idl b/source4/librpc/idl/dcom.idl
index 615d812b47..41e2ccb73c 100644
--- a/source4/librpc/idl/dcom.idl
+++ b/source4/librpc/idl/dcom.idl
@@ -151,19 +151,19 @@ interface ObjectRpcBaseTypes
/* DUALSTRINGARRAYS are the return type for arrays of network addresses, */
/* arrays of endpoints and arrays of both used in many ORPC interfaces */
- typedef struct
+ typedef [public] struct
{
uint16 wTowerId; /* Cannot be zero. */
- uint16 aNetworkAddr; /* Zero terminated. */
+ nstring NetworkAddr;
} STRINGBINDING;
const uint16 COM_C_AUTHZ_NONE = 0xffff;
- typedef struct
+ typedef [public] struct
{
uint16 wAuthnSvc; /* Cannot be zero. */
uint16 wAuthzSvc; /* Must not be zero. */
- uint16 aPrincName; /* Zero terminated. */
+ nstring PrincName;
} SECURITYBINDING;
@@ -177,7 +177,6 @@ interface ObjectRpcBaseTypes
[size_is(wNumEntries)] uint16 aStringArray[];
} DUALSTRINGARRAY;
-
/* signature value for OBJREF (object reference, actually the */
/* marshaled form of a COM interface). */
const uint32 OBJREF_SIGNATURE = 0x574f454d; /* 'MEOW' */
@@ -219,14 +218,14 @@ interface ObjectRpcBaseTypes
typedef struct
{
STDOBJREF std; /* standard objref */
- DUALSTRINGARRAY saResAddr; /* resolver address */
+ [flag(NDR_REMAINING)] DATA_BLOB saResAddr; /* resolver address */
} u_standard;
typedef struct
{
STDOBJREF std; /* standard objref */
GUID clsid; /* Clsid of handler code */
- DUALSTRINGARRAY saResAddr; /* resolver address */
+ [flag(NDR_REMAINING)] DATA_BLOB saResAddr; /* resolver address */
} u_handler;
typedef struct
diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c
index 27292bc8c3..beccac78ca 100644
--- a/source4/librpc/rpc/dcerpc.c
+++ b/source4/librpc/rpc/dcerpc.c
@@ -974,7 +974,7 @@ NTSTATUS dcerpc_request_recv(struct rpc_request *req,
perform a full request/response pair on a dcerpc pipe
*/
NTSTATUS dcerpc_request(struct dcerpc_pipe *p,
- struct GUID *object,
+ struct OBJREF *object,
uint16_t opnum,
TALLOC_CTX *mem_ctx,
DATA_BLOB *stub_data_in,
@@ -1141,7 +1141,7 @@ static NTSTATUS dcerpc_ndr_validate_out(struct dcerpc_pipe *p,
call dcerpc_ndr_request_recv() to receive the answer
*/
struct rpc_request *dcerpc_ndr_request_send(struct dcerpc_pipe *p,
- struct GUID *object,
+ struct OBJREF *object,
uint32_t opnum,
TALLOC_CTX *mem_ctx,
NTSTATUS (*ndr_push)(struct ndr_push *, int, void *),
@@ -1278,7 +1278,7 @@ NTSTATUS dcerpc_ndr_request_recv(struct rpc_request *req)
standard format
*/
NTSTATUS dcerpc_ndr_request(struct dcerpc_pipe *p,
- struct GUID *object,
+ struct OBJREF *object,
uint32_t opnum,
TALLOC_CTX *mem_ctx,
NTSTATUS (*ndr_push)(struct ndr_push *, int, void *),