From a9b13f67012d235d98920e639f59411d57a79bd7 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 7 Mar 2005 02:14:38 +0000 Subject: [PATCH] r5676: Fix some alignment issues and IRemoteActivation --- source/lib/com/dcom/main.c | 10 ++++++++++ source/librpc/idl/orpc.idl | 5 +++-- source/librpc/idl/remact.idl | 8 ++++++-- source/torture/com/simple.c | 1 + 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/source/lib/com/dcom/main.c b/source/lib/com/dcom/main.c index 853af4c7398..7c9c3b43949 100644 --- a/source/lib/com/dcom/main.c +++ b/source/lib/com/dcom/main.c @@ -30,6 +30,16 @@ #define DCOM_NEGOTIATED_PROTOCOLS { EPM_PROTOCOL_TCP, EPM_PROTOCOL_SMB, EPM_PROTOCOL_NCALRPC } +struct dcom_client_context *dcom_client_init(struct com_context *ctx, const char *domain, const char *user, const char *password) +{ + ctx->dcom = talloc(ctx, struct dcom_client_context); + ctx->dcom->domain = domain; + ctx->dcom->user = user; + ctx->dcom->password = password; + + return ctx->dcom; +} + static NTSTATUS dcerpc_binding_from_STRINGBINDING(TALLOC_CTX *mem_ctx, struct dcerpc_binding *b, struct STRINGBINDING *bd) { char *host, *endpoint; diff --git a/source/librpc/idl/orpc.idl b/source/librpc/idl/orpc.idl index 34ef41377b9..0e407a4d13a 100644 --- a/source/librpc/idl/orpc.idl +++ b/source/librpc/idl/orpc.idl @@ -99,7 +99,7 @@ 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 [public] struct + typedef [public,flag(NDR_NOALIGN)] struct { uint16 wTowerId; /* Cannot be zero. */ nstring NetworkAddr; @@ -107,9 +107,10 @@ interface ObjectRpcBaseTypes const uint16 COM_C_AUTHZ_NONE = 0xffff; - typedef [public] struct + typedef [public,flag(NDR_NOALIGN)] struct { uint16 wAuthnSvc; /* Cannot be zero. */ + uint16 wAuthzSvc; nstring PrincName; } SECURITYBINDING; diff --git a/source/librpc/idl/remact.idl b/source/librpc/idl/remact.idl index ca1b228d4c0..7a879e717fe 100644 --- a/source/librpc/idl/remact.idl +++ b/source/librpc/idl/remact.idl @@ -21,7 +21,11 @@ interface IRemoteActivation RPC_C_IMP_LEVEL_IMPERSONATE = 3, RPC_C_IMP_LEVEL_DELEGATE = 4 } imp_levels; - + + typedef struct { + MInterfacePointer *ip; + } pMInterfacePointer; + const uint32 MODE_GET_CLASS_OBJECT = 0xffffffff; WERROR RemoteActivation ( [in] ORPCTHIS this, @@ -41,7 +45,7 @@ interface IRemoteActivation [out] uint32 AuthnHint, [out] COMVERSION ServerVersion, [out] WERROR hr, - [out,size_is(Interfaces)] MInterfacePointer *ifaces[], + [out,size_is(Interfaces)] pMInterfacePointer ifaces[], [out,size_is(Interfaces)] WERROR results[] ); } diff --git a/source/torture/com/simple.c b/source/torture/com/simple.c index 4eceb6a9483..dfc3beff4ef 100644 --- a/source/torture/com/simple.c +++ b/source/torture/com/simple.c @@ -39,6 +39,7 @@ static BOOL test_readwrite(TALLOC_CTX *mem_ctx, const char *host) int i; com_init(&ctx); + dcom_client_init(ctx, lp_parm_string(-1, "torture", "userdomain"), lp_parm_string(-1, "torture", "username"), lp_parm_string(-1, "torture", "password")); GUID_from_string(COM_ISTREAM_UUID, &IID[0]); GUID_from_string(COM_IUNKNOWN_UUID, &IID[1]); -- 2.34.1