s4-idl: get rid of the operation specific DRS options flags
authorAndrew Tridgell <tridge@samba.org>
Thu, 14 Jan 2010 03:40:53 +0000 (14:40 +1100)
committerAndrew Tridgell <tridge@samba.org>
Thu, 14 Jan 2010 04:37:59 +0000 (15:37 +1100)
It was confusing to have several sets of incomplete options when WSPP
uses a single set.

librpc/gen_ndr/drsuapi.h
librpc/gen_ndr/ndr_drsuapi.c
librpc/gen_ndr/ndr_drsuapi.h
librpc/idl/drsuapi.idl

index 1f5960ddc55cfee7b24c526580a9e6c903143194..6cc62a8e94ea0c36f6233ff296a0f5947ff713a7 100644 (file)
@@ -18,6 +18,7 @@
 /* bitmap drsuapi_DrsOptions */
 #define DRSUAPI_DRS_ASYNC_OP ( 0x00000001 )
 #define DRSUAPI_DRS_GETCHG_CHECK ( 0x00000002 )
 /* bitmap drsuapi_DrsOptions */
 #define DRSUAPI_DRS_ASYNC_OP ( 0x00000001 )
 #define DRSUAPI_DRS_GETCHG_CHECK ( 0x00000002 )
+#define DRSUAPI_DRS_UPDATE_NOTIFICATION ( 0x00000002 )
 #define DRSUAPI_DRS_ADD_REF ( 0x00000004 )
 #define DRSUAPI_DRS_SYNC_ALL ( 0x00000008 )
 #define DRSUAPI_DRS_DEL_REF ( 0x00000008 )
 #define DRSUAPI_DRS_ADD_REF ( 0x00000004 )
 #define DRSUAPI_DRS_SYNC_ALL ( 0x00000008 )
 #define DRSUAPI_DRS_DEL_REF ( 0x00000008 )
 #define DRSUAPI_DRS_REF_OK ( 0x00004000 )
 #define DRSUAPI_DRS_FULL_SYNC_NOW ( 0x00008000 )
 #define DRSUAPI_DRS_NO_SOURCE ( 0x00008000 )
 #define DRSUAPI_DRS_REF_OK ( 0x00004000 )
 #define DRSUAPI_DRS_FULL_SYNC_NOW ( 0x00008000 )
 #define DRSUAPI_DRS_NO_SOURCE ( 0x00008000 )
+#define DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS ( 0x00010000 )
 #define DRSUAPI_DRS_FULL_SYNC_PACKET ( 0x00020000 )
 #define DRSUAPI_DRS_FULL_SYNC_PACKET ( 0x00020000 )
+#define DRSUAPI_DRS_SYNC_REQUEUE ( 0x00040000 )
+#define DRSUAPI_DRS_SYNC_URGENT ( 0x00080000 )
 #define DRSUAPI_DRS_REF_GCSPN ( 0x00100000 )
 #define DRSUAPI_DRS_REF_GCSPN ( 0x00100000 )
-#define DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING ( 0x00800000 )
+#define DRSUAPI_DRS_NO_DISCARD ( 0x00100000 )
+#define DRSUAPI_DRS_NEVER_SYNCED ( 0x00200000 )
+#define DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING ( 0x00400000 )
+#define DRSUAPI_DRS_INIT_SYNC_NOW ( 0x00800000 )
+#define DRSUAPI_DRS_PREEMPTED ( 0x01000000 )
 #define DRSUAPI_DRS_SYNC_FORCED ( 0x02000000 )
 #define DRSUAPI_DRS_DISABLE_AUTO_SYNC ( 0x04000000 )
 #define DRSUAPI_DRS_DISABLE_PERIODIC_SYNC ( 0x08000000 )
 #define DRSUAPI_DRS_SYNC_FORCED ( 0x02000000 )
 #define DRSUAPI_DRS_DISABLE_AUTO_SYNC ( 0x04000000 )
 #define DRSUAPI_DRS_DISABLE_PERIODIC_SYNC ( 0x08000000 )
@@ -726,13 +734,6 @@ union drsuapi_DsGetNCChangesCtr {
        struct drsuapi_DsGetNCChangesCtr7 ctr7;/* [case(7)] */
 }/* [switch_type(int32)] */;
 
        struct drsuapi_DsGetNCChangesCtr7 ctr7;/* [case(7)] */
 }/* [switch_type(int32)] */;
 
