summaryrefslogtreecommitdiff
path: root/source4/scripting
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2012-01-06 10:28:52 +1100
committerAmitay Isaacs <amitay@samba.org>2012-01-06 02:41:22 +0100
commit200c22b9940f8e222f20f95691bc61dcb883b609 (patch)
tree30aeaf6858c880d8f663d06b438fe00aeee6f275 /source4/scripting
parentf8163195b083d0c2bff25a6078224605d37562e1 (diff)
downloadsamba-200c22b9940f8e222f20f95691bc61dcb883b609.tar.gz
samba-200c22b9940f8e222f20f95691bc61dcb883b609.tar.bz2
samba-200c22b9940f8e222f20f95691bc61dcb883b609.zip
samba-tool:dns: Check through all the DNS records for a match
There can be multiple dns records for a specified record type. Autobuild-User: Amitay Isaacs <amitay@samba.org> Autobuild-Date: Fri Jan 6 02:41:22 CET 2012 on sn-devel-104
Diffstat (limited to 'source4/scripting')
-rw-r--r--source4/scripting/python/samba/netcmd/dns.py32
1 files changed, 16 insertions, 16 deletions
diff --git a/source4/scripting/python/samba/netcmd/dns.py b/source4/scripting/python/samba/netcmd/dns.py
index 002c5a2eab..74b649ee1e 100644
--- a/source4/scripting/python/samba/netcmd/dns.py
+++ b/source4/scripting/python/samba/netcmd/dns.py
@@ -457,6 +457,7 @@ class SRVRecord(dnsserver.DNS_RPC_RECORD):
srv.nameTarget.len = len(target)
self.data = srv
+# Match a dns record with specified data
def dns_record_match(dns_conn, server, zone, name, record_type, data):
select_flags = dnsserver.DNS_RPC_VIEW_AUTHORITY_DATA
@@ -474,36 +475,35 @@ def dns_record_match(dns_conn, server, zone, name, record_type, data):
except RuntimeError, e:
return None
+ if not res or res.count == 0:
+ return None
+
rec_match = None
- if res and res.count > 0:
- recs = res.rec[0]
- for rec in recs.records:
- if rec.wType == record_type:
- rec_match = rec
- break
-
- if rec_match:
+ for rec in res.rec[0].records:
+ if rec.wType != record_type:
+ continue
+
found = False
if record_type == dnsp.DNS_TYPE_A:
- if rec_match.data == data:
+ if rec.data == data:
found = True
elif record_type == dnsp.DNS_TYPE_AAAA:
- if rec_match.data == data:
+ if rec.data == data:
found = True
elif record_type == dnsp.DNS_TYPE_PTR:
- if rec_match.data.str.rstrip('.') == data.rstrip('.'):
+ if rec.data.str.rstrip('.') == data.rstrip('.'):
found = True
elif record_type == dnsp.DNS_TYPE_CNAME:
- if rec_match.data.str.rstrip('.') == data.rstrip('.'):
+ if rec.data.str.rstrip('.') == data.rstrip('.'):
found = True
elif record_type == dnsp.DNS_TYPE_NS:
- if rec_match.data.str.rstrip('.') == data.rstrip('.'):
+ if rec.data.str.rstrip('.') == data.rstrip('.'):
found = True
-
if found:
- return rec_match
+ rec_match = rec
+ break
- return None
+ return rec_match
class cmd_serverinfo(Command):