mirror of
https://github.com/samba-team/samba.git
synced 2025-03-07 00:58:40 +03:00
r2992: drsuapi uses WERROR not NTSTATUS
metze (This used to be commit 757f67c08b0b1309d8a0b900539111c7bc430b0e)
This commit is contained in:
parent
f4e4989cb7
commit
1890e6a659
@ -231,6 +231,9 @@
|
||||
#define WERR_DFS_INTERNAL_ERROR W_ERROR(NERR_BASE+590)
|
||||
#define WERR_DFS_CANT_CREATE_JUNCT W_ERROR(NERR_BASE+569)
|
||||
|
||||
/* DS errors */
|
||||
#define WERR_DS_OBJ_NOT_FOUND W_ERROR(0x0000208d)
|
||||
|
||||
|
||||
#define WERR_FOOBAR WERR_GENERAL_FAILURE
|
||||
|
||||
|
@ -17,7 +17,7 @@ interface drsuapi
|
||||
[size_is(length)] uint8 data[];
|
||||
} drsuapi_DsBindInfo;
|
||||
|
||||
NTSTATUS drsuapi_DsBind(
|
||||
WERROR drsuapi_DsBind(
|
||||
[in] GUID *server_guid,
|
||||
[in,out] drsuapi_DsBindInfo *bind_info,
|
||||
[out,ref] policy_handle *bind_handle
|
||||
@ -25,49 +25,49 @@ interface drsuapi
|
||||
|
||||
/*****************/
|
||||
/* Function 0x01 */
|
||||
NTSTATUS drsuapi_DsUnbind(
|
||||
WERROR drsuapi_DsUnbind(
|
||||
[in,out,ref] policy_handle *bind_handle
|
||||
);
|
||||
|
||||
/*****************/
|
||||
/* Function 0x02 */
|
||||
NTSTATUS DRSUAPI_REPLICA_SYNC();
|
||||
WERROR DRSUAPI_REPLICA_SYNC();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x03 */
|
||||
NTSTATUS DRSUAPI_GET_NC_CHANGES();
|
||||
WERROR DRSUAPI_GET_NC_CHANGES();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x04 */
|
||||
NTSTATUS DRSUAPI_UPDATE_REFS();
|
||||
WERROR DRSUAPI_UPDATE_REFS();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x05 */
|
||||
NTSTATUS DRSUAPI_REPLICA_ADD();
|
||||
WERROR DRSUAPI_REPLICA_ADD();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x06 */
|
||||
NTSTATUS DRSUAPI_REPLICA_DEL();
|
||||
WERROR DRSUAPI_REPLICA_DEL();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x07 */
|
||||
NTSTATUS DRSUAPI_REPLICA_MODIFY();
|
||||
WERROR DRSUAPI_REPLICA_MODIFY();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x08 */
|
||||
NTSTATUS DRSUAPI_VERIFY_NAMES();
|
||||
WERROR DRSUAPI_VERIFY_NAMES();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x09 */
|
||||
NTSTATUS DRSUAPI_GET_MEMBERSHIPS();
|
||||
WERROR DRSUAPI_GET_MEMBERSHIPS();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x0a */
|
||||
NTSTATUS DRSUAPI_INTER_DOMAIN_MOVE();
|
||||
WERROR DRSUAPI_INTER_DOMAIN_MOVE();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x0b */
|
||||
NTSTATUS DRSUAPI_GET_NT4_CHANGELOG();
|
||||
WERROR DRSUAPI_GET_NT4_CHANGELOG();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x0c */
|
||||
@ -137,7 +137,7 @@ interface drsuapi
|
||||
[case(1)] drsuapi_DsNameCtr1 *ctr1;
|
||||
} drsuapi_DsNameCtr;
|
||||
|
||||
NTSTATUS drsuapi_DsCrackNames(
|
||||
WERROR drsuapi_DsCrackNames(
|
||||
[in,ref] policy_handle *bind_handle,
|
||||
[in, out] uint32 level,
|
||||
[in,switch_is(level)] drsuapi_DsNameRequest req,
|
||||
@ -146,15 +146,15 @@ interface drsuapi
|
||||
|
||||
/*****************/
|
||||
/* Function 0x0d */
|
||||
NTSTATUS DRSUAPI_WRITE_SPN();
|
||||
WERROR DRSUAPI_WRITE_SPN();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x0e */
|
||||
NTSTATUS DRSUAPI_REMOVE_DS_SERVER();
|
||||
WERROR DRSUAPI_REMOVE_DS_SERVER();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x0f */
|
||||
NTSTATUS DRSUAPI_REMOVE_DS_DOMAIN();
|
||||
WERROR DRSUAPI_REMOVE_DS_DOMAIN();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x10 */
|
||||
@ -226,7 +226,7 @@ interface drsuapi
|
||||
} drsuapi_DsGetDCInfoCtr;
|
||||
|
||||
/* maybe WERROR function */
|
||||
NTSTATUS drsuapi_DsGetDomainControllerInfo(
|
||||
WERROR drsuapi_DsGetDomainControllerInfo(
|
||||
[in,ref] policy_handle *bind_handle,
|
||||
[in, out] int32 level,
|
||||
[in,switch_is(level)] drsuapi_DsGetDCInfoRequest req,
|
||||
@ -235,33 +235,33 @@ interface drsuapi
|
||||
|
||||
/*****************/
|
||||
/* Function 0x11 */
|
||||
NTSTATUS DRSUAPI_ADD_ENTRY();
|
||||
WERROR DRSUAPI_ADD_ENTRY();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x12 */
|
||||
NTSTATUS DRSUAPI_EXECUTE_KCC();
|
||||
WERROR DRSUAPI_EXECUTE_KCC();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x13 */
|
||||
NTSTATUS DRSUAPI_GET_REPL_INFO();
|
||||
WERROR DRSUAPI_GET_REPL_INFO();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x14 */
|
||||
NTSTATUS DRSUAPI_ADD_SID_HISTORY();
|
||||
WERROR DRSUAPI_ADD_SID_HISTORY();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x15 */
|
||||
NTSTATUS DRSUAPI_GET_MEMBERSHIPS2();
|
||||
WERROR DRSUAPI_GET_MEMBERSHIPS2();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x16 */
|
||||
NTSTATUS DRSUAPI_REPLICA_VERIFY_OBJECTS();
|
||||
WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x17 */
|
||||
NTSTATUS DRSUAPI_GET_OBJECT_EXISTENCE();
|
||||
WERROR DRSUAPI_GET_OBJECT_EXISTENCE();
|
||||
|
||||
/*****************/
|
||||
/* Function 0x18 */
|
||||
NTSTATUS DRSUAPI_QUERY_SITES_BY_COST();
|
||||
WERROR DRSUAPI_QUERY_SITES_BY_COST();
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ static void drsuapi_handle_destroy(struct dcesrv_connection *conn, struct dcesrv
|
||||
/*
|
||||
drsuapi_DsBind
|
||||
*/
|
||||
static NTSTATUS drsuapi_DsBind(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR drsuapi_DsBind(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct drsuapi_DsBind *r)
|
||||
{
|
||||
struct drsuapi_bind_state *b_state;
|
||||
@ -45,16 +45,14 @@ static NTSTATUS drsuapi_DsBind(struct dcesrv_call_state *dce_call, TALLOC_CTX *m
|
||||
ZERO_STRUCTP(r->out.bind_handle);
|
||||
|
||||
b_state = talloc_p(dce_call->conn, struct drsuapi_bind_state);
|
||||
if (!b_state) {
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
WERR_TALLOC_CHECK(b_state);
|
||||
|
||||
/* TODO: fill b_state here */
|
||||
|
||||
handle = dcesrv_handle_new(dce_call->conn, DRSUAPI_BIND_HANDLE);
|
||||
if (!handle) {
|
||||
talloc_free(b_state);
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
return WERR_NOMEM;
|
||||
}
|
||||
|
||||
handle->data = b_state;
|
||||
@ -62,21 +60,21 @@ static NTSTATUS drsuapi_DsBind(struct dcesrv_call_state *dce_call, TALLOC_CTX *m
|
||||
|
||||
*r->out.bind_handle = handle->wire_handle;
|
||||
|
||||
return NT_STATUS_OK;
|
||||
return WERR_OK;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
drsuapi_DsUnbind
|
||||
*/
|
||||
static NTSTATUS drsuapi_DsUnbind(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR drsuapi_DsUnbind(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct drsuapi_DsUnbind *r)
|
||||
{
|
||||
struct dcesrv_handle *h;
|
||||
|
||||
*r->out.bind_handle = *r->in.bind_handle;
|
||||
|
||||
DCESRV_PULL_HANDLE(h, r->in.bind_handle, DRSUAPI_BIND_HANDLE);
|
||||
DCESRV_PULL_HANDLE_WERR(h, r->in.bind_handle, DRSUAPI_BIND_HANDLE);
|
||||
|
||||
/* this causes the callback drsuapi_handle_destroy() to be called by
|
||||
the handle destroy code which destroys the state associated
|
||||
@ -85,14 +83,14 @@ static NTSTATUS drsuapi_DsUnbind(struct dcesrv_call_state *dce_call, TALLOC_CTX
|
||||
|
||||
ZERO_STRUCTP(r->out.bind_handle);
|
||||
|
||||
return NT_STATUS_OK;
|
||||
return WERR_OK;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
DRSUAPI_REPLICA_SYNC
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_REPLICA_SYNC(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_REPLICA_SYNC(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_REPLICA_SYNC *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -102,7 +100,7 @@ static NTSTATUS DRSUAPI_REPLICA_SYNC(struct dcesrv_call_state *dce_call, TALLOC_
|
||||
/*
|
||||
DRSUAPI_GET_NC_CHANGES
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_GET_NC_CHANGES(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_GET_NC_CHANGES(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_GET_NC_CHANGES *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -112,7 +110,7 @@ static NTSTATUS DRSUAPI_GET_NC_CHANGES(struct dcesrv_call_state *dce_call, TALLO
|
||||
/*
|
||||
DRSUAPI_UPDATE_REFS
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_UPDATE_REFS(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_UPDATE_REFS(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_UPDATE_REFS *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -122,7 +120,7 @@ static NTSTATUS DRSUAPI_UPDATE_REFS(struct dcesrv_call_state *dce_call, TALLOC_C
|
||||
/*
|
||||
DRSUAPI_REPLICA_ADD
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_REPLICA_ADD(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_REPLICA_ADD(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_REPLICA_ADD *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -132,7 +130,7 @@ static NTSTATUS DRSUAPI_REPLICA_ADD(struct dcesrv_call_state *dce_call, TALLOC_C
|
||||
/*
|
||||
DRSUAPI_REPLICA_DEL
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_REPLICA_DEL(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_REPLICA_DEL(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_REPLICA_DEL *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -142,7 +140,7 @@ static NTSTATUS DRSUAPI_REPLICA_DEL(struct dcesrv_call_state *dce_call, TALLOC_C
|
||||
/*
|
||||
DRSUAPI_REPLICA_MODIFY
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_REPLICA_MODIFY(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_REPLICA_MODIFY(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_REPLICA_MODIFY *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -152,7 +150,7 @@ static NTSTATUS DRSUAPI_REPLICA_MODIFY(struct dcesrv_call_state *dce_call, TALLO
|
||||
/*
|
||||
DRSUAPI_VERIFY_NAMES
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_VERIFY_NAMES(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_VERIFY_NAMES(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_VERIFY_NAMES *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -162,7 +160,7 @@ static NTSTATUS DRSUAPI_VERIFY_NAMES(struct dcesrv_call_state *dce_call, TALLOC_
|
||||
/*
|
||||
DRSUAPI_GET_MEMBERSHIPS
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_GET_MEMBERSHIPS(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_GET_MEMBERSHIPS(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_GET_MEMBERSHIPS *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -172,7 +170,7 @@ static NTSTATUS DRSUAPI_GET_MEMBERSHIPS(struct dcesrv_call_state *dce_call, TALL
|
||||
/*
|
||||
DRSUAPI_INTER_DOMAIN_MOVE
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_INTER_DOMAIN_MOVE(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_INTER_DOMAIN_MOVE(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_INTER_DOMAIN_MOVE *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -182,7 +180,7 @@ static NTSTATUS DRSUAPI_INTER_DOMAIN_MOVE(struct dcesrv_call_state *dce_call, TA
|
||||
/*
|
||||
DRSUAPI_GET_NT4_CHANGELOG
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_GET_NT4_CHANGELOG(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_GET_NT4_CHANGELOG(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_GET_NT4_CHANGELOG *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -192,13 +190,13 @@ static NTSTATUS DRSUAPI_GET_NT4_CHANGELOG(struct dcesrv_call_state *dce_call, TA
|
||||
/*
|
||||
drsuapi_DsCrackNames => drsuapip_cracknames.c
|
||||
*/
|
||||
static NTSTATUS (*drsuapi_DsCrackNames)(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR (*drsuapi_DsCrackNames)(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct drsuapi_DsCrackNames *r) = dcesrv_drsuapi_DsCrackNames;
|
||||
|
||||
/*
|
||||
DRSUAPI_WRITE_SPN
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_WRITE_SPN(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_WRITE_SPN(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_WRITE_SPN *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -208,7 +206,7 @@ static NTSTATUS DRSUAPI_WRITE_SPN(struct dcesrv_call_state *dce_call, TALLOC_CTX
|
||||
/*
|
||||
DRSUAPI_REMOVE_DS_SERVER
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_REMOVE_DS_SERVER(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_REMOVE_DS_SERVER(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_REMOVE_DS_SERVER *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -218,7 +216,7 @@ static NTSTATUS DRSUAPI_REMOVE_DS_SERVER(struct dcesrv_call_state *dce_call, TAL
|
||||
/*
|
||||
DRSUAPI_REMOVE_DS_DOMAIN
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_REMOVE_DS_DOMAIN(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_REMOVE_DS_DOMAIN(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_REMOVE_DS_DOMAIN *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -228,7 +226,7 @@ static NTSTATUS DRSUAPI_REMOVE_DS_DOMAIN(struct dcesrv_call_state *dce_call, TAL
|
||||
/*
|
||||
drsuapi_DsGetDomainControllerInfo
|
||||
*/
|
||||
static NTSTATUS drsuapi_DsGetDomainControllerInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR drsuapi_DsGetDomainControllerInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct drsuapi_DsGetDomainControllerInfo *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -238,7 +236,7 @@ static NTSTATUS drsuapi_DsGetDomainControllerInfo(struct dcesrv_call_state *dce_
|
||||
/*
|
||||
DRSUAPI_ADD_ENTRY
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_ADD_ENTRY(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_ADD_ENTRY(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_ADD_ENTRY *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -248,7 +246,7 @@ static NTSTATUS DRSUAPI_ADD_ENTRY(struct dcesrv_call_state *dce_call, TALLOC_CTX
|
||||
/*
|
||||
DRSUAPI_EXECUTE_KCC
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_EXECUTE_KCC(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_EXECUTE_KCC(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_EXECUTE_KCC *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -258,7 +256,7 @@ static NTSTATUS DRSUAPI_EXECUTE_KCC(struct dcesrv_call_state *dce_call, TALLOC_C
|
||||
/*
|
||||
DRSUAPI_GET_REPL_INFO
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_GET_REPL_INFO(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_GET_REPL_INFO(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_GET_REPL_INFO *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -268,7 +266,7 @@ static NTSTATUS DRSUAPI_GET_REPL_INFO(struct dcesrv_call_state *dce_call, TALLOC
|
||||
/*
|
||||
DRSUAPI_ADD_SID_HISTORY
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_ADD_SID_HISTORY(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_ADD_SID_HISTORY(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_ADD_SID_HISTORY *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -278,7 +276,7 @@ static NTSTATUS DRSUAPI_ADD_SID_HISTORY(struct dcesrv_call_state *dce_call, TALL
|
||||
/*
|
||||
DRSUAPI_GET_MEMBERSHIPS2
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_GET_MEMBERSHIPS2(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_GET_MEMBERSHIPS2(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_GET_MEMBERSHIPS2 *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -288,7 +286,7 @@ static NTSTATUS DRSUAPI_GET_MEMBERSHIPS2(struct dcesrv_call_state *dce_call, TAL
|
||||
/*
|
||||
DRSUAPI_REPLICA_VERIFY_OBJECTS
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_REPLICA_VERIFY_OBJECTS(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -298,7 +296,7 @@ static NTSTATUS DRSUAPI_REPLICA_VERIFY_OBJECTS(struct dcesrv_call_state *dce_cal
|
||||
/*
|
||||
DRSUAPI_GET_OBJECT_EXISTENCE
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_GET_OBJECT_EXISTENCE(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_GET_OBJECT_EXISTENCE(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
@ -308,7 +306,7 @@ static NTSTATUS DRSUAPI_GET_OBJECT_EXISTENCE(struct dcesrv_call_state *dce_call,
|
||||
/*
|
||||
DRSUAPI_QUERY_SITES_BY_COST
|
||||
*/
|
||||
static NTSTATUS DRSUAPI_QUERY_SITES_BY_COST(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DRSUAPI_QUERY_SITES_BY_COST(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct DRSUAPI_QUERY_SITES_BY_COST *r)
|
||||
{
|
||||
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include "rpc_server/drsuapi/dcesrv_drsuapi.h"
|
||||
|
||||
|
||||
static NTSTATUS DsCrackNameOneName(struct drsuapi_bind_state *b_state, TALLOC_CTX *mem_ctx,
|
||||
static WERROR DsCrackNameOneName(struct drsuapi_bind_state *b_state, TALLOC_CTX *mem_ctx,
|
||||
uint32 format_offered, uint32 format_desired, const char *name,
|
||||
struct drsuapi_DsNameInfo1 *info1)
|
||||
{
|
||||
@ -41,53 +41,53 @@ static NTSTATUS DsCrackNameOneName(struct drsuapi_bind_state *b_state, TALLOC_CT
|
||||
char *str;
|
||||
|
||||
str = talloc_asprintf(mem_ctx, "%s/", lp_realm());
|
||||
NTSTATUS_TALLOC_CHECK(str);
|
||||
WERR_TALLOC_CHECK(str);
|
||||
|
||||
ret = strcasecmp(str, name);
|
||||
talloc_free(str);
|
||||
if (ret != 0) {
|
||||
info1->status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND;
|
||||
return NT_STATUS_OK;
|
||||
return WERR_OK;
|
||||
}
|
||||
|
||||
info1->status = DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY;
|
||||
info1->dns_domain_name = talloc_asprintf(mem_ctx, "%s", lp_realm());
|
||||
NTSTATUS_TALLOC_CHECK(info1->dns_domain_name);
|
||||
WERR_TALLOC_CHECK(info1->dns_domain_name);
|
||||
switch (format_desired) {
|
||||
case DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT:
|
||||
info1->status = DRSUAPI_DS_NAME_STATUS_OK;
|
||||
info1->result_name = talloc_asprintf(mem_ctx, "%s\\",
|
||||
lp_workgroup());
|
||||
NTSTATUS_TALLOC_CHECK(info1->result_name);
|
||||
return NT_STATUS_OK;
|
||||
WERR_TALLOC_CHECK(info1->result_name);
|
||||
return WERR_OK;
|
||||
default:
|
||||
return NT_STATUS_OK;
|
||||
return WERR_OK;
|
||||
}
|
||||
return NT_STATUS_INVALID_PARAMETER;
|
||||
return WERR_INVALID_PARAM;
|
||||
}
|
||||
default: {
|
||||
info1->status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND;
|
||||
return NT_STATUS_OK;
|
||||
return WERR_OK;
|
||||
}
|
||||
}
|
||||
|
||||
return NT_STATUS_INVALID_PARAMETER;
|
||||
return WERR_INVALID_PARAM;
|
||||
}
|
||||
|
||||
/*
|
||||
drsuapi_DsCrackNames
|
||||
*/
|
||||
NTSTATUS dcesrv_drsuapi_DsCrackNames(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
WERROR dcesrv_drsuapi_DsCrackNames(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
|
||||
struct drsuapi_DsCrackNames *r)
|
||||
{
|
||||
NTSTATUS status;
|
||||
WERROR status;
|
||||
struct drsuapi_bind_state *b_state;
|
||||
struct dcesrv_handle *h;
|
||||
|
||||
r->out.level = r->in.level;
|
||||
ZERO_STRUCT(r->out.ctr);
|
||||
|
||||
DCESRV_PULL_HANDLE(h, r->in.bind_handle, DRSUAPI_BIND_HANDLE);
|
||||
DCESRV_PULL_HANDLE_WERR(h, r->in.bind_handle, DRSUAPI_BIND_HANDLE);
|
||||
b_state = h->data;
|
||||
|
||||
switch (r->in.level) {
|
||||
@ -97,14 +97,14 @@ NTSTATUS dcesrv_drsuapi_DsCrackNames(struct dcesrv_call_state *dce_call, TALLOC_
|
||||
int i;
|
||||
|
||||
r->out.ctr.ctr1 = talloc_p(mem_ctx, struct drsuapi_DsNameCtr1);
|
||||
NTSTATUS_TALLOC_CHECK(r->out.ctr.ctr1);
|
||||
WERR_TALLOC_CHECK(r->out.ctr.ctr1);
|
||||
|
||||
r->out.ctr.ctr1->count = 0;
|
||||
r->out.ctr.ctr1->array = NULL;
|
||||
|
||||
count = r->in.req.req1.count;
|
||||
names = talloc_array_p(mem_ctx, struct drsuapi_DsNameInfo1, count);
|
||||
NTSTATUS_TALLOC_CHECK(names);
|
||||
WERR_TALLOC_CHECK(names);
|
||||
|
||||
for (i=0; i < count; i++) {
|
||||
status = DsCrackNameOneName(b_state, mem_ctx,
|
||||
@ -112,7 +112,7 @@ NTSTATUS dcesrv_drsuapi_DsCrackNames(struct dcesrv_call_state *dce_call, TALLOC_
|
||||
r->in.req.req1.format_desired,
|
||||
r->in.req.req1.names[i].str,
|
||||
&names[i]);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
if (!W_ERROR_IS_OK(status)) {
|
||||
return status;
|
||||
}
|
||||
}
|
||||
@ -120,9 +120,9 @@ NTSTATUS dcesrv_drsuapi_DsCrackNames(struct dcesrv_call_state *dce_call, TALLOC_
|
||||
r->out.ctr.ctr1->count = count;
|
||||
r->out.ctr.ctr1->array = names;
|
||||
|
||||
return NT_STATUS_OK;
|
||||
return WERR_OK;
|
||||
}
|
||||
}
|
||||
|
||||
return NT_STATUS_INVALID_LEVEL;
|
||||
return WERR_UNKNOWN_LEVEL;
|
||||
}
|
||||
|
@ -34,13 +34,18 @@ static BOOL test_DsBind(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
r.in.bind_info = NULL;
|
||||
r.out.bind_handle = bind_handle;
|
||||
|
||||
printf("testing DsBind\n");
|
||||
|
||||
status = dcerpc_drsuapi_DsBind(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsBind failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsBind failed - %s\n", errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsBind failed - %s\n", win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
@ -72,13 +77,19 @@ static BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
r.in.req.req1.format_desired = DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT;
|
||||
names[0].str = talloc_asprintf(mem_ctx, "%s/", lp_realm());
|
||||
|
||||
printf("testing DsCrackNames with name '%s' desired format:%d\n",
|
||||
names[0].str, r.in.req.req1.format_desired);
|
||||
|
||||
status = dcerpc_drsuapi_DsCrackNames(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
@ -93,13 +104,19 @@ static BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
r.in.req.req1.format_desired = DRSUAPI_DS_NAME_FORMAT_FQDN_1779;
|
||||
names[0].str = nt4_domain;
|
||||
|
||||
printf("testing DsCrackNames with name '%s' desired format:%d\n",
|
||||
names[0].str, r.in.req.req1.format_desired);
|
||||
|
||||
status = dcerpc_drsuapi_DsCrackNames(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
@ -113,13 +130,19 @@ static BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
r.in.req.req1.format_desired = DRSUAPI_DS_NAME_FORMAT_FQDN_1779;
|
||||
names[0].str = talloc_asprintf(mem_ctx, "%s%s$", nt4_domain, dcerpc_server_name(p));
|
||||
|
||||
printf("testing DsCrackNames with name '%s' desired format:%d\n",
|
||||
names[0].str, r.in.req.req1.format_desired);
|
||||
|
||||
status = dcerpc_drsuapi_DsCrackNames(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
@ -133,13 +156,19 @@ static BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
r.in.req.req1.format_desired = DRSUAPI_DS_NAME_FORMAT_CANONICAL;
|
||||
names[0].str = FQDN_1779_name;
|
||||
|
||||
printf("testing DsCrackNames with name '%s' desired format:%d\n",
|
||||
names[0].str, r.in.req.req1.format_desired);
|
||||
|
||||
status = dcerpc_drsuapi_DsCrackNames(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
@ -149,13 +178,19 @@ static BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
|
||||
r.in.req.req1.format_desired = DRSUAPI_DS_NAME_FORMAT_DISPLAY;
|
||||
|
||||
printf("testing DsCrackNames with name '%s' desired format:%d\n",
|
||||
names[0].str, r.in.req.req1.format_desired);
|
||||
|
||||
status = dcerpc_drsuapi_DsCrackNames(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
@ -165,13 +200,19 @@ static BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
|
||||
r.in.req.req1.format_desired = DRSUAPI_DS_NAME_FORMAT_GUID;
|
||||
|
||||
printf("testing DsCrackNames with name '%s' desired format:%d\n",
|
||||
names[0].str, r.in.req.req1.format_desired);
|
||||
|
||||
status = dcerpc_drsuapi_DsCrackNames(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
@ -181,13 +222,19 @@ static BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
|
||||
r.in.req.req1.format_desired = DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL;
|
||||
|
||||
printf("testing DsCrackNames with name '%s' desired format:%d\n",
|
||||
names[0].str, r.in.req.req1.format_desired);
|
||||
|
||||
status = dcerpc_drsuapi_DsCrackNames(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
@ -197,13 +244,19 @@ static BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
|
||||
r.in.req.req1.format_desired = DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL;
|
||||
|
||||
printf("testing DsCrackNames with name '%s' desired format:%d\n",
|
||||
names[0].str, r.in.req.req1.format_desired);
|
||||
|
||||
status = dcerpc_drsuapi_DsCrackNames(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
@ -223,72 +276,118 @@ static BOOL test_DsGetDCInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
|
||||
r.in.bind_handle = bind_handle;
|
||||
r.in.level = 1;
|
||||
|
||||
r.in.req.req1.domain_name = talloc_strdup(mem_ctx, lp_realm());
|
||||
r.in.req.req1.level = 1;
|
||||
|
||||
printf("testing DsGetDomainControllerInfo level %d on domainname '%s'\n",
|
||||
r.in.req.req1.level, r.in.req.req1.domain_name);
|
||||
|
||||
status = dcerpc_drsuapi_DsGetDomainControllerInfo(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsGetDomainControllerInfo failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsGetDomainControllerInfo level %d\n"
|
||||
" with dns domain failed - %s\n",
|
||||
r.in.req.req1.level, errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsGetDomainControllerInfo level %d\n"
|
||||
" with dns domain failed - %s\n",
|
||||
r.in.req.req1.level, win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
r.in.req.req1.level = 2;
|
||||
|
||||
printf("testing DsGetDomainControllerInfo level %d on domainname '%s'\n",
|
||||
r.in.req.req1.level, r.in.req.req1.domain_name);
|
||||
|
||||
status = dcerpc_drsuapi_DsGetDomainControllerInfo(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsGetDomainControllerInfo failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsGetDomainControllerInfo level %d\n"
|
||||
" with dns domain failed - %s\n",
|
||||
r.in.req.req1.level, errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsGetDomainControllerInfo level %d\n"
|
||||
" with dns domain failed - %s\n",
|
||||
r.in.req.req1.level, win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
r.in.req.req1.level = -1;
|
||||
|
||||
printf("testing DsGetDomainControllerInfo level %d on domainname '%s'\n",
|
||||
r.in.req.req1.level, r.in.req.req1.domain_name);
|
||||
|
||||
status = dcerpc_drsuapi_DsGetDomainControllerInfo(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsGetDomainControllerInfo failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsGetDomainControllerInfo level %d\n"
|
||||
" with dns domain failed - %s\n",
|
||||
r.in.req.req1.level, errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsGetDomainControllerInfo level %d\n"
|
||||
" with dns domain failed - %s\n",
|
||||
r.in.req.req1.level, win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
r.in.req.req1.domain_name = talloc_strdup(mem_ctx, lp_workgroup());
|
||||
r.in.req.req1.level = 2;
|
||||
|
||||
printf("testing DsGetDomainControllerInfo level %d on domainname '%s'\n",
|
||||
r.in.req.req1.level, r.in.req.req1.domain_name);
|
||||
|
||||
status = dcerpc_drsuapi_DsGetDomainControllerInfo(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsGetDomainControllerInfo failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsGetDomainControllerInfo level %d\n"
|
||||
" with netbios domain failed - %s\n",
|
||||
r.in.req.req1.level, errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsGetDomainControllerInfo level %d\n"
|
||||
" with netbios domain failed - %s\n",
|
||||
r.in.req.req1.level, win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
r.in.req.req1.domain_name = "__UNKNOWN_DOMAIN__";
|
||||
r.in.req.req1.level = 2;
|
||||
|
||||
printf("testing DsGetDomainControllerInfo level %d on domainname '%s'\n",
|
||||
r.in.req.req1.level, r.in.req.req1.domain_name);
|
||||
|
||||
status = dcerpc_drsuapi_DsGetDomainControllerInfo(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
|
||||
if (!NT_STATUS_EQUAL(status, NT_STATUS(0x0000208d))) {
|
||||
printf("drsuapi_DsGetDomainControllerInfo level %d with invalid domain name\n"
|
||||
" - %s != NTSTATUS[0x0000208d]\n",
|
||||
r.in.req.req1.level, errstr);
|
||||
ret = False;
|
||||
}
|
||||
printf("dcerpc_drsuapi_DsGetDomainControllerInfo level %d\n"
|
||||
" with invalid domain failed - %s\n",
|
||||
r.in.req.req1.level, errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_EQUAL(r.out.result, WERR_DS_OBJ_NOT_FOUND)) {
|
||||
printf("DsGetDomainControllerInfo level %d\n"
|
||||
" with invalid domain not expected error (WERR_DS_OBJ_NOT_FOUND) - %s\n",
|
||||
r.in.req.req1.level, win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
return ret;
|
||||
@ -304,13 +403,18 @@ static BOOL test_DsUnbind(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
r.in.bind_handle = bind_handle;
|
||||
r.out.bind_handle = bind_handle;
|
||||
|
||||
printf("testing DsUnbind\n");
|
||||
|
||||
status = dcerpc_drsuapi_DsUnbind(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
const char *errstr = nt_errstr(status);
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
|
||||
errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
|
||||
}
|
||||
printf("drsuapi_DsUnbind failed - %s\n", errstr);
|
||||
printf("dcerpc_drsuapi_DsUnbind failed - %s\n", errstr);
|
||||
ret = False;
|
||||
} else if (!W_ERROR_IS_OK(r.out.result)) {
|
||||
printf("DsBind failed - %s\n", win_errstr(r.out.result));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user