summaryrefslogtreecommitdiffstats
path: root/source/libsmb/nterr.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-04-23 22:08:39 +0000
committerJeremy Allison <jra@samba.org>1998-04-23 22:08:39 +0000
commit932b22cd495b9ce1ba03e5b91a50b314167255d7 (patch)
tree7abeaa09565d6bc3885b63dfd2baf453eb07ac41 /source/libsmb/nterr.c
parent0f00b8fce1a5cad7f8c212568fa33f09986e5bd6 (diff)
downloadsamba-932b22cd495b9ce1ba03e5b91a50b314167255d7.tar.gz
samba-932b22cd495b9ce1ba03e5b91a50b314167255d7.tar.xz
samba-932b22cd495b9ce1ba03e5b91a50b314167255d7.zip
We will need this new nterr.c for the DOMAIN_CLIENT code.
Jeremy.
Diffstat (limited to 'source/libsmb/nterr.c')
-rw-r--r--source/libsmb/nterr.c33
1 files changed, 30 insertions, 3 deletions
diff --git a/source/libsmb/nterr.c b/source/libsmb/nterr.c
index bda0f882a64..dca97ab9238 100644
--- a/source/libsmb/nterr.c
+++ b/source/libsmb/nterr.c
@@ -1,18 +1,23 @@
+/* NT error codes. please read nterr.h */
+#include "includes.h"
#include "nterr.h"
-static struct
+typedef struct
{
char *nt_errstr;
- uint16 nt_errcode;
+ uint32 nt_errcode;
-} nt_errs[] =
+} nt_err_code_struct;
+
+nt_err_code_struct nt_errs[] =
{
{ "NT_STATUS_UNSUCCESSFUL", NT_STATUS_UNSUCCESSFUL },
{ "NT_STATUS_NOT_IMPLEMENTED", NT_STATUS_NOT_IMPLEMENTED },
{ "NT_STATUS_INVALID_INFO_CLASS", NT_STATUS_INVALID_INFO_CLASS },
{ "NT_STATUS_INFO_LENGTH_MISMATCH", NT_STATUS_INFO_LENGTH_MISMATCH },
{ "NT_STATUS_ACCESS_VIOLATION", NT_STATUS_ACCESS_VIOLATION },
+ { "STATUS_BUFFER_OVERFLOW", STATUS_BUFFER_OVERFLOW },
{ "NT_STATUS_IN_PAGE_ERROR", NT_STATUS_IN_PAGE_ERROR },
{ "NT_STATUS_PAGEFILE_QUOTA", NT_STATUS_PAGEFILE_QUOTA },
{ "NT_STATUS_INVALID_HANDLE", NT_STATUS_INVALID_HANDLE },
@@ -512,3 +517,25 @@ static struct
{ NULL, 0 }
};
+/*****************************************************************************
+ returns an NT error message. not amazingly helpful, but better than a number.
+ *****************************************************************************/
+char *get_nt_error_msg(uint32 nt_code)
+{
+ static pstring msg;
+ int idx = 0;
+
+ strcpy(msg, "Unknown NT error");
+
+ while (nt_errs[idx].nt_errstr != NULL)
+ {
+ if (nt_errs[idx].nt_errcode == nt_code)
+ {
+ strcpy(msg, nt_errs[idx].nt_errstr);
+ return msg;
+ }
+ idx++;
+ }
+ return NULL;
+}
+