-/* bitmap drsuapi_DsReplicaUpdateRefsOptions */
-#define DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION ( 0x00000001 )
-#define DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK ( 0x00000002 )
-#define DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE ( 0x00000004 )
-#define DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE ( 0x00000008 )
-#define DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE ( 0x00000010 )
-
 struct drsuapi_DsReplicaUpdateRefsRequest1 {
        struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
        const char *dest_dsa_dns_name;/* [ref,charset(DOS)] */
 struct drsuapi_DsReplicaUpdateRefsRequest1 {
        struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
        const char *dest_dsa_dns_name;/* [ref,charset(DOS)] */
@@ -744,10 +745,6 @@ union drsuapi_DsReplicaUpdateRefsRequest {
        struct drsuapi_DsReplicaUpdateRefsRequest1 req1;/* [case] */
 }/* [switch_type(int32)] */;
 
        struct drsuapi_DsReplicaUpdateRefsRequest1 req1;/* [case] */
 }/* [switch_type(int32)] */;
 
-/* bitmap drsuapi_DsReplicaAddOptions */
-#define DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION ( 0x00000001 )
-#define DRSUAPI_DS_REPLICA_ADD_WRITEABLE ( 0x00000002 )
-
 struct drsuapi_DsReplicaAddRequest1 {
        struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
        const char *source_dsa_address;/* [unique,charset(UTF16)] */
 struct drsuapi_DsReplicaAddRequest1 {
        struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
        const char *source_dsa_address;/* [unique,charset(UTF16)] */
@@ -769,10 +766,6 @@ union drsuapi_DsReplicaAddRequest {
        struct drsuapi_DsReplicaAddRequest2 req2;/* [case(2)] */
 }/* [switch_type(int32)] */;
 
        struct drsuapi_DsReplicaAddRequest2 req2;/* [case(2)] */
 }/* [switch_type(int32)] */;
 
-/* bitmap drsuapi_DsReplicaDeleteOptions */
-#define DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION ( 0x00000001 )
-#define DRSUAPI_DS_REPLICA_ADD_WRITEABLE ( 0x00000002 )
-
 struct drsuapi_DsReplicaDelRequest1 {
        struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
        const char *source_dsa_address;/* [unique,charset(UTF16)] */
 struct drsuapi_DsReplicaDelRequest1 {
        struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
        const char *source_dsa_address;/* [unique,charset(UTF16)] */
@@ -783,10 +776,6 @@ union drsuapi_DsReplicaDelRequest {
        struct drsuapi_DsReplicaDelRequest1 req1;/* [case] */
 }/* [switch_type(int32)] */;
 
        struct drsuapi_DsReplicaDelRequest1 req1;/* [case] */
 }/* [switch_type(int32)] */;
 
-/* bitmap drsuapi_DsReplicaModifyOptions */
-#define DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION ( 0x00000001 )
-#define DRSUAPI_DS_REPLICA_ADD_WRITEABLE ( 0x00000002 )
-
 struct drsuapi_DsReplicaModRequest1 {
        struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
        struct GUID source_dra;
 struct drsuapi_DsReplicaModRequest1 {
        struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
        struct GUID source_dra;
@@ -1396,21 +1385,12 @@ enum drsuapi_DsReplicaOpType
 #endif
 ;
 
 #endif
 ;
 
-union drsuapi_DsRplicaOpOptions {
-       uint32_t sync;/* [case(DRSUAPI_DS_REPLICA_OP_TYPE_SYNC)] */
-       uint32_t add;/* [case(DRSUAPI_DS_REPLICA_OP_TYPE_ADD)] */
-       uint32_t op_delete;/* [case(DRSUAPI_DS_REPLICA_OP_TYPE_DELETE)] */
-       uint32_t modify;/* [case(DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY)] */
-       uint32_t update_refs;/* [case(DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS)] */
-       uint32_t unknown;/* [default] */
-}/* [switch_type(drsuapi_DsReplicaOpType)] */;
-
 struct drsuapi_DsReplicaOp {
        NTTIME operation_start;
        uint32_t serial_num;
        uint32_t priority;
        enum drsuapi_DsReplicaOpType operation_type;
 struct drsuapi_DsReplicaOp {
        NTTIME operation_start;
        uint32_t serial_num;
        uint32_t priority;
        enum drsuapi_DsReplicaOpType operation_type;
-       union drsuapi_DsRplicaOpOptions options;/* [switch_is(operation_type)] */
+       uint32_t options;
        const char *nc_dn;/* [unique,charset(UTF16)] */
        const char *remote_dsa_obj_dn;/* [unique,charset(UTF16)] */
        const char *remote_dsa_address;/* [unique,charset(UTF16)] */
        const char *nc_dn;/* [unique,charset(UTF16)] */
        const char *remote_dsa_obj_dn;/* [unique,charset(UTF16)] */
        const char *remote_dsa_address;/* [unique,charset(UTF16)] */
index 5b31d1e3f3257d72c892a76d1c986540ab0c57d2..3b8ac3d751d89fdcf73ef1c33a29d322f6214b2d 100644 (file)
@@ -27,6 +27,7 @@ _PUBLIC_ void ndr_print_drsuapi_DrsOptions(struct ndr_print *ndr, const char *na
        ndr->depth++;
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_ASYNC_OP", DRSUAPI_DRS_ASYNC_OP, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_GETCHG_CHECK", DRSUAPI_DRS_GETCHG_CHECK, r);
        ndr->depth++;
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_ASYNC_OP", DRSUAPI_DRS_ASYNC_OP, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_GETCHG_CHECK", DRSUAPI_DRS_GETCHG_CHECK, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_UPDATE_NOTIFICATION", DRSUAPI_DRS_UPDATE_NOTIFICATION, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_ADD_REF", DRSUAPI_DRS_ADD_REF, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_ALL", DRSUAPI_DRS_SYNC_ALL, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_DEL_REF", DRSUAPI_DRS_DEL_REF, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_ADD_REF", DRSUAPI_DRS_ADD_REF, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_ALL", DRSUAPI_DRS_SYNC_ALL, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_DEL_REF", DRSUAPI_DRS_DEL_REF, r);
@@ -45,9 +46,16 @@ _PUBLIC_ void ndr_print_drsuapi_DrsOptions(struct ndr_print *ndr, const char *na
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_REF_OK", DRSUAPI_DRS_REF_OK, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_FULL_SYNC_NOW", DRSUAPI_DRS_FULL_SYNC_NOW, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NO_SOURCE", DRSUAPI_DRS_NO_SOURCE, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_REF_OK", DRSUAPI_DRS_REF_OK, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_FULL_SYNC_NOW", DRSUAPI_DRS_FULL_SYNC_NOW, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NO_SOURCE", DRSUAPI_DRS_NO_SOURCE, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS", DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_FULL_SYNC_PACKET", DRSUAPI_DRS_FULL_SYNC_PACKET, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_FULL_SYNC_PACKET", DRSUAPI_DRS_FULL_SYNC_PACKET, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_REQUEUE", DRSUAPI_DRS_SYNC_REQUEUE, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_URGENT", DRSUAPI_DRS_SYNC_URGENT, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_REF_GCSPN", DRSUAPI_DRS_REF_GCSPN, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_REF_GCSPN", DRSUAPI_DRS_REF_GCSPN, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NO_DISCARD", DRSUAPI_DRS_NO_DISCARD, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NEVER_SYNCED", DRSUAPI_DRS_NEVER_SYNCED, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING", DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING", DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_INIT_SYNC_NOW", DRSUAPI_DRS_INIT_SYNC_NOW, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_PREEMPTED", DRSUAPI_DRS_PREEMPTED, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_FORCED", DRSUAPI_DRS_SYNC_FORCED, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_DISABLE_AUTO_SYNC", DRSUAPI_DRS_DISABLE_AUTO_SYNC, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_DISABLE_PERIODIC_SYNC", DRSUAPI_DRS_DISABLE_PERIODIC_SYNC, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_FORCED", DRSUAPI_DRS_SYNC_FORCED, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_DISABLE_AUTO_SYNC", DRSUAPI_DRS_DISABLE_AUTO_SYNC, r);
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_DISABLE_PERIODIC_SYNC", DRSUAPI_DRS_DISABLE_PERIODIC_SYNC, r);
@@ -614,7 +622,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest1(struct ndr_push
                        NDR_CHECK(ndr_push_unique_ptr(ndr, r->other_info));
                        ndr->flags = _flags_save_string;
                }
                        NDR_CHECK(ndr_push_unique_ptr(ndr, r->other_info));
                        ndr->flags = _flags_save_string;
                }
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -659,7 +667,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest1(struct ndr_pull
                        }
                        ndr->flags = _flags_save_string;
                }
                        }
                        ndr->flags = _flags_save_string;
                }
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -701,7 +709,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncRequest1(struct ndr_print *ndr, con
                ndr_print_string(ndr, "other_info", r->other_info);
        }
        ndr->depth--;
                ndr_print_string(ndr, "other_info", r->other_info);
        }
        ndr->depth--;
-       ndr_print_drsuapi_DsReplicaSyncOptions(ndr, "options", r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr->depth--;
 }
 
        ndr->depth--;
 }
 
@@ -3846,32 +3854,6 @@ _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr(struct ndr_print *ndr, const c
        }
 }
 
        }
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsOptions(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_DsReplicaUpdateRefsOptions(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_DsReplicaUpdateRefsOptions(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_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK", DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE", DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE", DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE", DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE, r);
-       ndr->depth--;
-}
-
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -3885,7 +3867,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr
                }
                NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
                }
                NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -3918,7 +3900,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr
                        r->dest_dsa_dns_name = NULL;
                }
                NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
                        r->dest_dsa_dns_name = NULL;
                }
                NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -3950,7 +3932,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_print *nd
        ndr_print_string(ndr, "dest_dsa_dns_name", r->dest_dsa_dns_name);
        ndr->depth--;
        ndr_print_GUID(ndr, "dest_dsa_guid", &r->dest_dsa_guid);
        ndr_print_string(ndr, "dest_dsa_dns_name", r->dest_dsa_dns_name);
        ndr->depth--;
        ndr_print_GUID(ndr, "dest_dsa_guid", &r->dest_dsa_guid);
