[SCM] Samba Shared Repository - branch v3-2-test updated -
initial-v3-2-unstable-296-g432d0e9
Stefan Metzmacher
metze at samba.org
Sun Nov 11 08:13:45 GMT 2007
The branch, v3-2-test has been updated
via 432d0e9cb2370e52f7d4cb58d2da747e526403e8 (commit)
via e3b36073f1fc994b102a5bdf321b9dd519288420 (commit)
from e203ba22275320808bc11b17361ad1f2d5b0b897 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test
- Log -----------------------------------------------------------------
commit 432d0e9cb2370e52f7d4cb58d2da747e526403e8
Author: Volker Lendecke <vl at sernet.de>
Date: Sat Nov 10 23:15:40 2007 +0100
Convert ctdb_conn.c to enum ndr_error_code
Fix the build
commit e3b36073f1fc994b102a5bdf321b9dd519288420
Author: Volker Lendecke <vl at sernet.de>
Date: Sat Nov 10 21:37:24 2007 +0100
Add ndr_errstr
-----------------------------------------------------------------------
Summary of changes:
source/lib/ctdbd_conn.c | 25 +++++++++--------
source/librpc/ndr/ndr.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 79 insertions(+), 12 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source/lib/ctdbd_conn.c b/source/lib/ctdbd_conn.c
index 2892b8f..b43aec7 100644
--- a/source/lib/ctdbd_conn.c
+++ b/source/lib/ctdbd_conn.c
@@ -243,7 +243,7 @@ static struct messaging_rec *ctdb_pull_messaging_rec(TALLOC_CTX *mem_ctx,
{
struct messaging_rec *result;
DATA_BLOB blob;
- NTSTATUS status;
+ enum ndr_err_code ndr_err;
if ((overall_length < offsetof(struct ctdb_req_message, data))
|| (overall_length
@@ -259,22 +259,22 @@ static struct messaging_rec *ctdb_pull_messaging_rec(TALLOC_CTX *mem_ctx,
blob = data_blob_const(msg->data, msg->datalen);
- status = ndr_pull_struct_blob(
+ ndr_err = ndr_pull_struct_blob(
&blob, result, result,
(ndr_pull_flags_fn_t)ndr_pull_messaging_rec);
- if (DEBUGLEVEL >= 10) {
- DEBUG(10, ("ctdb_pull_messaging_rec:\n"));
- NDR_PRINT_DEBUG(messaging_rec, result);
- }
-
- if (!NT_STATUS_IS_OK(status)) {
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
DEBUG(0, ("ndr_pull_struct_blob failed: %s\n",
- nt_errstr(status)));
+ ndr_errstr(ndr_err)));
TALLOC_FREE(result);
return NULL;
}
+ if (DEBUGLEVEL >= 10) {
+ DEBUG(10, ("ctdb_pull_messaging_rec:\n"));
+ NDR_PRINT_DEBUG(messaging_rec, result);
+ }
+
return result;
}
@@ -620,19 +620,20 @@ NTSTATUS ctdbd_messaging_send(struct ctdbd_connection *conn,
TALLOC_CTX *mem_ctx;
DATA_BLOB blob;
NTSTATUS status;
+ enum ndr_err_code ndr_err;
if (!(mem_ctx = talloc_init("ctdbd_messaging_send"))) {
DEBUG(0, ("talloc failed\n"));
return NT_STATUS_NO_MEMORY;
}
- status = ndr_push_struct_blob(
+ ndr_err = ndr_push_struct_blob(
&blob, mem_ctx, msg,
(ndr_push_flags_fn_t)ndr_push_messaging_rec);
- if (!NT_STATUS_IS_OK(status)) {
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
DEBUG(0, ("ndr_push_struct_blob failed: %s\n",
- nt_errstr(status)));
+ ndr_errstr(ndr_err)));
goto fail;
}
diff --git a/source/librpc/ndr/ndr.c b/source/librpc/ndr/ndr.c
index a1295c7..62a88a8 100644
--- a/source/librpc/ndr/ndr.c
+++ b/source/librpc/ndr/ndr.c
@@ -376,6 +376,72 @@ NTSTATUS ndr_map_error2ntstatus(enum ndr_err_code ndr_err)
}
/*
+ * Convert an ndr error to string
+ */
+
+const char *ndr_errstr(enum ndr_err_code err)
+{
+ switch (err) {
+ case NDR_ERR_SUCCESS:
+ return "NDR_ERR_SUCCESS";
+ break;
+ case NDR_ERR_ARRAY_SIZE:
+ return "NDR_ERR_ARRAY_SIZE";
+ break;
+ case NDR_ERR_BAD_SWITCH:
+ return "NDR_ERR_BAD_SWITCH";
+ break;
+ case NDR_ERR_OFFSET:
+ return "NDR_ERR_OFFSET";
+ break;
+ case NDR_ERR_RELATIVE:
+ return "NDR_ERR_RELATIVE";
+ break;
+ case NDR_ERR_CHARCNV:
+ return "NDR_ERR_CHARCNV";
+ break;
+ case NDR_ERR_LENGTH:
+ return "NDR_ERR_LENGTH";
+ break;
+ case NDR_ERR_SUBCONTEXT:
+ return "NDR_ERR_SUBCONTEXT";
+ break;
+ case NDR_ERR_COMPRESSION:
+ return "NDR_ERR_COMPRESSION";
+ break;
+ case NDR_ERR_STRING:
+ return "NDR_ERR_STRING";
+ break;
+ case NDR_ERR_VALIDATE:
+ return "NDR_ERR_VALIDATE";
+ break;
+ case NDR_ERR_BUFSIZE:
+ return "NDR_ERR_BUFSIZE";
+ break;
+ case NDR_ERR_ALLOC:
+ return "NDR_ERR_ALLOC";
+ break;
+ case NDR_ERR_RANGE:
+ return "NDR_ERR_RANGE";
+ break;
+ case NDR_ERR_TOKEN:
+ return "NDR_ERR_TOKEN";
+ break;
+ case NDR_ERR_IPV4ADDRESS:
+ return "NDR_ERR_IPV4ADDRESS";
+ break;
+ case NDR_ERR_INVALID_POINTER:
+ return "NDR_ERR_INVALID_POINTER";
+ break;
+ case NDR_ERR_UNREAD_BYTES:
+ return "NDR_ERR_UNREAD_BYTES";
+ break;
+ }
+
+ return talloc_asprintf(talloc_tos(), "Unknown NDR error: %d", err);
+}
+
+/*
return and possibly log an NDR error
*/
_PUBLIC_ enum ndr_err_code ndr_pull_error(struct ndr_pull *ndr,
--
Samba Shared Repository
More information about the samba-cvs
mailing list