[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