-       ndr_print_drsuapi_DsReplicaUpdateRefsOptions(ndr, "options", r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr->depth--;
 }
 
        ndr->depth--;
 }
 
@@ -4031,29 +4013,6 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_print *ndr
        }
 }
 
        }
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddOptions(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_DsReplicaAddOptions(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_DsReplicaAddOptions(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_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE, r);
-       ndr->depth--;
-}
-
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAddRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAddRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -4064,7 +4023,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest1(struct ndr_push *
                NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
                NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4100,7 +4059,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest1(struct ndr_pull *
                        r->source_dsa_address = NULL;
                }
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
                        r->source_dsa_address = NULL;
                }
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4139,7 +4098,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest1(struct ndr_print *ndr, cons
        }
        ndr->depth--;
        ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
        }
        ndr->depth--;
        ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
-       ndr_print_drsuapi_DsReplicaAddOptions(ndr, "options", r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr->depth--;
 }
 
        ndr->depth--;
 }
 
@@ -4155,7 +4114,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest2(struct ndr_push *
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->transport_dn));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->transport_dn));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4213,7 +4172,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest2(struct ndr_pull *
                        r->source_dsa_address = NULL;
                }
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
                        r->source_dsa_address = NULL;
                }
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4276,7 +4235,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest2(struct ndr_print *ndr, cons
        }
        ndr->depth--;
        ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
        }
        ndr->depth--;
        ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
