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 <[email protected]>
Date:   Wed Mar 2 23:13:29 2011 +0100

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

commit ef87f970b324d20cdd1b754a3096cf47b78a490f
Author: Günther Deschner <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Wed Mar 2 23:40:05 2011 +0100

    s3-nterr: make nt_err_desc static const.
    
    Guenther

commit cb8c0e177687769638ee3aef59a86c4c4a80b971
Author: Günther Deschner <[email protected]>
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 <[email protected]>
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

Reply via email to