From eb9ae52981d0275d3830fb533a06472aef3508db Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Fri, 8 Jun 2007 10:32:29 +0000 Subject: r23381: Merge netr_GetDcName WERROR return and WERROR_DOMAIN_CONTROLLER_NOT_FOUND from SAMBA_3_0. Guenther (This used to be commit 841ad140a34648ff52d5e44a6642f346ef9eee02) --- source4/libcli/util/doserr.c | 1 + source4/libcli/util/doserr.h | 1 + source4/librpc/idl/netlogon.idl | 2 +- source4/rpc_server/netlogon/dcerpc_netlogon.c | 2 +- source4/torture/rpc/netlogon.c | 4 ++-- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/source4/libcli/util/doserr.c b/source4/libcli/util/doserr.c index 716ca438db..76c59570a9 100644 --- a/source4/libcli/util/doserr.c +++ b/source4/libcli/util/doserr.c @@ -63,6 +63,7 @@ static const struct werror_code_struct dos_errs[] = { "WERR_JOB_NOT_FOUND", WERR_JOB_NOT_FOUND }, { "WERR_DEST_NOT_FOUND", WERR_DEST_NOT_FOUND }, { "WERR_NOT_LOCAL_DOMAIN", WERR_NOT_LOCAL_DOMAIN }, + { "WERR_DOMAIN_CONTROLLER_NOT_FOUND", WERR_DOMAIN_CONTROLLER_NOT_FOUND }, { "WERR_DEVICE_NOT_AVAILABLE", WERR_DEVICE_NOT_AVAILABLE }, { "WERR_PRINTER_DRIVER_IN_USE", WERR_PRINTER_DRIVER_IN_USE }, { "WERR_STATUS_MORE_ENTRIES", WERR_STATUS_MORE_ENTRIES }, diff --git a/source4/libcli/util/doserr.h b/source4/libcli/util/doserr.h index ddcc060eb6..b091a290b9 100644 --- a/source4/libcli/util/doserr.h +++ b/source4/libcli/util/doserr.h @@ -214,6 +214,7 @@ #define WERR_SESSION_NOT_FOUND W_ERROR(2312) #define WERR_FID_NOT_FOUND W_ERROR(2314) #define WERR_NOT_LOCAL_DOMAIN W_ERROR(2320) +#define WERR_DOMAIN_CONTROLLER_NOT_FOUND W_ERROR(2453) #define WERR_DEVICE_NOT_AVAILABLE W_ERROR(4319) #define WERR_STATUS_MORE_ENTRIES W_ERROR(0x0105) diff --git a/source4/librpc/idl/netlogon.idl b/source4/librpc/idl/netlogon.idl index b83454908e..eede7ed035 100644 --- a/source4/librpc/idl/netlogon.idl +++ b/source4/librpc/idl/netlogon.idl @@ -756,7 +756,7 @@ interface netlogon /*****************/ /* Function 0x0B */ - NTSTATUS netr_GetDcName( + WERROR netr_GetDcName( [in] [string,charset(UTF16)] uint16 logon_server[], [in] [string,charset(UTF16)] uint16 *domainname, [out] [string,charset(UTF16)] uint16 *dcname diff --git a/source4/rpc_server/netlogon/dcerpc_netlogon.c b/source4/rpc_server/netlogon/dcerpc_netlogon.c index 38356f7260..20f2959abc 100644 --- a/source4/rpc_server/netlogon/dcerpc_netlogon.c +++ b/source4/rpc_server/netlogon/dcerpc_netlogon.c @@ -692,7 +692,7 @@ static NTSTATUS dcesrv_netr_AccountSync(struct dcesrv_call_state *dce_call, TALL /* netr_GetDcName */ -static NTSTATUS dcesrv_netr_GetDcName(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, +static WERROR dcesrv_netr_GetDcName(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct netr_GetDcName *r) { DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); diff --git a/source4/torture/rpc/netlogon.c b/source4/torture/rpc/netlogon.c index 2c566d38ce..ec4ee5d18c 100644 --- a/source4/torture/rpc/netlogon.c +++ b/source4/torture/rpc/netlogon.c @@ -839,8 +839,8 @@ static BOOL test_GetDcName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx) printf("Testing GetDcName\n"); status = dcerpc_netr_GetDcName(p, mem_ctx, &r); - if (!NT_STATUS_IS_OK(status)) { - printf("GetDcName - %s\n", nt_errstr(status)); + if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) { + printf("GetDcName - %s/%s\n", nt_errstr(status), win_errstr(r.out.result)); return False; } -- cgit