-       ndr_print_drsuapi_DsReplicaAddOptions(ndr, "options", r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr->depth--;
 }
 
        ndr->depth--;
 }
 
@@ -4377,29 +4336,6 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest(struct ndr_print *ndr, const
        }
 }
 
        }
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsReplicaDeleteOptions(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_DsReplicaDeleteOptions(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_DsReplicaDeleteOptions(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_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE, r);
-       ndr->depth--;
-}
-
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaDelRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaDelRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -4409,7 +4345,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest1(struct ndr_push *
                }
                NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
                }
                NDR_CHECK(ndr_push_ref_ptr(ndr));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4444,7 +4380,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDelRequest1(struct ndr_pull *
                } else {
                        r->source_dsa_address = NULL;
                }
                } else {
                        r->source_dsa_address = NULL;
                }
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4482,7 +4418,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaDelRequest1(struct ndr_print *ndr, cons
                ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
        }
        ndr->depth--;
                ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
        }
        ndr->depth--;
-       ndr_print_drsuapi_DsReplicaDeleteOptions(ndr, "options", r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr->depth--;
 }
 
        ndr->depth--;
 }
 
@@ -4563,29 +4499,6 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaDelRequest(struct ndr_print *ndr, const
        }
 }
 
        }
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsReplicaModifyOptions(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_DsReplicaModifyOptions(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_DsReplicaModifyOptions(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_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE, r);
-       ndr->depth--;
-}
-
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaModRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaModRequest1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -4599,7 +4512,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest1(struct ndr_push *
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->replica_flags));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->modify_fields));
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->replica_flags));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->modify_fields));
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4638,7 +4551,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaModRequest1(struct ndr_pull *
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->replica_flags));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->modify_fields));
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->replica_flags));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->modify_fields));
-               NDR_CHECK(ndr_pull_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -4680,7 +4593,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaModRequest1(struct ndr_print *ndr, cons
        ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
        ndr_print_uint32(ndr, "replica_flags", r->replica_flags);
        ndr_print_uint32(ndr, "modify_fields", r->modify_fields);
        ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
        ndr_print_uint32(ndr, "replica_flags", r->replica_flags);
        ndr_print_uint32(ndr, "modify_fields", r->modify_fields);
-       ndr_print_drsuapi_DsReplicaModifyOptions(ndr, "options", r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr->depth--;
 }
 
        ndr->depth--;
 }
 
@@ -10684,161 +10597,6 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaOpType(struct ndr_print *ndr, const cha
        ndr_print_enum(ndr, name, "ENUM", val, r);
 }
 
        ndr_print_enum(ndr, name, "ENUM", val, r);
 }
 
