summaryrefslogtreecommitdiff
path: root/source3/libsmb
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2001-11-23 05:50:05 +0000
committerTim Potter <tpot@samba.org>2001-11-23 05:50:05 +0000
commita2e136a8a0c9836420db0b595c8d45c106a0663c (patch)
tree297e3fdec68fe4d939c73eb7c5e3ca8e42b5c9bb /source3/libsmb
parent554d387ab33220e7dc02d7a8c1aba854277b92f3 (diff)
downloadsamba-a2e136a8a0c9836420db0b595c8d45c106a0663c.tar.gz
samba-a2e136a8a0c9836420db0b595c8d45c106a0663c.tar.bz2
samba-a2e136a8a0c9836420db0b595c8d45c106a0663c.zip
Finally worked out why a enumerate trusted domains was returning a
NT_STATUS_UNABLE_TO_FREE_VM error. This error code was mis-defined as 0x8000001a instead of 0xc000001a. The former is actually a NT_STATUS_NO_MORE_ENTRIES warning which is what we see in the status code. Removed the & 0xffffff from the loop in get_nt_error_msg() as all the error constants now have the correct high bits set. (This used to be commit 80dca2c9e46753d87e673d712c96c76ffde0b276)
Diffstat (limited to 'source3/libsmb')
-rw-r--r--source3/libsmb/cli_lsarpc.c21
-rw-r--r--source3/libsmb/nterr.c5
2 files changed, 15 insertions, 11 deletions
diff --git a/source3/libsmb/cli_lsarpc.c b/source3/libsmb/cli_lsarpc.c
index b533fe7449..97f604fcb5 100644
--- a/source3/libsmb/cli_lsarpc.c
+++ b/source3/libsmb/cli_lsarpc.c
@@ -25,7 +25,8 @@
#include "includes.h"
-/** @defgroup rpc_client RPC Client
+/** @defgroup lsa LSA rpc client routines
+ * @ingroup rpc_client
*
* @{
**/
@@ -37,16 +38,22 @@
* security authority", which is half of a password database.
**/
-/** Opens a SMB connection to the lsa pipe
+/** Opens a SMB connection and connects to the LSARPC pipe.
*
- * @param system_name NETBIOS name of the machine to connect to. */
+ * @param cli Uninitialised client handle.
+ * @param system_name NETBIOS name of the machine to connect to.
+ * @param creds User credentials to connect as.
+ * @returns Initialised client handle.
+ */
struct cli_state *cli_lsa_initialise(struct cli_state *cli, char *system_name,
struct ntuser_creds *creds)
{
return cli_pipe_initialise(cli, system_name, PIPE_LSARPC, creds);
}
-/** Open a LSA policy handle */
+/** Open a LSA policy handle
+ *
+ * @param cli Handle on an initialised SMB connection */
NTSTATUS cli_lsa_open_policy(struct cli_state *cli, TALLOC_CTX *mem_ctx,
BOOL sec_qos, uint32 des_access, POLICY_HND *pol)
@@ -548,12 +555,8 @@ NTSTATUS cli_lsa_enum_trust_dom(struct cli_state *cli, TALLOC_CTX *mem_ctx,
result = r.status;
- /* For some undocumented reason this function sometimes returns
- 0x8000001a (NT_STATUS_UNABLE_TO_FREE_VM) so we ignore it and
- pretend everything is OK. */
-
if (!NT_STATUS_IS_OK(result) &&
- NT_STATUS_V(result) != NT_STATUS_V(NT_STATUS_UNABLE_TO_FREE_VM)) {
+ NT_STATUS_V(result) != NT_STATUS_V(NT_STATUS_NO_MORE_ENTRIES)) {
/* An actual error ocured */
diff --git a/source3/libsmb/nterr.c b/source3/libsmb/nterr.c
index ab0a425633..238908d6cd 100644
--- a/source3/libsmb/nterr.c
+++ b/source3/libsmb/nterr.c
@@ -534,6 +534,7 @@ nt_err_code_struct nt_errs[] =
{ "NT_STATUS_TOO_MANY_LINKS", NT_STATUS_TOO_MANY_LINKS },
{ "NT_STATUS_QUOTA_LIST_INCONSISTENT", NT_STATUS_QUOTA_LIST_INCONSISTENT },
{ "NT_STATUS_FILE_IS_OFFLINE", NT_STATUS_FILE_IS_OFFLINE },
+ { "NT_STATUS_NO_MORE_ENTRIES", NT_STATUS_NO_MORE_ENTRIES },
{ NULL, NT_STATUS(0) }
};
@@ -548,8 +549,8 @@ char *get_nt_error_msg(NTSTATUS nt_code)
slprintf(msg, sizeof(msg), "NT code 0x%08x", NT_STATUS_V(nt_code));
while (nt_errs[idx].nt_errstr != NULL) {
- if ((NT_STATUS_V(nt_errs[idx].nt_errcode) & 0xFFFFFF) ==
- (NT_STATUS_V(nt_code) & 0xFFFFFF)) {
+ if (NT_STATUS_V(nt_errs[idx].nt_errcode) ==
+ NT_STATUS_V(nt_code)) {
return nt_errs[idx].nt_errstr;
}
idx++;