samba-tool/dns: Set secure zone update flag after creating new zone
authorAmitay Isaacs <amitay@gmail.com>
Mon, 27 May 2013 02:37:20 +0000 (12:37 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 30 May 2013 00:44:13 +0000 (10:44 +1000)
Windows DC ignores the secure update flag while creating new zone.  Windows
performs another operation to set the secure update flag.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
python/samba/netcmd/dns.py

index cce0d66..137cd98 100644 (file)
@@ -854,7 +854,6 @@ class cmd_zonecreate(Command):
             zone_create_info = dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K()
             zone_create_info.pszZoneName = zone
             zone_create_info.dwZoneType = dnsp.DNS_ZONE_TYPE_PRIMARY
-            zone_create_info.fAllowUpdate = dnsp.DNS_ZONE_UPDATE_SECURE
             zone_create_info.fAging = 0
             zone_create_info.fDsIntegrated = 1
             zone_create_info.fLoadExisting = 1
@@ -863,7 +862,6 @@ class cmd_zonecreate(Command):
             zone_create_info = dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET()
             zone_create_info.pszZoneName = zone
             zone_create_info.dwZoneType = dnsp.DNS_ZONE_TYPE_PRIMARY
-            zone_create_info.fAllowUpdate = dnsp.DNS_ZONE_UPDATE_SECURE
             zone_create_info.fAging = 0
             zone_create_info.fDsIntegrated = 1
             zone_create_info.fLoadExisting = 1
@@ -873,7 +871,6 @@ class cmd_zonecreate(Command):
             zone_create_info = dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN()
             zone_create_info.pszZoneName = zone
             zone_create_info.dwZoneType = dnsp.DNS_ZONE_TYPE_PRIMARY
-            zone_create_info.fAllowUpdate = dnsp.DNS_ZONE_UPDATE_SECURE
             zone_create_info.fAging = 0
             zone_create_info.fDsIntegrated = 1
             zone_create_info.fLoadExisting = 1
@@ -882,6 +879,15 @@ class cmd_zonecreate(Command):
         res = dns_conn.DnssrvOperation2(client_version, 0, server, None,
                                         0, 'ZoneCreate', typeid,
                                         zone_create_info)
+
+        typeid = dnsserver.DNSSRV_TYPEID_NAME_AND_PARAM
+        name_and_param = dnsserver.DNS_RPC_NAME_AND_PARAM()
+        name_and_param.pszNodeName = 'AllowUpdate'
+        name_and_param.dwParam = dnsp.DNS_ZONE_UPDATE_SECURE
+
+        res = dns_conn.DnssrvOperation2(client_version, 0, server, zone,
+                                        0, 'ResetDwordProperty', typeid,
+                                        name_and_param)
         self.outf.write('Zone %s created successfully\n' % zone)