-static enum ndr_err_code ndr_push_drsuapi_DsRplicaOpOptions(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsRplicaOpOptions *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               int level = ndr_push_get_switch_value(ndr, r);
-               NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, level));
-               NDR_CHECK(ndr_push_union_align(ndr, 4));
-               switch (level) {
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: {
-                               NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, r->sync));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: {
-                               NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, r->add));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: {
-                               NDR_CHECK(ndr_push_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, r->op_delete));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: {
-                               NDR_CHECK(ndr_push_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, r->modify));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: {
-                               NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, r->update_refs));
-                       break; }
-
-                       default: {
-                               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
-                       break; }
-
-               }
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-               int level = ndr_push_get_switch_value(ndr, r);
-               switch (level) {
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_ADD:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS:
-                       break;
-
-                       default:
-                       break;
-
-               }
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_drsuapi_DsRplicaOpOptions(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRplicaOpOptions *r)
-{
-       int level;
-       uint16_t _level;
-       level = ndr_pull_get_switch_value(ndr, r);
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
-               if (_level != level) {
-                       return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
-               }
-               NDR_CHECK(ndr_pull_union_align(ndr, 4));
-               switch (level) {
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, &r->sync));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, &r->add));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, &r->op_delete));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, &r->modify));
-                       break; }
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: {
-                               NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, &r->update_refs));
-                       break; }
-
-                       default: {
-                               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
-                       break; }
-
-               }
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-               switch (level) {
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_ADD:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY:
-                       break;
-
-                       case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS:
-                       break;
-
-                       default:
-                       break;
-
-               }
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_drsuapi_DsRplicaOpOptions(struct ndr_print *ndr, const char *name, const union drsuapi_DsRplicaOpOptions *r)
-{
-       int level;
-       level = ndr_print_get_switch_value(ndr, r);
-       ndr_print_union(ndr, name, level, "drsuapi_DsRplicaOpOptions");
-       switch (level) {
-               case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC:
-                       ndr_print_drsuapi_DsReplicaSyncOptions(ndr, "sync", r->sync);
-               break;
-
-               case DRSUAPI_DS_REPLICA_OP_TYPE_ADD:
-                       ndr_print_drsuapi_DsReplicaAddOptions(ndr, "add", r->add);
-               break;
-
-               case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE:
-                       ndr_print_drsuapi_DsReplicaDeleteOptions(ndr, "op_delete", r->op_delete);
-               break;
-
-               case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY:
-                       ndr_print_drsuapi_DsReplicaModifyOptions(ndr, "modify", r->modify);
-               break;
-
-               case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS:
-                       ndr_print_drsuapi_DsReplicaUpdateRefsOptions(ndr, "update_refs", r->update_refs);
-               break;
-
-               default:
-                       ndr_print_uint32(ndr, "unknown", r->unknown);
-               break;
-
-       }
-}
-
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOp(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOp *r)
 {
        if (ndr_flags & NDR_SCALARS) {
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOp(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOp *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -10847,8 +10605,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaOp(struct ndr_push *ndr, int
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_num));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, r->operation_type));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_num));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
                NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, r->operation_type));
-               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->options, r->operation_type));
-               NDR_CHECK(ndr_push_drsuapi_DsRplicaOpOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->nc_dn));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_obj_dn));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_address));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->nc_dn));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_obj_dn));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_address));
@@ -10893,8 +10650,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOp(struct ndr_pull *ndr, int
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_num));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, &r->operation_type));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_num));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
                NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, &r->operation_type));
