[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-2270-gddce3b5

Andrew Tridgell tridge at samba.org
Fri Jun 12 02:24:32 GMT 2009


The branch, master has been updated
       via  ddce3b5ac8a5d308c276f05750ee111b8e429e46 (commit)
       via  f5a47dc4bf2793ab328c8b0e35adace497819e7d (commit)
       via  bbe758d55b58a28ae2585de07fde835b14445843 (commit)
      from  3938d1e5fa1996f64e92d33d6893bab620d16b23 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit ddce3b5ac8a5d308c276f05750ee111b8e429e46
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Jun 12 12:22:53 2009 +1000

    two more NT status codes that we get on DRS with w2k8-R2

commit f5a47dc4bf2793ab328c8b0e35adace497819e7d
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Jun 12 12:22:25 2009 +1000

    avoid crashes in ndr_print_*() calls
    
    This is a hackish fix, but it will do for now

commit bbe758d55b58a28ae2585de07fde835b14445843
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu Jun 11 15:21:29 2009 +1000

    always enable RPC debugging with a debug level >= 100.
    
    This helps with tools where setting the binding string is not
    possible, such as net

-----------------------------------------------------------------------

Summary of changes:
 libcli/util/ntstatus.h           |    3 ++-
 librpc/ndr/ndr.c                 |    5 +++++
 source4/libcli/util/nterr.c      |    2 ++
 source4/librpc/rpc/dcerpc.c      |    4 ++++
 source4/librpc/rpc/dcerpc_util.c |    4 ++++
 5 files changed, 17 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/libcli/util/ntstatus.h b/libcli/util/ntstatus.h
index dc1fcc4..5f05f9a 100644
--- a/libcli/util/ntstatus.h
+++ b/libcli/util/ntstatus.h
@@ -606,7 +606,8 @@ typedef uint32_t NTSTATUS;
 #define NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED NT_STATUS(0xC0000000 | 0x20004)
 #define NT_STATUS_RPC_UNSUPPORTED_NAME_SYNTAX NT_STATUS(0xC0000000 | 0x20026)
 #define NT_STATUS_RPC_NT_CALL_FAILED NT_STATUS(0xC0000000 | 0x2001B)
-
+#define NT_STATUS_ERROR_DS_OBJ_STRING_NAME_EXISTS NT_STATUS(0xC0000000 | 0x2071)
+#define NT_STATUS_ERROR_DS_INCOMPATIBLE_VERSION NT_STATUS(0xC0000000 | 0x00002177)
 
 /* I use NT_STATUS_FOOBAR when I have no idea what error code to use -
  * this means we need a torture test */
diff --git a/librpc/ndr/ndr.c b/librpc/ndr/ndr.c
index 8188ec9..f253bcb 100644
--- a/librpc/ndr/ndr.c
+++ b/librpc/ndr/ndr.c
@@ -218,6 +218,7 @@ _PUBLIC_ void ndr_print_debug(ndr_print_fn_t fn, const char *name, void *ptr)
 	ndr->print = ndr_print_debug_helper;
 	ndr->depth = 1;
 	ndr->flags = 0;
+	ndr->iconv_convenience = global_iconv_convenience;
 	fn(ndr, name, ptr);
 	talloc_free(ndr);
 }
