]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
python: Simplify GetNCChanges call setup
authorJennifer Sutton <jennifersutton@catalyst.net.nz>
Thu, 29 Aug 2024 01:37:05 +0000 (13:37 +1200)
committerJo Sutton <jsutton@samba.org>
Mon, 26 May 2025 02:41:36 +0000 (02:41 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15852

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
python/samba/drs_utils.py

index 8fac14e78af3289647f4fb6df1e2d24147617a1c..92fc32485ba46c0b8b7d3a52953c6155330f9039 100644 (file)
@@ -260,12 +260,15 @@ class drs_Replicate(object):
 
         # setup for a GetNCChanges call
         if self.supports_ext & DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10:
+            req_level = 10
             req = drsuapi.DsGetNCChangesRequest10()
             req.more_flags = self.more_flags
-            req_level = 10
-        else:
+        elif self.supports_ext & DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8:
             req_level = 8
             req = drsuapi.DsGetNCChangesRequest8()
+        else:
+            req_level = 5
+            req = drsuapi.DsGetNCChangesRequest5()
 
         req.destination_dsa_guid = destination_dsa_guid
         req.source_dsa_invocation_id = source_dsa_invocation_id
@@ -330,22 +333,10 @@ class drs_Replicate(object):
         req.max_ndr_size = 402116
         req.extended_op = exop
         req.fsmo_info = 0
-        req.partial_attribute_set = None
-        req.partial_attribute_set_ex = None
-        req.mapping_ctr.num_mappings = 0
-        req.mapping_ctr.mappings = None
 
-        if not schema and rodc:
+        if hasattr(req, "partial_attribute_set") and not schema and rodc:
             req.partial_attribute_set = drs_get_rodc_partial_attribute_set(self.samdb)
 
-        if not self.supports_ext & DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8:
-            req_level = 5
-            req5 = drsuapi.DsGetNCChangesRequest5()
-            for a in dir(req5):
-                if a[0] != '_':
-                    setattr(req5, a, getattr(req, a))
-            req = req5
-
         num_objects = 0
         num_links = 0
         first_chunk = True