-               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->options, r->operation_type));
-               NDR_CHECK(ndr_pull_drsuapi_DsRplicaOpOptions(ndr, NDR_SCALARS, &r->options));
+               NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nc_dn));
                if (_ptr_nc_dn) {
                        NDR_PULL_ALLOC(ndr, r->nc_dn);
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nc_dn));
                if (_ptr_nc_dn) {
                        NDR_PULL_ALLOC(ndr, r->nc_dn);
@@ -10966,8 +10722,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaOp(struct ndr_print *ndr, const char *n
        ndr_print_uint32(ndr, "serial_num", r->serial_num);
        ndr_print_uint32(ndr, "priority", r->priority);
        ndr_print_drsuapi_DsReplicaOpType(ndr, "operation_type", r->operation_type);
        ndr_print_uint32(ndr, "serial_num", r->serial_num);
        ndr_print_uint32(ndr, "priority", r->priority);
        ndr_print_drsuapi_DsReplicaOpType(ndr, "operation_type", r->operation_type);
-       ndr_print_set_switch_value(ndr, &r->options, r->operation_type);
-       ndr_print_drsuapi_DsRplicaOpOptions(ndr, "options", &r->options);
+       ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
        ndr_print_ptr(ndr, "nc_dn", r->nc_dn);
        ndr->depth++;
        if (r->nc_dn) {
        ndr_print_ptr(ndr, "nc_dn", r->nc_dn);
        ndr->depth++;
        if (r->nc_dn) {
index b03e7618443efd633334f5e3b4c3e37d4e6b06db..61d9b3e3f90ebe1aa629d61d05afcc6e00e0b432 100644 (file)
@@ -171,17 +171,13 @@ void ndr_print_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_print *ndr, const
 void ndr_print_drsuapi_DsGetNCChangesCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr2 *r);
 void ndr_print_drsuapi_DsGetNCChangesCtr7(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr7 *r);
 void ndr_print_drsuapi_DsGetNCChangesCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesCtr *r);
 void ndr_print_drsuapi_DsGetNCChangesCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr2 *r);
 void ndr_print_drsuapi_DsGetNCChangesCtr7(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr7 *r);
 void ndr_print_drsuapi_DsGetNCChangesCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesCtr *r);
-void ndr_print_drsuapi_DsReplicaUpdateRefsOptions(struct ndr_print *ndr, const char *name, uint32_t r);
 void ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r);
 void ndr_print_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaUpdateRefsRequest *r);
 void ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r);
 void ndr_print_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaUpdateRefsRequest *r);
-void ndr_print_drsuapi_DsReplicaAddOptions(struct ndr_print *ndr, const char *name, uint32_t r);
 void ndr_print_drsuapi_DsReplicaAddRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAddRequest1 *r);
 void ndr_print_drsuapi_DsReplicaAddRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAddRequest2 *r);
 void ndr_print_drsuapi_DsReplicaAddRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaAddRequest *r);
 void ndr_print_drsuapi_DsReplicaAddRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAddRequest1 *r);
 void ndr_print_drsuapi_DsReplicaAddRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAddRequest2 *r);
 void ndr_print_drsuapi_DsReplicaAddRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaAddRequest *r);
-void ndr_print_drsuapi_DsReplicaDeleteOptions(struct ndr_print *ndr, const char *name, uint32_t r);
 void ndr_print_drsuapi_DsReplicaDelRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaDelRequest1 *r);
 void ndr_print_drsuapi_DsReplicaDelRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaDelRequest *r);
 void ndr_print_drsuapi_DsReplicaDelRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaDelRequest1 *r);
 void ndr_print_drsuapi_DsReplicaDelRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaDelRequest *r);
-void ndr_print_drsuapi_DsReplicaModifyOptions(struct ndr_print *ndr, const char *name, uint32_t r);
 void ndr_print_drsuapi_DsReplicaModRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaModRequest1 *r);
 void ndr_print_drsuapi_DsReplicaModRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaModRequest *r);
 void ndr_print_drsuapi_DsMembershipType(struct ndr_print *ndr, const char *name, enum drsuapi_DsMembershipType r);
 void ndr_print_drsuapi_DsReplicaModRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaModRequest1 *r);
 void ndr_print_drsuapi_DsReplicaModRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaModRequest *r);
 void ndr_print_drsuapi_DsMembershipType(struct ndr_print *ndr, const char *name, enum drsuapi_DsMembershipType r);
