summaryrefslogtreecommitdiff
path: root/python/examples/dnsserver.py
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2012-12-28 15:37:14 +0100
committerAndrew Bartlett <abartlet@samba.org>2013-03-02 03:57:34 +0100
commit87afc3aee1ea593069322a49355dd8780d99e123 (patch)
tree8e1ea6678d93b53f21b34c4940b7d5a64e0f5020 /python/examples/dnsserver.py
parent80fce353e740c793619005ac102ab07fb5e7d280 (diff)
downloadsamba-87afc3aee1ea593069322a49355dd8780d99e123.tar.gz
samba-87afc3aee1ea593069322a49355dd8780d99e123.tar.bz2
samba-87afc3aee1ea593069322a49355dd8780d99e123.zip
Move python modules from source4/scripting/python/ to python/.
Reviewed-by: Andrew Bartlett <abartlet@samba.org> Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Sat Mar 2 03:57:34 CET 2013 on sn-devel-104
Diffstat (limited to 'python/examples/dnsserver.py')
-rwxr-xr-xpython/examples/dnsserver.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/python/examples/dnsserver.py b/python/examples/dnsserver.py
new file mode 100755
index 0000000000..c65b1c4099
--- /dev/null
+++ b/python/examples/dnsserver.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python
+
+# script to test the dnsserver RPC protocol
+
+import sys
+from optparse import OptionParser
+
+sys.path.insert(0, "bin/python")
+
+import samba
+import samba.getopt as options
+from samba.dcerpc import dnsserver, security, dnsp
+
+
+########### main code ###########
+if __name__ == "__main__":
+ parser = OptionParser("dnsserver [options] server")
+ sambaopts = options.SambaOptions(parser)
+ credopts = options.CredentialsOptionsDouble(parser)
+ parser.add_option_group(credopts)
+
+ (opts, args) = parser.parse_args()
+
+ if len(args) < 3:
+ print("Usage: dnsserver.py [options] DNSSERVER DNSZONE NEWNAME")
+ sys.exit(1)
+
+ server = args[0]
+ dnszone = args[1]
+ newname = args[2]
+
+ lp = sambaopts.get_loadparm()
+ creds = credopts.get_credentials(lp)
+
+ if not creds.authentication_requested():
+ parser.error("You must supply credentials")
+
+ binding_str = "ncacn_ip_tcp:%s[print,sign]" % server
+
+ dns_conn = dnsserver.dnsserver(binding_str, lp, creds)
+
+ print("querying a NS record")
+ res = dns_conn.DnssrvEnumRecords2(0x00070000,
+ 0,
+ server,
+ dnszone,
+ newname,
+ None,
+ dnsp.DNS_TYPE_NS,
+ 0x0f,
+ None,
+ None)
+
+ print("adding a NS glue record")
+ name = dnsserver.DNS_RPC_NAME()
+ name.str = newname
+
+ addrec = dnsserver.DNS_RPC_RECORD()
+ addrec.wType = dnsp.DNS_TYPE_NS
+ addrec.dwFlags = 0
+ addrec.dwSerial = 0
+ addrec.dwTtlSeconds = 3600
+ addrec.dwTimeStamp = 0
+ addrec.dwReserved = 0
+ addrec.data = name
+
+ addrecbuf = dnsserver.DNS_RPC_RECORD_BUF()
+ addrecbuf.rec = addrec
+
+ res = dns_conn.DnssrvUpdateRecord2(0x00070000,
+ 0,
+ server,
+ dnszone,
+ newname,
+ addrecbuf,
+ None)
+
+
+ print("querying the NS record")
+ res = dns_conn.DnssrvEnumRecords2(0x00070000,
+ 0,
+ server,
+ dnszone,
+ newname,
+ None,
+ dnsp.DNS_TYPE_NS,
+ 0x0f,
+ None,
+ None)