summaryrefslogtreecommitdiffstats
path: root/source3
diff options
context:
space:
mode:
authorNoel Power <noel.power@suse.com>2014-03-06 11:57:45 +0000
committerJeremy Allison <jra@samba.org>2014-03-08 03:52:42 +0100
commit3ac9cb3d17c5252383e8f971818a426c6ad68c2d (patch)
tree3db1b1182d3dbdc3d9db04e6e3f2af939ebe4010 /source3
parent05daf6a25ecbe928987446f39e2d7855328195d1 (diff)
downloadsamba-3ac9cb3d17c5252383e8f971818a426c6ad68c2d.tar.gz
samba-3ac9cb3d17c5252383e8f971818a426c6ad68c2d.tar.xz
samba-3ac9cb3d17c5252383e8f971818a426c6ad68c2d.zip
For FSRVP use textual error messages instead of hex error codes
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Sat Mar 8 03:52:44 CET 2014 on sn-devel-104
Diffstat (limited to 'source3')
-rw-r--r--source3/rpcclient/cmd_fss.c52
1 files changed, 50 insertions, 2 deletions
diff --git a/source3/rpcclient/cmd_fss.c b/source3/rpcclient/cmd_fss.c
index af194e2f87..238bd79f29 100644
--- a/source3/rpcclient/cmd_fss.c
+++ b/source3/rpcclient/cmd_fss.c
@@ -24,6 +24,40 @@
#include "../librpc/gen_ndr/ndr_fsrvp.h"
#include "../librpc/gen_ndr/ndr_fsrvp_c.h"
+static const struct {
+ uint32_t error_code;
+ const char *error_str;
+} fss_errors[] = {
+ {
+ FSRVP_E_BAD_STATE,
+ "A method call was invalid because of the state of the server."
+ },
+ {
+ FSRVP_E_SHADOW_COPY_SET_IN_PROGRESS,
+ "A call was made to either \'SetContext\' or \'StartShadowCopySet\' while the creation of another shadow copy set is in progress."
+ },
+ {
+ FSRVP_E_NOT_SUPPORTED,
+ "The file store which contains the share to be shadow copied is not supported by the server."
+ },
+ {
+ FSRVP_E_WAIT_TIMEOUT,
+ "The wait for a shadow copy commit or expose operation has timed out."
+ },
+ {
+ FSRVP_E_WAIT_FAILED,
+ "The wait for a shadow copy commit expose operation has failed."
+ },
+ {
+ FSRVP_E_OBJECT_NOT_FOUND,
+ "The specified object does not exist."
+ },
+ {
+ FSRVP_E_UNSUPPORTED_CONTEXT,
+ "The specified context value is invalid."
+ }
+};
+
struct fss_context_map {
uint32_t ctx_val;
const char *ctx_str;
@@ -55,6 +89,20 @@ struct fss_context_map ctx_map[] = {
{ 0, NULL, NULL },
};
+static const char *get_error_str(uint32_t code)
+{
+ static const char *default_err = "Unknown Error";
+ const char *result = default_err;
+ int i;
+ for (i = 0; i < ARRAY_SIZE(fss_errors); ++i) {
+ if (code == fss_errors[i].error_code) {
+ result = fss_errors[i].error_str;
+ break;
+ }
+ }
+ return result;
+};
+
static bool map_fss_ctx_str(const char *ctx_str,
uint32_t *ctx_val)
{
@@ -100,8 +148,8 @@ static NTSTATUS cmd_fss_is_path_sup(struct rpc_pipe_client *cli,
r.in.ShareName));
return NT_STATUS_UNSUCCESSFUL;
} else if (r.out.result) {
- DEBUG(0, ("failed IsPathSupported response: 0x%x\n",
- r.out.result));
+ DEBUG(0, ("failed IsPathSupported response: 0x%x - \"%s\"\n",
+ r.out.result, get_error_str(r.out.result)));
return NT_STATUS_UNSUCCESSFUL;
}
printf("UNC %s %s shadow copy requests\n", r.in.ShareName,