@@ -255,7 +251,6 @@ void ndr_print_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_print *ndr, const char
 void ndr_print_drsuapi_DsReplicaKccDsaFailure(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailure *r);
 void ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailuresCtr *r);
 void ndr_print_drsuapi_DsReplicaOpType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaOpType r);
 void ndr_print_drsuapi_DsReplicaKccDsaFailure(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailure *r);
 void ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailuresCtr *r);
 void ndr_print_drsuapi_DsReplicaOpType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaOpType r);
-void ndr_print_drsuapi_DsRplicaOpOptions(struct ndr_print *ndr, const char *name, const union drsuapi_DsRplicaOpOptions *r);
 void ndr_print_drsuapi_DsReplicaOp(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOp *r);
 void ndr_print_drsuapi_DsReplicaOpCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOpCtr *r);
 void ndr_print_drsuapi_DsReplicaAttrValMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData *r);
 void ndr_print_drsuapi_DsReplicaOp(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOp *r);
 void ndr_print_drsuapi_DsReplicaOpCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOpCtr *r);
 void ndr_print_drsuapi_DsReplicaAttrValMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData *r);
index a6849268426df5e98544d4acd96bd56593f25522..9a9df03bb0078b66a3ef608d78532c1eac04ac21 100644 (file)
@@ -223,7 +223,7 @@ interface drsuapi
                drsuapi_DsReplicaObjectIdentifier *naming_context;
                GUID source_dsa_guid;
                astring *other_info; /* I assume this is related to the repsFromTo1OtherInfo dns_name */
                drsuapi_DsReplicaObjectIdentifier *naming_context;
                GUID source_dsa_guid;
                astring *other_info; /* I assume this is related to the repsFromTo1OtherInfo dns_name */
