[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-3384-gac5d8ed

Michael Adam obnox at samba.org
Tue Jul 22 12:35:06 GMT 2008


The branch, v3-3-test has been updated
       via  ac5d8ede8a94e8411d38b684e943d0b489ba8b70 (commit)
       via  7a3a2b916d5c1116d2536bc87a4f21cd38861668 (commit)
       via  995b0eda0ca46db5f7e6fdbbf92ce86584cb6126 (commit)
       via  23742a369123722185297151fd743cb20812d3dd (commit)
      from  962c2670b10addf81a242d8cb381cc010e036b8e (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit ac5d8ede8a94e8411d38b684e943d0b489ba8b70
Author: Michael Adam <obnox at samba.org>
Date:   Tue Jul 22 13:23:18 2008 +0200

    re-run make idl after adding drsuapi_DsBindInfo48 to drsuapi.idl
    
    Michael

commit 7a3a2b916d5c1116d2536bc87a4f21cd38861668
Author: Michael Adam <obnox at samba.org>
Date:   Tue Jul 22 13:07:55 2008 +0200

    drsuapi.idl: add drsuapi_SupportedExtensionsExt bitfield.
    
    This knowledge is obtained from the wspp-docs (section 5.35).
    
    Michael
    (cherry picked from commit f5afb695045b1a2f3b8c00a4d82d40e8e50726c9)

commit 995b0eda0ca46db5f7e6fdbbf92ce86584cb6126
Author: Michael Adam <obnox at samba.org>
Date:   Tue Jul 22 12:46:04 2008 +0200

    drsuapi.idl: the last 16 bytes in DsBindInfo48 ar the GUID of the config dn.
    
    This bit seems not to be documented in the WSPP docs.
    
    Michael
    (cherry picked from commit 705f79bd0a5e93daa0cb11b5dcca36e75c75df93)

commit 23742a369123722185297151fd743cb20812d3dd
Author: Michael Adam <obnox at samba.org>
Date:   Tue Jul 22 11:37:32 2008 +0200

    drsuapi.idl: add drsuapi_DsBindInfo48.
    
    This is necessary to make DsGetNcChanges work with win2008.
    
    Michael
    (cherry picked from commit dd278b069b8683a0e3721ebb7d0de06d2bc1c86f)

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

Summary of changes:
 source/librpc/gen_ndr/drsuapi.h     |   14 +++++
 source/librpc/gen_ndr/ndr_drsuapi.c |   96 +++++++++++++++++++++++++++++++++++
 source/librpc/gen_ndr/ndr_drsuapi.h |    2 +
 source/librpc/idl/drsuapi.idl       |   16 ++++++
 4 files changed, 128 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/librpc/gen_ndr/drsuapi.h b/source/librpc/gen_ndr/drsuapi.h
index 7b2acf0..a1b4cc9 100644
--- a/source/librpc/gen_ndr/drsuapi.h
+++ b/source/librpc/gen_ndr/drsuapi.h
@@ -49,6 +49,10 @@
 #define DRSUAPI_SUPPORTED_EXTENSION_40000000 ( 0x40000000 )
 #define DRSUAPI_SUPPORTED_EXTENSION_80000000 ( 0x80000000 )
 
+/* bitmap drsuapi_SupportedExtensionsExt */
+#define DRSUAPI_SUPPORTED_EXTENSION_ADAM ( 0x00000001 )
+#define DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 ( 0x00000002 )
+
 struct drsuapi_DsBindInfo24 {
 	uint32_t supported_extensions;
 	struct GUID site_guid;
@@ -62,6 +66,15 @@ struct drsuapi_DsBindInfo28 {
 	uint32_t repl_epoch;
 };
 
+struct drsuapi_DsBindInfo48 {
+	uint32_t supported_extensions;
+	struct GUID site_guid;
+	uint32_t u1;
+	uint32_t repl_epoch;
+	uint32_t supported_extensions_ext;
+	struct GUID config_dn_guid;
+};
+
 struct drsuapi_DsBindInfoFallBack {
 	DATA_BLOB info;/* [flag(LIBNDR_FLAG_REMAINING)] */
 };
@@ -69,6 +82,7 @@ struct drsuapi_DsBindInfoFallBack {
 union drsuapi_DsBindInfo {
 	struct drsuapi_DsBindInfo24 info24;/* [subcontext(4),case(24)] */
 	struct drsuapi_DsBindInfo28 info28;/* [subcontext(4),case(28)] */
+	struct drsuapi_DsBindInfo48 info48;/* [subcontext(4),case(48)] */
 	struct drsuapi_DsBindInfoFallBack FallBack;/* [subcontext(4),default] */
 }/* [nodiscriminant] */;
 
diff --git a/source/librpc/gen_ndr/ndr_drsuapi.c b/source/librpc/gen_ndr/ndr_drsuapi.c
index 0c7fb6b..69c2c8a 100644
--- a/source/librpc/gen_ndr/ndr_drsuapi.c
+++ b/source/librpc/gen_ndr/ndr_drsuapi.c
@@ -62,6 +62,29 @@ _PUBLIC_ void ndr_print_drsuapi_SupportedExtensions(struct ndr_print *ndr, const
 	ndr->depth--;
 }
 
+static enum ndr_err_code ndr_push_drsuapi_SupportedExtensionsExt(struct ndr_push *ndr, int ndr_flags, uint32_t r)
+{
+	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+	return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_SupportedExtensionsExt(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
+{
+	uint32_t v;
+	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+	*r = v;
+	return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_SupportedExtensionsExt(struct ndr_print *ndr, const char *name, uint32_t r)
+{
+	ndr_print_uint32(ndr, name, r);
+	ndr->depth++;
+	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADAM", DRSUAPI_SUPPORTED_EXTENSION_ADAM, r);
+	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2", DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2, r);
+	ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo24(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo24 *r)
 {
 	if (ndr_flags & NDR_SCALARS) {
@@ -137,6 +160,51 @@ _PUBLIC_ void ndr_print_drsuapi_DsBindInfo28(struct ndr_print *ndr, const char *
 	ndr->depth--;
 }
 
+static enum ndr_err_code ndr_push_drsuapi_DsBindInfo48(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo48 *r)
+{
+	if (ndr_flags & NDR_SCALARS) {
+		NDR_CHECK(ndr_push_align(ndr, 4));
+		NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
+		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u1));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->repl_epoch));
+		NDR_CHECK(ndr_push_drsuapi_SupportedExtensionsExt(ndr, NDR_SCALARS, r->supported_extensions_ext));
+		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->config_dn_guid));
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo48(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo48 *r)
+{
+	if (ndr_flags & NDR_SCALARS) {
+		NDR_CHECK(ndr_pull_align(ndr, 4));
+		NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
+		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u1));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->repl_epoch));
+		NDR_CHECK(ndr_pull_drsuapi_SupportedExtensionsExt(ndr, NDR_SCALARS, &r->supported_extensions_ext));
+		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->config_dn_guid));
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsBindInfo48(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo48 *r)
+{
+	ndr_print_struct(ndr, name, "drsuapi_DsBindInfo48");
+	ndr->depth++;
+	ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
+	ndr_print_GUID(ndr, "site_guid", &r->site_guid);
+	ndr_print_uint32(ndr, "u1", r->u1);
+	ndr_print_uint32(ndr, "repl_epoch", r->repl_epoch);
+	ndr_print_drsuapi_SupportedExtensionsExt(ndr, "supported_extensions_ext", r->supported_extensions_ext);
+	ndr_print_GUID(ndr, "config_dn_guid", &r->config_dn_guid);
+	ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_drsuapi_DsBindInfoFallBack(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfoFallBack *r)
 {
 	if (ndr_flags & NDR_SCALARS) {
@@ -200,6 +268,15 @@ static enum ndr_err_code ndr_push_drsuapi_DsBindInfo(struct ndr_push *ndr, int n
 				}
 			break; }
 
+			case 48: {
+				{
+					struct ndr_push *_ndr_info48;
+					NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info48, 4, -1));
+					NDR_CHECK(ndr_push_drsuapi_DsBindInfo48(_ndr_info48, NDR_SCALARS, &r->info48));
+					NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info48, 4, -1));
+				}
+			break; }
+
 			default: {
 				{
 					struct ndr_push *_ndr_FallBack;
@@ -220,6 +297,9 @@ static enum ndr_err_code ndr_push_drsuapi_DsBindInfo(struct ndr_push *ndr, int n
 			case 28:
 			break;
 
+			case 48:
+			break;
+
 			default:
 			break;
 
@@ -252,6 +332,15 @@ static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo(struct ndr_pull *ndr, int n
 				}
 			break; }
 
+			case 48: {
+				{
+					struct ndr_pull *_ndr_info48;
+					NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info48, 4, -1));
+					NDR_CHECK(ndr_pull_drsuapi_DsBindInfo48(_ndr_info48, NDR_SCALARS, &r->info48));
+					NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info48, 4, -1));
+				}
+			break; }
+
 			default: {
 				{
 					struct ndr_pull *_ndr_FallBack;
@@ -271,6 +360,9 @@ static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo(struct ndr_pull *ndr, int n
 			case 28:
 			break;
 
+			case 48:
+			break;
+
 			default:
 			break;
 
@@ -293,6 +385,10 @@ _PUBLIC_ void ndr_print_drsuapi_DsBindInfo(struct ndr_print *ndr, const char *na
 			ndr_print_drsuapi_DsBindInfo28(ndr, "info28", &r->info28);
 		break;
 
+		case 48:
+			ndr_print_drsuapi_DsBindInfo48(ndr, "info48", &r->info48);
+		break;
+
 		default:
 			ndr_print_drsuapi_DsBindInfoFallBack(ndr, "FallBack", &r->FallBack);
 		break;
diff --git a/source/librpc/gen_ndr/ndr_drsuapi.h b/source/librpc/gen_ndr/ndr_drsuapi.h
index 11cc3f2..6b6a0b5 100644
--- a/source/librpc/gen_ndr/ndr_drsuapi.h
+++ b/source/librpc/gen_ndr/ndr_drsuapi.h
@@ -64,8 +64,10 @@ extern const struct ndr_interface_table ndr_table_drsuapi;
 
 #define NDR_DRSUAPI_CALL_COUNT (25)
 void ndr_print_drsuapi_SupportedExtensions(struct ndr_print *ndr, const char *name, uint32_t r);
+void ndr_print_drsuapi_SupportedExtensionsExt(struct ndr_print *ndr, const char *name, uint32_t r);
 void ndr_print_drsuapi_DsBindInfo24(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo24 *r);
 void ndr_print_drsuapi_DsBindInfo28(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo28 *r);
+void ndr_print_drsuapi_DsBindInfo48(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo48 *r);
 void ndr_print_drsuapi_DsBindInfoFallBack(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfoFallBack *r);
 void ndr_print_drsuapi_DsBindInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsBindInfo *r);
 void ndr_print_drsuapi_DsBindInfoCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfoCtr *r);
diff --git a/source/librpc/idl/drsuapi.idl b/source/librpc/idl/drsuapi.idl
index 168fd5e..43efddd 100644
--- a/source/librpc/idl/drsuapi.idl
+++ b/source/librpc/idl/drsuapi.idl
@@ -58,6 +58,11 @@ interface drsuapi
 		DRSUAPI_SUPPORTED_EXTENSION_80000000			= 0x80000000
 	} drsuapi_SupportedExtensions;
 
+	typedef [bitmap32bit] bitmap {
+		DRSUAPI_SUPPORTED_EXTENSION_ADAM			= 0x00000001,
+		DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2			= 0x00000002
+	} drsuapi_SupportedExtensionsExt;
+
 	/* this is used by w2k */
 	typedef struct {
 		drsuapi_SupportedExtensions supported_extensions;
@@ -73,6 +78,16 @@ interface drsuapi
 		uint32 repl_epoch;
 	} drsuapi_DsBindInfo28;
 
+	/* this is used by w2k8 */
+	typedef struct {
+		drsuapi_SupportedExtensions supported_extensions;
+		GUID site_guid;
+		uint32 u1;
+		uint32 repl_epoch;
+		drsuapi_SupportedExtensionsExt supported_extensions_ext;
+		GUID config_dn_guid;
+	} drsuapi_DsBindInfo48;
+
 	typedef struct {
 		[flag(NDR_REMAINING)] DATA_BLOB info;
 	} drsuapi_DsBindInfoFallBack;
@@ -80,6 +95,7 @@ interface drsuapi
 	typedef [nodiscriminant] union {
 		[case(24)][subcontext(4)] drsuapi_DsBindInfo24 info24;
 		[case(28)][subcontext(4)] drsuapi_DsBindInfo28 info28;
+		[case(48)][subcontext(4)] drsuapi_DsBindInfo48 info48;
 		[default][subcontext(4)] drsuapi_DsBindInfoFallBack FallBack;
 	} drsuapi_DsBindInfo;
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list