summaryrefslogtreecommitdiff
path: root/source4/librpc/idl
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2004-11-23 08:57:42 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:06:06 -0500
commit2f39a9fe621a0c80688fe06712bd5b0495ca7e65 (patch)
tree8eca24dab0d2e3ff781bc90f77349e3338b514b8 /source4/librpc/idl
parent587745e32da3c45773c129c8b9740c89aa8bbd9f (diff)
downloadsamba-2f39a9fe621a0c80688fe06712bd5b0495ca7e65.tar.gz
samba-2f39a9fe621a0c80688fe06712bd5b0495ca7e65.tar.bz2
samba-2f39a9fe621a0c80688fe06712bd5b0495ca7e65.zip
r3920: - it seem that we need to send a magic bind_guid in DsBind()
to make DsWriteAccountSpn() work - add idl and torture test for DsWriteAccountSpn() metze (This used to be commit 625826ad9050c68407ae5e8abfee13699986303c)
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r--source4/librpc/idl/drsuapi.idl40
1 files changed, 37 insertions, 3 deletions
diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl
index 17e84fffab..481c1a1de1 100644
--- a/source4/librpc/idl/drsuapi.idl
+++ b/source4/librpc/idl/drsuapi.idl
@@ -17,8 +17,11 @@ interface drsuapi
[size_is(length)] uint8 data[];
} drsuapi_DsBindInfo;
+ /* this is a magic guid you need to pass to DsBind to make drsuapi_DsWriteAccountSpn() work */
+ const string DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d";
+
WERROR drsuapi_DsBind(
- [in] GUID *server_guid,
+ [in] GUID *bind_guid,
[in,out] drsuapi_DsBindInfo *bind_info,
[out,ref] policy_handle *bind_handle
);
@@ -145,8 +148,39 @@ interface drsuapi
);
/*****************/
- /* Function 0x0d */
- WERROR DRSUAPI_WRITE_SPN();
+ /* Function 0x0d */
+ typedef enum {
+ DRSUAPI_DS_SPN_OPERATION_ADD = 0,
+ DRSUAPI_DS_SPN_OPERATION_REPLACE= 1,
+ DRSUAPI_DS_SPN_OPERATION_DELETE = 2
+ } drsuapi_DsSpnOperation;
+
+ typedef struct {
+ int32 operation;
+ int32 unknown1;
+ unistr *object_dn;
+ [range(0,10000)] uint32 count;
+ [size_is(count)] drsuapi_DsNameString *spn_names;
+ } drsuapi_DsWriteAccountSpnRequest1;
+
+ typedef union {
+ [case(1)] drsuapi_DsWriteAccountSpnRequest1 req1;
+ } drsuapi_DsWriteAccountSpnRequest;
+
+ typedef struct {
+ WERROR status;
+ } drsuapi_DsWriteAccountSpnResult1;
+
+ typedef union {
+ [case(1)] drsuapi_DsWriteAccountSpnResult1 res1;
+ } drsuapi_DsWriteAccountSpnResult;
+
+ WERROR drsuapi_DsWriteAccountSpn(
+ [in,ref] policy_handle *bind_handle,
+ [in, out] uint32 level,
+ [in,switch_is(level)] drsuapi_DsWriteAccountSpnRequest req,
+ [out,switch_is(level)] drsuapi_DsWriteAccountSpnResult res
+ );
/*****************/
/* Function 0x0e */