-               drsuapi_DsReplicaSyncOptions options;
+               drsuapi_DrsOptions options;
        } drsuapi_DsReplicaSyncRequest1;
 
        typedef [switch_type(int32)] union {
        } drsuapi_DsReplicaSyncRequest1;
 
        typedef [switch_type(int32)] union {
@@ -789,19 +789,12 @@ interface drsuapi
        /*****************/
         /* Function 0x04 */
        /* [MS-DRSR] 4.1.26 */
        /*****************/
         /* Function 0x04 */
        /* [MS-DRSR] 4.1.26 */
-       typedef bitmap {
-               DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION        = 0x00000001,
-               DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK                  = 0x00000002,
-               DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE                 = 0x00000004,
-               DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE              = 0x00000008,
-               DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE                     = 0x00000010
-       } drsuapi_DsReplicaUpdateRefsOptions;
 
        typedef struct {
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                [ref,charset(DOS),string] uint8 *dest_dsa_dns_name;
                GUID dest_dsa_guid;
 
        typedef struct {
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                [ref,charset(DOS),string] uint8 *dest_dsa_dns_name;
                GUID dest_dsa_guid;
-               drsuapi_DsReplicaUpdateRefsOptions options;
+               drsuapi_DrsOptions options;
        } drsuapi_DsReplicaUpdateRefsRequest1;
 
        typedef [switch_type(int32)] union {
        } drsuapi_DsReplicaUpdateRefsRequest1;
 
        typedef [switch_type(int32)] union {
@@ -816,18 +809,12 @@ interface drsuapi
 
        /*****************/
         /* Function 0x05 */
 
        /*****************/
         /* Function 0x05 */
-       typedef bitmap {
-               DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION   = 0x00000001,
-               DRSUAPI_DS_REPLICA_ADD_WRITEABLE                = 0x00000002
-               /* TODO ... */
-       } drsuapi_DsReplicaAddOptions;
-
 
        typedef struct {
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                [charset(UTF16),string] uint16 *source_dsa_address;
                uint8 schedule[84];
 
        typedef struct {
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                [charset(UTF16),string] uint16 *source_dsa_address;
                uint8 schedule[84];
-               drsuapi_DsReplicaAddOptions options;
+               drsuapi_DrsOptions options;
        } drsuapi_DsReplicaAddRequest1;
 
        typedef struct {
        } drsuapi_DsReplicaAddRequest1;
 
        typedef struct {
@@ -836,7 +823,7 @@ interface drsuapi
                drsuapi_DsReplicaObjectIdentifier *transport_dn;
                [charset(UTF16),string] uint16 *source_dsa_address;
                uint8 schedule[84];
                drsuapi_DsReplicaObjectIdentifier *transport_dn;
                [charset(UTF16),string] uint16 *source_dsa_address;
                uint8 schedule[84];
-               drsuapi_DsReplicaAddOptions options;
+               drsuapi_DrsOptions options;
        } drsuapi_DsReplicaAddRequest2;
 
        typedef [switch_type(int32)] union {
        } drsuapi_DsReplicaAddRequest2;
 
        typedef [switch_type(int32)] union {
@@ -853,17 +840,10 @@ interface drsuapi
 
        /*****************/
         /* Function 0x06 */
 
        /*****************/
         /* Function 0x06 */
-       typedef bitmap {
-               DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION   = 0x00000001,
-               DRSUAPI_DS_REPLICA_ADD_WRITEABLE                = 0x00000002
-               /* TODO ... */
-       } drsuapi_DsReplicaDeleteOptions;
-
-
        typedef struct {
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                [charset(UTF16),string] uint16 *source_dsa_address;
        typedef struct {
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                [charset(UTF16),string] uint16 *source_dsa_address;
-               drsuapi_DsReplicaDeleteOptions options;
+               drsuapi_DrsOptions options;
        } drsuapi_DsReplicaDelRequest1;
 
        typedef [switch_type(int32)] union {
        } drsuapi_DsReplicaDelRequest1;
 
        typedef [switch_type(int32)] union {
@@ -878,12 +858,6 @@ interface drsuapi
 
        /*****************/
         /* Function 0x07 */
 
        /*****************/
         /* Function 0x07 */
-       typedef bitmap {
-               DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION   = 0x00000001,
-               DRSUAPI_DS_REPLICA_ADD_WRITEABLE                = 0x00000002
-               /* TODO ... */
-       } drsuapi_DsReplicaModifyOptions;
-
 
        typedef struct {
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
 
        typedef struct {
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
@@ -892,7 +866,7 @@ interface drsuapi
                uint8 schedule[84];
                uint32 replica_flags;
                uint32 modify_fields;
                uint8 schedule[84];
                uint32 replica_flags;
                uint32 modify_fields;
-               drsuapi_DsReplicaModifyOptions options;
+               drsuapi_DrsOptions options;
        } drsuapi_DsReplicaModRequest1;
 
        typedef [switch_type(int32)] union {
        } drsuapi_DsReplicaModRequest1;
 
        typedef [switch_type(int32)] union {
@@ -1521,21 +1495,12 @@ interface drsuapi
                DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS  = 4
        } drsuapi_DsReplicaOpType;
 
                DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS  = 4
        } drsuapi_DsReplicaOpType;
 
-       typedef [switch_type(drsuapi_DsReplicaOpType)] union {
-               [case(DRSUAPI_DS_REPLICA_OP_TYPE_SYNC)]         drsuapi_DsReplicaSyncOptions sync;
-               [case(DRSUAPI_DS_REPLICA_OP_TYPE_ADD)]          drsuapi_DsReplicaAddOptions add;
-               [case(DRSUAPI_DS_REPLICA_OP_TYPE_DELETE)]       drsuapi_DsReplicaDeleteOptions op_delete;
-               [case(DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY)]       drsuapi_DsReplicaModifyOptions modify;
-               [case(DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS)]  drsuapi_DsReplicaUpdateRefsOptions update_refs;
-               [default] uint32 unknown;
-       } drsuapi_DsRplicaOpOptions;
-
        typedef struct {
                NTTIME operation_start;
                uint32 serial_num; /* unique till reboot */
                uint32 priority;
                drsuapi_DsReplicaOpType operation_type;
        typedef struct {
                NTTIME operation_start;
                uint32 serial_num; /* unique till reboot */
                uint32 priority;
                drsuapi_DsReplicaOpType operation_type;
-               [switch_is(operation_type)] drsuapi_DsRplicaOpOptions options;
+               drsuapi_DrsOptions options;
                [charset(UTF16),string] uint16 *nc_dn;
                [charset(UTF16),string] uint16 *remote_dsa_obj_dn;
                [charset(UTF16),string] uint16 *remote_dsa_address;
                [charset(UTF16),string] uint16 *nc_dn;
                [charset(UTF16),string] uint16 *remote_dsa_obj_dn;
                [charset(UTF16),string] uint16 *remote_dsa_address;