Add libnetapi_errstr().
authorGünther Deschner <gd@samba.org>
Wed, 19 Dec 2007 11:09:08 +0000 (12:09 +0100)
committerGünther Deschner <gd@samba.org>
Fri, 21 Dec 2007 14:29:11 +0000 (15:29 +0100)
Guenther
(This used to be commit 465e61a3599a277366ada6ecda3a1e6ddb1f2490)

source3/lib/netapi/netapi.c
source3/lib/netapi/netapi.h

index 853ac55f8a9d3abd69361690e7e4fd3bf191077a..70d7e654a71698889cf45167fa92ead523996373 100644 (file)
@@ -148,3 +148,53 @@ NET_API_STATUS libnetapi_set_workgroup(struct libnetapi_ctx *ctx,
        }
        return W_ERROR_V(WERR_OK);
 }
+
+const char *libnetapi_errstr(struct libnetapi_ctx *ctx,
+                            NET_API_STATUS status)
+{
+       const char *err_str = NULL;
+
+       switch (status) {
+               case 0:
+                       err_str = "Success";
+                       break;
+               case 0x00000057: /* WERR_INVALID_PARAM */
+                       err_str = "Invalid parameter";
+                       break;
+               case 0x0000052E: /* WERR_LOGON_FAILURE */
+                       err_str = "Invalid logon credentials";
+                       break;
+               case 0x00000995: /* WERR_DOMAIN_CONTROLLER_NOT_FOUND */
+                       err_str = "A domain controller could not be found";
+                       break;
+               case 0x00000a84: /* WERR_SETUP_NOT_JOINED */
+                       err_str = "Join failed";
+                       break;
+               case 0x00000a83: /* WERR_SETUP_ALREADY_JOINED */
+                       err_str = "Machine is already joined";
+                       break;
+               case 0x00000a85: /* WERR_SETUP_DOMAIN_CONTROLLER */
+                       err_str = "Machine is a Domain Controller";
+                       break;
+               case 0x00000032: /* WERR_NOT_SUPPORTED */
+                       err_str = "Not supported";
+                       break;
+               case 0x0000051f: /* WERR_NO_LOGON_SERVERS */
+                       err_str = "No logon servers found";
+                       break;
+               case 0x00000056: /* WERR_BAD_PASSWORD */
+                       err_str = "A bad password was supplied";
+                       break;
+               case 0x00000520: /* WERR_NO_SUCH_LOGON_SESSION */
+                       err_str = "No such logon session";
+                       break;
+               default:
+                       err_str = talloc_asprintf(ctx, "0x%08x", status);
+                       if (!err_str) {
+                               return NULL;
+                       }
+                       break;
+       }
+
+       return err_str;
+}
index 0b25c93d5bc717a72f04c17f19bb3a8f6307f90b..232d9c154f2ca426125b292288db0c189da1b7e6 100644 (file)
@@ -37,6 +37,7 @@ NET_API_STATUS libnetapi_get_debuglevel(struct libnetapi_ctx *ctx, const char **
 NET_API_STATUS libnetapi_set_username(struct libnetapi_ctx *ctx, const char *username);
 NET_API_STATUS libnetapi_set_password(struct libnetapi_ctx *ctx, const char *password);
 NET_API_STATUS libnetapi_set_workgroup(struct libnetapi_ctx *ctx, const char *workgroup);
+const char *libnetapi_errstr(struct libnetapi_ctx *ctx, NET_API_STATUS status);
 
 #include "joindomain.h"