[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Thu Mar 3 18:12:01 MST 2011


The branch, master has been updated
       via  e63f0df s3-waf: add wildcard commands from main wscript.
       via  ef87f97 s3-nterr: use strcasecmp in nt_status_string_to_code().
       via  dc35442 s4-nterr: move auth_nt_status_squash to nt_status_squash and move to nterr.c
       via  9f4b3b1 s4-nterr: some minor cosmetic edits to further match s3 nterr.
       via  d367777 s3-nterr: within nt_errstr() compare codes using NT_STATUS_V().
       via  199809b nterr: make sure both nt_err_desc structs are the same.
       via  45710a0 nterr: make sure both nt_errs structs are the same.
       via  648a9fb s4-nterr: add _N macro handling as in s3-nterr.
       via  c1089c1 s3-nterr: make nt_err_desc static const.
       via  cb8c0e1 nterr: remove space indents (use tabs instead), following coding standards.
       via  2f46942 nterr: remove trailing whitespace.
      from  6b3d68f s3-waf: add check for SEEKDIR_RETURNS_VOID.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit e63f0dfba173e9553ec2bb009b58113b4270f437
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 2 23:13:29 2011 +0100

    s3-waf: add wildcard commands from main wscript.
    
    Guenther
    
    Autobuild-User: Günther Deschner <gd at samba.org>
    Autobuild-Date: Fri Mar  4 02:11:11 CET 2011 on sn-devel-104

commit ef87f970b324d20cdd1b754a3096cf47b78a490f
Author: Günther Deschner <gd at samba.org>
Date:   Thu Mar 3 01:11:43 2011 +0100

    s3-nterr: use strcasecmp in nt_status_string_to_code().
    
    Guenther

commit dc35442fb163c6f14cf8c5730056a4a094ead85a
Author: Günther Deschner <gd at samba.org>
Date:   Thu Mar 3 01:05:33 2011 +0100

    s4-nterr: move auth_nt_status_squash to nt_status_squash and move to nterr.c
    
    Guenther

commit 9f4b3b103fea1f2b5f54bae79a86b1490ddc21eb
Author: Günther Deschner <gd at samba.org>
Date:   Thu Mar 3 00:41:11 2011 +0100

    s4-nterr: some minor cosmetic edits to further match s3 nterr.
    
    Guenther

commit d36777735282b7d22c7d5e21f525c4f24fd774b1
Author: Günther Deschner <gd at samba.org>
Date:   Thu Mar 3 00:39:44 2011 +0100

    s3-nterr: within nt_errstr() compare codes using NT_STATUS_V().
    
    This is to avoid future very special NT_STATUS_EQUAL semantics within s4.
    
    Guenther

commit 199809b3cc51109aca9b8f2c4f21bd5bf69d36c5
Author: Günther Deschner <gd at samba.org>
Date:   Thu Mar 3 00:06:13 2011 +0100

    nterr: make sure both nt_err_desc structs are the same.
    
    Guenther

commit 45710a05c5daccc3f1b2127ce24a87850fc42e33
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 2 23:51:56 2011 +0100

    nterr: make sure both nt_errs structs are the same.
    
    Guenther

commit 648a9fbc033c7949cfe01052802d314c55da6138
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 2 23:40:58 2011 +0100

    s4-nterr: add _N macro handling as in s3-nterr.
    
    Guenther

commit c1089c130ba24ff71dafdea2b53df46056b49aeb
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 2 23:40:05 2011 +0100

    s3-nterr: make nt_err_desc static const.
    
    Guenther

commit cb8c0e177687769638ee3aef59a86c4c4a80b971
Author: Günther Deschner <gd at samba.org>
Date:   Thu Mar 3 01:16:22 2011 +0100

    nterr: remove space indents (use tabs instead), following coding standards.
    
    Guenther

commit 2f46942e08d1465bdbdbb88bf3ba3018dde25d61
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 2 23:16:35 2011 +0100

    nterr: remove trailing whitespace.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source3/libsmb/nterr.c              |   85 +++++++-----
 source3/wscript                     |   12 ++-
 source4/auth/auth.h                 |    1 -
 source4/auth/gensec/gensec.h        |    2 +-
 source4/auth/ntlm/auth_util.c       |   24 ---
 source4/ldap_server/ldap_bind.c     |    4 +-
 source4/libcli/util/nterr.c         |  276 ++++++++++++++++++++---------------
 source4/smb_server/smb/sesssetup.c  |   10 +-
 source4/smb_server/smb2/sesssetup.c |    4 +-
 source4/utils/ntlm_auth.c           |    2 +-
 10 files changed, 232 insertions(+), 188 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/libsmb/nterr.c b/source3/libsmb/nterr.c
index 5fa9ade..1ba2691 100644
--- a/source3/libsmb/nterr.c
+++ b/source3/libsmb/nterr.c
@@ -1,18 +1,18 @@
-/* 
+/*
  *  Unix SMB/CIFS implementation.
  *  RPC Pipe client / server routines
  *  Copyright (C) Luke Kenneth Casson Leighton 1997-2001.
- *  
+ *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  the Free Software Foundation; either version 3 of the License, or
  *  (at your option) any later version.
- *  
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
- *  
+ *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
@@ -20,6 +20,7 @@
 /* NT error codes.  please read nterr.h */
 
 #include "includes.h"
+#undef strcasecmp
 
 #if !defined(N_)
 #define N_(string) string
@@ -34,6 +35,11 @@ typedef struct
 static const nt_err_code_struct nt_errs[] =
 {
 	{ "NT_STATUS_OK", NT_STATUS_OK },
+	{ "STATUS_NO_MORE_FILES", STATUS_NO_MORE_FILES },
+	{ "STATUS_NO_MORE_EAS", STATUS_NO_MORE_EAS },
+	{ "STATUS_INVALID_EA_NAME", STATUS_INVALID_EA_NAME },
+	{ "STATUS_EA_LIST_INCONSISTENT", STATUS_EA_LIST_INCONSISTENT },
+	{ "STATUS_INVALID_EA_FLAG", STATUS_INVALID_EA_FLAG },
 	{ "NT_STATUS_UNSUCCESSFUL", NT_STATUS_UNSUCCESSFUL },
 	{ "NT_STATUS_NOT_IMPLEMENTED", NT_STATUS_NOT_IMPLEMENTED },
 	{ "NT_STATUS_INVALID_INFO_CLASS", NT_STATUS_INVALID_INFO_CLASS },
@@ -538,11 +544,7 @@ static const nt_err_code_struct nt_errs[] =
 	{ "NT_STATUS_FILE_IS_OFFLINE", NT_STATUS_FILE_IS_OFFLINE },
 	{ "NT_STATUS_DS_NO_MORE_RIDS", NT_STATUS_DS_NO_MORE_RIDS },
 	{ "NT_STATUS_NOT_A_REPARSE_POINT", NT_STATUS_NOT_A_REPARSE_POINT },
-	{ "NT_STATUS_DOWNGRADE_DETECTED", NT_STATUS_DOWNGRADE_DETECTED },
-        { "NT_STATUS_NO_MORE_ENTRIES", NT_STATUS_NO_MORE_ENTRIES },
-	{ "STATUS_MORE_ENTRIES", STATUS_MORE_ENTRIES },
-	{ "STATUS_SOME_UNMAPPED", STATUS_SOME_UNMAPPED },
-	{ "STATUS_NO_MORE_FILES", STATUS_NO_MORE_FILES },
+	{ "NT_STATUS_NO_MORE_ENTRIES", NT_STATUS_NO_MORE_ENTRIES },
 	{ "NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED", NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED },
 	{ "NT_STATUS_RPC_UNSUPPORTED_NAME_SYNTAX", NT_STATUS_RPC_UNSUPPORTED_NAME_SYNTAX },
 	{ "NT_STATUS_RPC_UNKNOWN_IF", NT_STATUS_RPC_UNKNOWN_IF },
@@ -560,12 +562,23 @@ static const nt_err_code_struct nt_errs[] =
 	{ "NT_STATUS_RPC_PIPE_CLOSED", NT_STATUS_RPC_PIPE_CLOSED },
 	{ "NT_STATUS_RPC_PIPE_DISCIPLINE_ERROR", NT_STATUS_RPC_PIPE_DISCIPLINE_ERROR },
 	{ "NT_STATUS_RPC_PIPE_EMPTY", NT_STATUS_RPC_PIPE_EMPTY },
+	{ "NT_STATUS_CURRENT_DOMAIN_NOT_ALLOWED", NT_STATUS_CURRENT_DOMAIN_NOT_ALLOWED },
+	{ "NT_STATUS_OBJECTID_NOT_FOUND", NT_STATUS_OBJECTID_NOT_FOUND },
+	{ "NT_STATUS_DOWNGRADE_DETECTED", NT_STATUS_DOWNGRADE_DETECTED },
+	{ "NT_STATUS_INVALID_LOCK_RANGE", NT_STATUS_INVALID_LOCK_RANGE },
+	{ "NT_STATUS_ERROR_DS_OBJ_STRING_NAME_EXISTS", NT_STATUS_ERROR_DS_OBJ_STRING_NAME_EXISTS },
+	{ "NT_STATUS_ERROR_DS_INCOMPATIBLE_VERSION", NT_STATUS_ERROR_DS_INCOMPATIBLE_VERSION },
+	{ "STATUS_MORE_ENTRIES", STATUS_MORE_ENTRIES },
+	{ "STATUS_SOME_UNMAPPED", STATUS_SOME_UNMAPPED },
+	{ "STATUS_NOTIFY_CLEANUP", STATUS_NOTIFY_CLEANUP },
+	{ "STATUS_NOTIFY_ENUM_DIR", STATUS_NOTIFY_ENUM_DIR },
+
 	{ NULL, NT_STATUS(0) }
 };
 
 /* These need sorting..... */
 
-nt_err_code_struct nt_err_desc[] =
+static const nt_err_code_struct nt_err_desc[] =
 {
 	{ N_("Success"), 				NT_STATUS_OK },
 	{ N_("Undetermined error"), 		NT_STATUS_UNSUCCESSFUL },
@@ -591,8 +604,10 @@ nt_err_code_struct nt_err_desc[] =
 	{ N_("Invalid workstation"), 		NT_STATUS_INVALID_WORKSTATION },
 	{ N_("Password expired"), 			NT_STATUS_PASSWORD_EXPIRED },
 	{ N_("Account disabled"), 			NT_STATUS_ACCOUNT_DISABLED },
+	{ N_("Unexpected information received"), 	NT_STATUS_INVALID_PARAMETER },
 	{ N_("Memory allocation error"), 		NT_STATUS_NO_MEMORY },
 	{ N_("No domain controllers located"), 	NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND },
+	{ N_("Account locked out"), 		NT_STATUS_ACCOUNT_LOCKED_OUT },
 	{ N_("Named pipe not available"), 		NT_STATUS_PIPE_NOT_AVAILABLE },
 	{ N_("Not implemented"), 			NT_STATUS_NOT_IMPLEMENTED },
 	{ N_("Invalid information class"), 		NT_STATUS_INVALID_INFO_CLASS },
@@ -603,6 +618,7 @@ nt_err_code_struct nt_err_desc[] =
 	{ N_("No memory"), 				NT_STATUS_NO_MEMORY },
 	{ N_("Buffer too small"), 			NT_STATUS_BUFFER_TOO_SMALL },
 	{ N_("Revision mismatch"), 			NT_STATUS_REVISION_MISMATCH },
+	{ N_("No logon servers"), 			NT_STATUS_NO_LOGON_SERVERS },
 	{ N_("No such logon session"), 		NT_STATUS_NO_SUCH_LOGON_SESSION },
 	{ N_("No such privilege"), 			NT_STATUS_NO_SUCH_PRIVILEGE },
 	{ N_("Procedure not found"), 		NT_STATUS_PROCEDURE_NOT_FOUND },
@@ -630,7 +646,7 @@ nt_err_code_struct nt_err_desc[] =
 	{ N_("Logon session collision"), 		NT_STATUS_LOGON_SESSION_COLLISION },
 	{ N_("Invalid logon type"), 		NT_STATUS_INVALID_LOGON_TYPE },
 	{ N_("Cancelled"), 				NT_STATUS_CANCELLED },
-	{ N_("Invalid computer name"), 		NT_STATUS_INVALID_COMPUTER_NAME },	
+	{ N_("Invalid computer name"), 		NT_STATUS_INVALID_COMPUTER_NAME },
 	{ N_("Logon server conflict"), 		NT_STATUS_LOGON_SERVER_CONFLICT },
 	{ N_("Time difference at domain controller"), NT_STATUS_TIME_DIFFERENCE_AT_DC },
 	{ N_("Pipe broken"), 			NT_STATUS_PIPE_BROKEN },
@@ -656,7 +672,7 @@ nt_err_code_struct nt_err_desc[] =
 	{ N_("User session deleted"), 		NT_STATUS_USER_SESSION_DELETED },
 	{ N_("Insufficient server resources"), 	NT_STATUS_INSUFF_SERVER_RESOURCES },
 	{ N_("Insufficient logon information"), 	NT_STATUS_INSUFFICIENT_LOGON_INFO },
-	
+
 	{ N_("License quota exceeded"), 		NT_STATUS_LICENSE_QUOTA_EXCEEDED },
 	{ N_("No more files"),			STATUS_NO_MORE_FILES },
 
@@ -669,12 +685,12 @@ nt_err_code_struct nt_err_desc[] =
 
 const char *nt_errstr(NTSTATUS nt_code)
 {
-        int idx = 0;
+	int idx = 0;
 	char *result;
 
 #ifdef HAVE_LDAP
-        if (NT_STATUS_IS_LDAP(nt_code)) {
-                return ldap_err2string(NT_STATUS_LDAP_CODE(nt_code));
+	if (NT_STATUS_IS_LDAP(nt_code)) {
+		return ldap_err2string(NT_STATUS_LDAP_CODE(nt_code));
 	}
 #endif
 
@@ -684,8 +700,9 @@ const char *nt_errstr(NTSTATUS nt_code)
 	}
 
 	while (nt_errs[idx].nt_errstr != NULL) {
-		if (NT_STATUS_EQUAL(nt_errs[idx].nt_errcode, nt_code)) {
-                        return nt_errs[idx].nt_errstr;
+		if (NT_STATUS_V(nt_errs[idx].nt_errcode) ==
+		    NT_STATUS_V(nt_code)) {
+			return nt_errs[idx].nt_errstr;
 		}
 		idx++;
 	}
@@ -699,20 +716,20 @@ const char *nt_errstr(NTSTATUS nt_code)
 /************************************************************************
  Print friendler version fo NT error code
  ***********************************************************************/
- 
+
 const char *get_friendly_nt_error_msg(NTSTATUS nt_code)
 {
-        int idx = 0;
+	int idx = 0;
 
 	while (nt_err_desc[idx].nt_errstr != NULL) {
 		if (NT_STATUS_V(nt_err_desc[idx].nt_errcode) == NT_STATUS_V(nt_code)) {
-                        return nt_err_desc[idx].nt_errstr;
+			return nt_err_desc[idx].nt_errstr;
 		}
 		idx++;
 	}
-	
+
 	/* fall back to NT_STATUS_XXX string */
-	
+
 	return nt_errstr(nt_code);
 }
 
@@ -723,12 +740,12 @@ const char *get_friendly_nt_error_msg(NTSTATUS nt_code)
 const char *get_nt_error_c_code(NTSTATUS nt_code)
 {
 	char *result;
-        int idx = 0;
+	int idx = 0;
 
 	while (nt_errs[idx].nt_errstr != NULL) {
-		if (NT_STATUS_V(nt_errs[idx].nt_errcode) == 
-                    NT_STATUS_V(nt_code)) {
-                        return nt_errs[idx].nt_errstr;
+		if (NT_STATUS_V(nt_errs[idx].nt_errcode) ==
+		    NT_STATUS_V(nt_code)) {
+			return nt_errs[idx].nt_errstr;
 		}
 		idx++;
 	}
@@ -745,11 +762,11 @@ const char *get_nt_error_c_code(NTSTATUS nt_code)
 
 NTSTATUS nt_status_string_to_code(const char *nt_status_str)
 {
-        int idx = 0;
+	int idx = 0;
 
 	while (nt_errs[idx].nt_errstr != NULL) {
-		if (strcmp(nt_errs[idx].nt_errstr, nt_status_str) == 0) {
-                        return nt_errs[idx].nt_errcode;
+		if (strcasecmp(nt_errs[idx].nt_errstr, nt_status_str) == 0) {
+			return nt_errs[idx].nt_errcode;
 		}
 		idx++;
 	}
@@ -759,8 +776,8 @@ NTSTATUS nt_status_string_to_code(const char *nt_status_str)
 /**
  * Squash an NT_STATUS in line with security requirements.
  * In an attempt to avoid giving the whole game away when users
- * are authenticating, NT replaces both NT_STATUS_NO_SUCH_USER and 
- * NT_STATUS_WRONG_PASSWORD with NT_STATUS_LOGON_FAILURE in certain situations 
+ * are authenticating, NT replaces both NT_STATUS_NO_SUCH_USER and
+ * NT_STATUS_WRONG_PASSWORD with NT_STATUS_LOGON_FAILURE in certain situations
  * (session setups in particular).
  *
  * @param nt_status NTSTATUS input for squashing.
@@ -770,15 +787,15 @@ NTSTATUS nt_status_string_to_code(const char *nt_status_str)
 NTSTATUS nt_status_squash(NTSTATUS nt_status)
 {
 	if NT_STATUS_IS_OK(nt_status) {
-		return nt_status;		
+		return nt_status;
 	} else if NT_STATUS_EQUAL(nt_status, NT_STATUS_NO_SUCH_USER) {
 		/* Match WinXP and don't give the game away */
 		return NT_STATUS_LOGON_FAILURE;
-		
+
 	} else if NT_STATUS_EQUAL(nt_status, NT_STATUS_WRONG_PASSWORD) {
 		/* Match WinXP and don't give the game away */
 		return NT_STATUS_LOGON_FAILURE;
 	} else {
 		return nt_status;
-	}  
+	}
 }
diff --git a/source3/wscript b/source3/wscript
index c1c9801..ad9b202 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -10,7 +10,7 @@ import sys, os
 from optparse import SUPPRESS_HELP
 sys.path.insert(0, srcdir+"/buildtools/wafsamba")
 sys.path.insert(0, "source3")
-import wafsamba, Options, Logs, Utils
+import wafsamba, Options, Logs, Utils, Scripting
 import build.charset
 import samba_utils, samba_version
 import samba3
@@ -1611,3 +1611,13 @@ def ctags(ctx):
     cmd = 'ctags $(find %s/.. -name "*.[ch]" | grep -v "*_proto\.h")' % source_root
     print("Running: %s" % cmd)
     os.system(cmd)
+
+if not os.getenv('TOPLEVEL_BUILD'):
+    def wildcard_cmd(cmd):
+        '''called on a unknown command'''
+        from samba_wildcard import run_named_build_task
+        run_named_build_task(cmd)
+    def main():
+        from samba_wildcard import wildcard_main
+        wildcard_main(wildcard_cmd)
+    Scripting.main = main
diff --git a/source4/auth/auth.h b/source4/auth/auth.h
index 70df694..0e0aa01 100644
--- a/source4/auth/auth.h
+++ b/source4/auth/auth.h
@@ -189,7 +189,6 @@ NTSTATUS authsam_make_user_info_dc(TALLOC_CTX *mem_ctx, struct ldb_context *sam_
 NTSTATUS auth_system_session_info(TALLOC_CTX *parent_ctx,
 					   struct loadparm_context *lp_ctx,
 					   struct auth_session_info **_session_info) ;
-NTSTATUS auth_nt_status_squash(NTSTATUS nt_status);
 
 NTSTATUS auth_context_create_methods(TALLOC_CTX *mem_ctx, const char **methods,
 				     struct tevent_context *ev,
diff --git a/source4/auth/gensec/gensec.h b/source4/auth/gensec/gensec.h
index ad581e2..3c5257c 100644
--- a/source4/auth/gensec/gensec.h
+++ b/source4/auth/gensec/gensec.h
@@ -274,7 +274,7 @@ NTSTATUS gensec_server_start(TALLOC_CTX *mem_ctx,
 			     struct gensec_security **gensec_security);
 NTSTATUS gensec_session_info(struct gensec_security *gensec_security, 
 			     struct auth_session_info **session_info);
-NTSTATUS auth_nt_status_squash(NTSTATUS nt_status);
+NTSTATUS nt_status_squash(NTSTATUS nt_status);
 struct netlogon_creds_CredentialState;
 NTSTATUS dcerpc_schannel_creds(struct gensec_security *gensec_security,
 			       TALLOC_CTX *mem_ctx,
diff --git a/source4/auth/ntlm/auth_util.c b/source4/auth/ntlm/auth_util.c
index 605cd98..d6b53dd 100644
--- a/source4/auth/ntlm/auth_util.c
+++ b/source4/auth/ntlm/auth_util.c
@@ -231,27 +231,3 @@ NTSTATUS encrypt_user_info(TALLOC_CTX *mem_ctx, struct auth_context *auth_contex
 
 	return NT_STATUS_OK;
 }
-
-
-/**
- * Squash an NT_STATUS in line with security requirements.
- * In an attempt to avoid giving the whole game away when users
- * are authenticating, NT replaces both NT_STATUS_NO_SUCH_USER and 
- * NT_STATUS_WRONG_PASSWORD with NT_STATUS_LOGON_FAILURE in certain situations 
- * (session setups in particular).
- *
- * @param nt_status NTSTATUS input for squashing.
- * @return the 'squashed' nt_status
- **/
-_PUBLIC_ NTSTATUS auth_nt_status_squash(NTSTATUS nt_status)
-{
-	if NT_STATUS_EQUAL(nt_status, NT_STATUS_NO_SUCH_USER) {
-		/* Match WinXP and don't give the game away */
-		return NT_STATUS_LOGON_FAILURE;
-	} else if NT_STATUS_EQUAL(nt_status, NT_STATUS_WRONG_PASSWORD) {
-		/* Match WinXP and don't give the game away */
-		return NT_STATUS_LOGON_FAILURE;
-	}
-
-	return nt_status;
-}
diff --git a/source4/ldap_server/ldap_bind.c b/source4/ldap_server/ldap_bind.c
index 0f3d063..105e640 100644
--- a/source4/ldap_server/ldap_bind.c
+++ b/source4/ldap_server/ldap_bind.c
@@ -81,7 +81,7 @@ static NTSTATUS ldapsrv_BindSimple(struct ldapsrv_call *call)
 			errstr = talloc_asprintf(reply, "Simple Bind: Failed to advise ldb new credentials: %s", nt_errstr(status));
 		}
 	} else {
-		status = auth_nt_status_squash(status);
+		status = nt_status_squash(status);
 
 		result = LDAP_INVALID_CREDENTIALS;
 		errstr = talloc_asprintf(reply, "Simple Bind Failed: %s", nt_errstr(status));
@@ -311,7 +311,7 @@ static NTSTATUS ldapsrv_BindSASL(struct ldapsrv_call *call)
 		talloc_unlink(conn, conn->gensec);
 		conn->gensec = NULL;
 	} else {
-		status = auth_nt_status_squash(status);
+		status = nt_status_squash(status);
 		if (result == 0) {
 			result = LDAP_INVALID_CREDENTIALS;
 			errstr = talloc_asprintf(reply, "SASL:[%s]: %s", req->creds.SASL.mechanism, nt_errstr(status));
diff --git a/source4/libcli/util/nterr.c b/source4/libcli/util/nterr.c
index 82e773c..ca998bb 100644
--- a/source4/libcli/util/nterr.c
+++ b/source4/libcli/util/nterr.c
@@ -1,18 +1,18 @@
-/* 
+/*
  *  Unix SMB/CIFS implementation.
  *  RPC Pipe client / server routines
  *  Copyright (C) Luke Kenneth Casson Leighton 1997-2001.
- *  
+ *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  the Free Software Foundation; either version 3 of the License, or
  *  (at your option) any later version.
- *  
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
- *  
+ *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
@@ -23,6 +23,10 @@
 #include "../libcli/ldap/ldap_errors.h"
 #undef strcasecmp
 
+#if !defined(N_)
+#define N_(string) string
+#endif
+
 typedef struct
 {
 	const char *nt_errstr;
@@ -543,7 +547,8 @@ static const nt_err_code_struct nt_errs[] =
 	{ "NT_STATUS_QUOTA_LIST_INCONSISTENT", NT_STATUS_QUOTA_LIST_INCONSISTENT },
 	{ "NT_STATUS_FILE_IS_OFFLINE", NT_STATUS_FILE_IS_OFFLINE },
 	{ "NT_STATUS_DS_NO_MORE_RIDS", NT_STATUS_DS_NO_MORE_RIDS },
-        { "NT_STATUS_NO_MORE_ENTRIES", NT_STATUS_NO_MORE_ENTRIES },
+	{ "NT_STATUS_NOT_A_REPARSE_POINT", NT_STATUS_NOT_A_REPARSE_POINT },
+	{ "NT_STATUS_NO_MORE_ENTRIES", NT_STATUS_NO_MORE_ENTRIES },
 	{ "NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED", NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED },
 	{ "NT_STATUS_RPC_UNSUPPORTED_NAME_SYNTAX", NT_STATUS_RPC_UNSUPPORTED_NAME_SYNTAX },
 	{ "NT_STATUS_RPC_UNKNOWN_IF", NT_STATUS_RPC_UNKNOWN_IF },
@@ -736,116 +741,122 @@ static const nt_err_code_struct nt_errs[] =
 	{ NULL, NT_STATUS(0) }
 };
 
+/* These need sorting..... */
+
 static const nt_err_code_struct nt_err_desc[] =
 {
-	{ "Success", 				NT_STATUS_OK },
-	{ "Undetermined error", 		NT_STATUS_UNSUCCESSFUL },
-	{ "Access denied", 			NT_STATUS_ACCESS_DENIED },
-	{ "Account locked out", 		NT_STATUS_ACCOUNT_LOCKED_OUT },
-	{ "Must change password", 		NT_STATUS_PASSWORD_MUST_CHANGE },
-	{ "Password is too short", 		NT_STATUS_PWD_TOO_SHORT },
-	{ "Password is too recent", 		NT_STATUS_PWD_TOO_RECENT },
-	{ "Password history conflict", 		NT_STATUS_PWD_HISTORY_CONFLICT },
-	{ "No logon servers", 			NT_STATUS_NO_LOGON_SERVERS },
-	{ "Improperly formed account name", 	NT_STATUS_INVALID_ACCOUNT_NAME },
-	{ "User exists", 			NT_STATUS_USER_EXISTS },
-	{ "No such user", 			NT_STATUS_NO_SUCH_USER },
-	{ "Group exists", 			NT_STATUS_GROUP_EXISTS },
-	{ "No such group", 			NT_STATUS_NO_SUCH_GROUP },
-	{ "Member not in group", 		NT_STATUS_MEMBER_NOT_IN_GROUP },
-	{ "Wrong Password", 			NT_STATUS_WRONG_PASSWORD },
-	{ "Ill formed password", 		NT_STATUS_ILL_FORMED_PASSWORD },
-	{ "Password restriction", 		NT_STATUS_PASSWORD_RESTRICTION },
-	{ "Logon failure", 			NT_STATUS_LOGON_FAILURE },
-	{ "Account restriction", 		NT_STATUS_ACCOUNT_RESTRICTION },
-	{ "Invalid logon hours", 		NT_STATUS_INVALID_LOGON_HOURS },
-	{ "Invalid workstation", 		NT_STATUS_INVALID_WORKSTATION },
-	{ "Password expired", 			NT_STATUS_PASSWORD_EXPIRED },
-	{ "Account disabled", 			NT_STATUS_ACCOUNT_DISABLED },
-	{ "Unexpected information received", 	NT_STATUS_INVALID_PARAMETER },
-	{ "Memory allocation error", 		NT_STATUS_NO_MEMORY },
-	{ "No domain controllers located", 	NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND },
-	{ "Account locked out", 		NT_STATUS_ACCOUNT_LOCKED_OUT },
-	{ "Named pipe not available", 		NT_STATUS_PIPE_NOT_AVAILABLE },
-	{ "Not implemented", 			NT_STATUS_NOT_IMPLEMENTED },
-	{ "Invalid information class", 		NT_STATUS_INVALID_INFO_CLASS },
-	{ "Information length mismatch", 	NT_STATUS_INFO_LENGTH_MISMATCH },
-	{ "Access violation", 			NT_STATUS_ACCESS_VIOLATION },
-	{ "Invalid handle", 			NT_STATUS_INVALID_HANDLE },
-	{ "Invalid parameter", 			NT_STATUS_INVALID_PARAMETER },
-	{ "No memory", 				NT_STATUS_NO_MEMORY },
-	{ "Buffer too small", 			NT_STATUS_BUFFER_TOO_SMALL },
-	{ "Revision mismatch", 			NT_STATUS_REVISION_MISMATCH },
-	{ "No logon servers", 			NT_STATUS_NO_LOGON_SERVERS },
-	{ "No such logon session", 		NT_STATUS_NO_SUCH_LOGON_SESSION },
-	{ "No such privilege", 			NT_STATUS_NO_SUCH_PRIVILEGE },
-	{ "Procedure not found", 		NT_STATUS_PROCEDURE_NOT_FOUND },
-	{ "Server disabled", 			NT_STATUS_SERVER_DISABLED },
-	{ "Invalid pipe state", 		NT_STATUS_INVALID_PIPE_STATE },
-	{ "Named pipe busy", 			NT_STATUS_PIPE_BUSY },
-	{ "Illegal function",		 	NT_STATUS_ILLEGAL_FUNCTION },
-	{ "Named pipe disconnected", 		NT_STATUS_PIPE_DISCONNECTED },
-	{ "Named pipe closing", 		NT_STATUS_PIPE_CLOSING },
-	{ "Remote host not listening", 		NT_STATUS_REMOTE_NOT_LISTENING },
-	{ "Duplicate name on network", 		NT_STATUS_DUPLICATE_NAME },
-	{ "Print queue is full", 		NT_STATUS_PRINT_QUEUE_FULL },
-	{ "No print spool space available", 	NT_STATUS_NO_SPOOL_SPACE },
-	{ "Too many names", 			NT_STATUS_TOO_MANY_NAMES },
-	{ "Too many sessions", 			NT_STATUS_TOO_MANY_SESSIONS },
-	{ "Invalid server state", 		NT_STATUS_INVALID_SERVER_STATE },
-	{ "Invalid domain state", 		NT_STATUS_INVALID_DOMAIN_STATE },
-	{ "Invalid domain role", 		NT_STATUS_INVALID_DOMAIN_ROLE },
-	{ "No such domain", 			NT_STATUS_NO_SUCH_DOMAIN },
-	{ "Domain exists", 			NT_STATUS_DOMAIN_EXISTS },
-	{ "Domain limit exceeded", 		NT_STATUS_DOMAIN_LIMIT_EXCEEDED },
-	{ "Bad logon session state", 		NT_STATUS_BAD_LOGON_SESSION_STATE },
-	{ "Logon session collision", 		NT_STATUS_LOGON_SESSION_COLLISION },
-	{ "Invalid logon type", 		NT_STATUS_INVALID_LOGON_TYPE },
-	{ "Cancelled", 				NT_STATUS_CANCELLED },
-	{ "Invalid computer name", 		NT_STATUS_INVALID_COMPUTER_NAME },	
-	{ "Logon server conflict", 		NT_STATUS_LOGON_SERVER_CONFLICT },
-	{ "Time difference at domain controller", NT_STATUS_TIME_DIFFERENCE_AT_DC },
-	{ "Pipe broken", 			NT_STATUS_PIPE_BROKEN },
-	{ "Registry corrupt", 			NT_STATUS_REGISTRY_CORRUPT },
-	{ "Too many secrets", 			NT_STATUS_TOO_MANY_SECRETS },
-	{ "Too many SIDs", 			NT_STATUS_TOO_MANY_SIDS },
-	{ "Lanmanager cross encryption required", NT_STATUS_LM_CROSS_ENCRYPTION_REQUIRED },
-	{ "Log file full", 			NT_STATUS_LOG_FILE_FULL },
-	{ "No trusted LSA secret", 		NT_STATUS_NO_TRUST_LSA_SECRET },
-	{ "No trusted SAM account", 		NT_STATUS_NO_TRUST_SAM_ACCOUNT },
-	{ "Trusted domain failure", 		NT_STATUS_TRUSTED_DOMAIN_FAILURE },
-	{ "Trust relationship failure", 	NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE },
-	{ "Trust failure", 			NT_STATUS_TRUST_FAILURE },
-	{ "Netlogon service not started", 	NT_STATUS_NETLOGON_NOT_STARTED },
-	{ "Account expired", 			NT_STATUS_ACCOUNT_EXPIRED },
-	{ "Network credential conflict", 	NT_STATUS_NETWORK_CREDENTIAL_CONFLICT },
-	{ "Remote session limit", 		NT_STATUS_REMOTE_SESSION_LIMIT },
-	{ "No logon interdomain trust account", NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT },
-	{ "No logon workstation trust account", NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT },
-	{ "No logon server trust account", 	NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT },
-	{ "Domain trust inconsistent", 		NT_STATUS_DOMAIN_TRUST_INCONSISTENT },
-	{ "No user session key available", 	NT_STATUS_NO_USER_SESSION_KEY },
-	{ "User session deleted", 		NT_STATUS_USER_SESSION_DELETED },
-	{ "Insufficient server resources", 	NT_STATUS_INSUFF_SERVER_RESOURCES },
-	{ "Insufficient logon information", 	NT_STATUS_INSUFFICIENT_LOGON_INFO },
-	
-	{ "License quota exceeded", 		NT_STATUS_LICENSE_QUOTA_EXCEEDED },
+	{ N_("Success"), 				NT_STATUS_OK },
+	{ N_("Undetermined error"), 		NT_STATUS_UNSUCCESSFUL },
+	{ N_("Access denied"), 			NT_STATUS_ACCESS_DENIED },
+	{ N_("Account locked out"), 		NT_STATUS_ACCOUNT_LOCKED_OUT },
+	{ N_("Must change password"), 		NT_STATUS_PASSWORD_MUST_CHANGE },
+	{ N_("Password is too short"), 		NT_STATUS_PWD_TOO_SHORT },
+	{ N_("Password is too recent"), 		NT_STATUS_PWD_TOO_RECENT },
+	{ N_("Password history conflict"), 		NT_STATUS_PWD_HISTORY_CONFLICT },


-- 
Samba Shared Repository


More information about the samba-cvs mailing list