@@ -236,6 +237,7 @@ _PUBLIC_ void ndr_print_union_debug(ndr_print_fn_t fn, const char *name, uint32_
 	ndr->print = ndr_print_debug_helper;
 	ndr->depth = 1;
 	ndr->flags = 0;
+	ndr->iconv_convenience = global_iconv_convenience;
 	ndr_print_set_switch_value(ndr, ptr, level);
 	fn(ndr, name, ptr);
 	talloc_free(ndr);
@@ -255,6 +257,7 @@ _PUBLIC_ void ndr_print_function_debug(ndr_print_function_t fn, const char *name
 	ndr->print = ndr_print_debug_helper;
 	ndr->depth = 1;
 	ndr->flags = 0;
+	ndr->iconv_convenience = global_iconv_convenience;
 	fn(ndr, name, flags, ptr);
 	talloc_free(ndr);
 }
@@ -276,6 +279,7 @@ _PUBLIC_ char *ndr_print_struct_string(TALLOC_CTX *mem_ctx, ndr_print_fn_t fn, c
 	ndr->print = ndr_print_string_helper;
 	ndr->depth = 1;
 	ndr->flags = 0;
+	ndr->iconv_convenience = global_iconv_convenience;
 	fn(ndr, name, ptr);
 	ret = talloc_steal(mem_ctx, (char *)ndr->private_data);
 failed:
@@ -300,6 +304,7 @@ _PUBLIC_ char *ndr_print_union_string(TALLOC_CTX *mem_ctx, ndr_print_fn_t fn, co
 	ndr->print = ndr_print_string_helper;
 	ndr->depth = 1;
 	ndr->flags = 0;
+	ndr->iconv_convenience = global_iconv_convenience;
 	ndr_print_set_switch_value(ndr, ptr, level);
 	fn(ndr, name, ptr);
 	ret = talloc_steal(mem_ctx, (char *)ndr->private_data);
diff --git a/source4/libcli/util/nterr.c b/source4/libcli/util/nterr.c
index c196433..e9db904 100644
--- a/source4/libcli/util/nterr.c
+++ b/source4/libcli/util/nterr.c
@@ -550,6 +550,8 @@ static const nt_err_code_struct nt_errs[] =
 	{ "NT_STATUS_DOWNGRADE_DETECTED", NT_STATUS_DOWNGRADE_DETECTED },
 	{ "NT_STATUS_DS_BUSY", NT_STATUS_DS_BUSY },
 	{ "NT_STATUS_INVALID_LOCK_RANGE", NT_STATUS_INVALID_LOCK_RANGE },
+	{ "NT_STATUS_ERROR_DS_OBJ_STRING_NAME_EXISTS", NT_STATUS_ERROR_DS_OBJ_STRING_NAME_EXISTS },
+	{ "NT_STATUS_ERROR_DS_INCOMPATIBLE_VERSION", NT_STATUS_ERROR_DS_INCOMPATIBLE_VERSION },
 	{ "STATUS_MORE_ENTRIES", STATUS_MORE_ENTRIES },
 	{ "STATUS_SOME_UNMAPPED", STATUS_SOME_UNMAPPED },
 	{ "STATUS_NOTIFY_CLEANUP", STATUS_NOTIFY_CLEANUP },
diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c
index c8add30..13f649c 100644
--- a/source4/librpc/rpc/dcerpc.c
+++ b/source4/librpc/rpc/dcerpc.c
@@ -114,6 +114,10 @@ _PUBLIC_ struct dcerpc_pipe *dcerpc_pipe_init(TALLOC_CTX *mem_ctx, struct tevent
 	ZERO_STRUCT(p->syntax);
 	ZERO_STRUCT(p->transfer_syntax);
 
+	if (DEBUGLVL(100)) {
+		p->conn->flags |= DCERPC_DEBUG_PRINT_BOTH;
+	}
+
 	return p;
 }
 
diff --git a/source4/librpc/rpc/dcerpc_util.c b/source4/librpc/rpc/dcerpc_util.c
index d57cc57..4524673 100644
--- a/source4/librpc/rpc/dcerpc_util.c
+++ b/source4/librpc/rpc/dcerpc_util.c
@@ -513,6 +513,10 @@ struct composite_context *dcerpc_pipe_auth_send(struct dcerpc_pipe *p,
 
 	conn = s->pipe->conn;
 	conn->flags = binding->flags;
+
+	if (DEBUGLVL(100)) {
+		conn->flags |= DCERPC_DEBUG_PRINT_BOTH;
+	}
 	
 	/* remember the binding string for possible secondary connections */
 	conn->binding_string = dcerpc_binding_string(p, binding);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list