[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Wed Nov 12 14:41:03 MST 2014


The branch, master has been updated
       via  fb39c6f Move dnspython to third_party.
       via  776424e Add samba.ensure_third_party_module() function, loading external python modules from third_party/ if the system doesn't provide them.
       via  0de6799 s3-keytab: fix keytab array NULL termination.
      from  2d44498 s3:smb2_break: First test for NT_STATUS_INVALID_OPLOCK_PROTOCOL, then for in_oplock_level being reasonable

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit fb39c6fb5edf70097ee31e1b8638838dfc081892
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Fri Nov 7 20:09:10 2014 +0000

    Move dnspython to third_party.
    
    Signed-off-by: Jelmer Vernooij <jelmer at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Wed Nov 12 22:40:53 CET 2014 on sn-devel-104

commit 776424e99113a3ffc6679c583093e2892304a7fd
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Fri Oct 17 00:48:20 2014 -0700

    Add samba.ensure_third_party_module() function, loading external python modules from third_party/ if the system doesn't provide them.
    
    Signed-off-by: Jelmer Vernooij <jelmer at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 0de6799996955fbf8e19ace8c4b7b61f5a262cb5
Author: Matt Rogers <mrogers at redhat.com>
Date:   Wed Nov 12 17:21:05 2014 +0100

    s3-keytab: fix keytab array NULL termination.
    
    Signed-off-by: Matt Rogers <mrogers at redhat.com>
    Reviewed-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 lib/wscript_build                                  |  1 -
 python/samba/__init__.py                           | 35 ++++++++++++++++++----
 source3/libads/kerberos_keytab.c                   |  3 +-
 source4/scripting/bin/samba_dnsupdate              |  2 +-
 source4/scripting/bin/samba_upgradedns             |  2 +-
 {lib => third_party}/dnspython/.gitignore          |  0
 {lib => third_party}/dnspython/ChangeLog           |  0
 {lib => third_party}/dnspython/LICENSE             |  0
 {lib => third_party}/dnspython/MANIFEST.in         |  0
 {lib => third_party}/dnspython/Makefile            |  0
 {lib => third_party}/dnspython/README              |  0
 {lib => third_party}/dnspython/TODO                |  0
 {lib => third_party}/dnspython/dns/__init__.py     |  0
 {lib => third_party}/dnspython/dns/dnssec.py       |  0
 {lib => third_party}/dnspython/dns/e164.py         |  0
 {lib => third_party}/dnspython/dns/edns.py         |  0
 {lib => third_party}/dnspython/dns/entropy.py      |  0
 {lib => third_party}/dnspython/dns/exception.py    |  0
 {lib => third_party}/dnspython/dns/flags.py        |  0
 {lib => third_party}/dnspython/dns/hash.py         |  0
 {lib => third_party}/dnspython/dns/inet.py         |  0
 {lib => third_party}/dnspython/dns/ipv4.py         |  0
 {lib => third_party}/dnspython/dns/ipv6.py         |  0
 {lib => third_party}/dnspython/dns/message.py      |  0
 {lib => third_party}/dnspython/dns/name.py         |  0
 {lib => third_party}/dnspython/dns/namedict.py     |  0
 {lib => third_party}/dnspython/dns/node.py         |  0
 {lib => third_party}/dnspython/dns/opcode.py       |  0
 {lib => third_party}/dnspython/dns/query.py        |  0
 {lib => third_party}/dnspython/dns/rcode.py        |  0
 {lib => third_party}/dnspython/dns/rdata.py        |  0
 {lib => third_party}/dnspython/dns/rdataclass.py   |  0
 {lib => third_party}/dnspython/dns/rdataset.py     |  0
 {lib => third_party}/dnspython/dns/rdatatype.py    |  0
 .../dnspython/dns/rdtypes/ANY/AFSDB.py             |  0
 .../dnspython/dns/rdtypes/ANY/CERT.py              |  0
 .../dnspython/dns/rdtypes/ANY/CNAME.py             |  0
 .../dnspython/dns/rdtypes/ANY/DLV.py               |  0
 .../dnspython/dns/rdtypes/ANY/DNAME.py             |  0
 .../dnspython/dns/rdtypes/ANY/DNSKEY.py            |  0
 .../dnspython/dns/rdtypes/ANY/DS.py                |  0
 .../dnspython/dns/rdtypes/ANY/GPOS.py              |  0
 .../dnspython/dns/rdtypes/ANY/HINFO.py             |  0
 .../dnspython/dns/rdtypes/ANY/HIP.py               |  0
 .../dnspython/dns/rdtypes/ANY/ISDN.py              |  0
 .../dnspython/dns/rdtypes/ANY/LOC.py               |  0
 .../dnspython/dns/rdtypes/ANY/MX.py                |  0
 .../dnspython/dns/rdtypes/ANY/NS.py                |  0
 .../dnspython/dns/rdtypes/ANY/NSEC.py              |  0
 .../dnspython/dns/rdtypes/ANY/NSEC3.py             |  0
 .../dnspython/dns/rdtypes/ANY/NSEC3PARAM.py        |  0
 .../dnspython/dns/rdtypes/ANY/PTR.py               |  0
 .../dnspython/dns/rdtypes/ANY/RP.py                |  0
 .../dnspython/dns/rdtypes/ANY/RRSIG.py             |  0
 .../dnspython/dns/rdtypes/ANY/RT.py                |  0
 .../dnspython/dns/rdtypes/ANY/SOA.py               |  0
 .../dnspython/dns/rdtypes/ANY/SPF.py               |  0
 .../dnspython/dns/rdtypes/ANY/SSHFP.py             |  0
 .../dnspython/dns/rdtypes/ANY/TXT.py               |  0
 .../dnspython/dns/rdtypes/ANY/X25.py               |  0
 .../dnspython/dns/rdtypes/ANY/__init__.py          |  0
 {lib => third_party}/dnspython/dns/rdtypes/IN/A.py |  0
 .../dnspython/dns/rdtypes/IN/AAAA.py               |  0
 .../dnspython/dns/rdtypes/IN/APL.py                |  0
 .../dnspython/dns/rdtypes/IN/DHCID.py              |  0
 .../dnspython/dns/rdtypes/IN/IPSECKEY.py           |  0
 .../dnspython/dns/rdtypes/IN/KX.py                 |  0
 .../dnspython/dns/rdtypes/IN/NAPTR.py              |  0
 .../dnspython/dns/rdtypes/IN/NSAP.py               |  0
 .../dnspython/dns/rdtypes/IN/NSAP_PTR.py           |  0
 .../dnspython/dns/rdtypes/IN/PX.py                 |  0
 .../dnspython/dns/rdtypes/IN/SRV.py                |  0
 .../dnspython/dns/rdtypes/IN/WKS.py                |  0
 .../dnspython/dns/rdtypes/IN/__init__.py           |  0
 .../dnspython/dns/rdtypes/__init__.py              |  0
 .../dnspython/dns/rdtypes/dsbase.py                |  0
 .../dnspython/dns/rdtypes/mxbase.py                |  0
 .../dnspython/dns/rdtypes/nsbase.py                |  0
 .../dnspython/dns/rdtypes/txtbase.py               |  0
 {lib => third_party}/dnspython/dns/renderer.py     |  0
 {lib => third_party}/dnspython/dns/resolver.py     |  0
 {lib => third_party}/dnspython/dns/reversename.py  |  0
 {lib => third_party}/dnspython/dns/rrset.py        |  0
 {lib => third_party}/dnspython/dns/set.py          |  0
 {lib => third_party}/dnspython/dns/tokenizer.py    |  0
 {lib => third_party}/dnspython/dns/tsig.py         |  0
 {lib => third_party}/dnspython/dns/tsigkeyring.py  |  0
 {lib => third_party}/dnspython/dns/ttl.py          |  0
 {lib => third_party}/dnspython/dns/update.py       |  0
 {lib => third_party}/dnspython/dns/version.py      |  0
 {lib => third_party}/dnspython/dns/wiredata.py     |  0
 {lib => third_party}/dnspython/dns/zone.py         |  0
 {lib => third_party}/dnspython/examples/ddns.py    |  0
 {lib => third_party}/dnspython/examples/e164.py    |  0
 {lib => third_party}/dnspython/examples/mx.py      |  0
 {lib => third_party}/dnspython/examples/name.py    |  0
 {lib => third_party}/dnspython/examples/reverse.py |  0
 .../dnspython/examples/reverse_name.py             |  0
 {lib => third_party}/dnspython/examples/xfr.py     |  0
 .../dnspython/examples/zonediff.py                 |  0
 {lib => third_party}/dnspython/setup.py            |  0
 {lib => third_party}/dnspython/tests/Makefile      |  0
 {lib => third_party}/dnspython/tests/bugs.py       |  0
 {lib => third_party}/dnspython/tests/dnssec.py     |  0
 {lib => third_party}/dnspython/tests/example       |  0
 {lib => third_party}/dnspython/tests/example1.good |  0
 {lib => third_party}/dnspython/tests/example2.good |  0
 {lib => third_party}/dnspython/tests/flags.py      |  0
 {lib => third_party}/dnspython/tests/message.py    |  0
 {lib => third_party}/dnspython/tests/name.py       |  0
 {lib => third_party}/dnspython/tests/namedict.py   |  0
 {lib => third_party}/dnspython/tests/ntoaaton.py   |  0
 .../dnspython/tests/rdtypeandclass.py              |  0
 {lib => third_party}/dnspython/tests/resolver.py   |  0
 {lib => third_party}/dnspython/tests/rrset.py      |  0
 {lib => third_party}/dnspython/tests/set.py        |  0
 {lib => third_party}/dnspython/tests/tokenizer.py  |  0
 {lib => third_party}/dnspython/tests/update.py     |  0
 {lib => third_party}/dnspython/tests/zone.py       |  0
 {lib => third_party}/dnspython/util/COPYRIGHT      |  0
 {lib => third_party}/dnspython/util/copyrights     |  0
 third_party/wscript_build                          | 28 +++++++++++++++++
 wscript_build                                      |  3 +-
 123 files changed, 62 insertions(+), 12 deletions(-)
 rename {lib => third_party}/dnspython/.gitignore (100%)
 rename {lib => third_party}/dnspython/ChangeLog (100%)
 rename {lib => third_party}/dnspython/LICENSE (100%)
 rename {lib => third_party}/dnspython/MANIFEST.in (100%)
 rename {lib => third_party}/dnspython/Makefile (100%)
 rename {lib => third_party}/dnspython/README (100%)
 rename {lib => third_party}/dnspython/TODO (100%)
 rename {lib => third_party}/dnspython/dns/__init__.py (100%)
 rename {lib => third_party}/dnspython/dns/dnssec.py (100%)
 rename {lib => third_party}/dnspython/dns/e164.py (100%)
 rename {lib => third_party}/dnspython/dns/edns.py (100%)
 rename {lib => third_party}/dnspython/dns/entropy.py (100%)
 rename {lib => third_party}/dnspython/dns/exception.py (100%)
 rename {lib => third_party}/dnspython/dns/flags.py (100%)
 rename {lib => third_party}/dnspython/dns/hash.py (100%)
 rename {lib => third_party}/dnspython/dns/inet.py (100%)
 rename {lib => third_party}/dnspython/dns/ipv4.py (100%)
 rename {lib => third_party}/dnspython/dns/ipv6.py (100%)
 rename {lib => third_party}/dnspython/dns/message.py (100%)
 rename {lib => third_party}/dnspython/dns/name.py (100%)
 rename {lib => third_party}/dnspython/dns/namedict.py (100%)
 rename {lib => third_party}/dnspython/dns/node.py (100%)
 rename {lib => third_party}/dnspython/dns/opcode.py (100%)
 rename {lib => third_party}/dnspython/dns/query.py (100%)
 rename {lib => third_party}/dnspython/dns/rcode.py (100%)
 rename {lib => third_party}/dnspython/dns/rdata.py (100%)
 rename {lib => third_party}/dnspython/dns/rdataclass.py (100%)
 rename {lib => third_party}/dnspython/dns/rdataset.py (100%)
 rename {lib => third_party}/dnspython/dns/rdatatype.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/AFSDB.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/CERT.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/CNAME.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/DLV.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/DNAME.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/DNSKEY.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/DS.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/GPOS.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/HINFO.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/HIP.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/ISDN.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/LOC.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/MX.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/NS.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/NSEC.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/NSEC3.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/NSEC3PARAM.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/PTR.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/RP.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/RRSIG.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/RT.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/SOA.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/SPF.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/SSHFP.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/TXT.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/X25.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/ANY/__init__.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/A.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/AAAA.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/APL.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/DHCID.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/IPSECKEY.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/KX.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/NAPTR.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/NSAP.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/NSAP_PTR.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/PX.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/SRV.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/WKS.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/IN/__init__.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/__init__.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/dsbase.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/mxbase.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/nsbase.py (100%)
 rename {lib => third_party}/dnspython/dns/rdtypes/txtbase.py (100%)
 rename {lib => third_party}/dnspython/dns/renderer.py (100%)
 rename {lib => third_party}/dnspython/dns/resolver.py (100%)
 rename {lib => third_party}/dnspython/dns/reversename.py (100%)
 rename {lib => third_party}/dnspython/dns/rrset.py (100%)
 rename {lib => third_party}/dnspython/dns/set.py (100%)
 rename {lib => third_party}/dnspython/dns/tokenizer.py (100%)
 rename {lib => third_party}/dnspython/dns/tsig.py (100%)
 rename {lib => third_party}/dnspython/dns/tsigkeyring.py (100%)
 rename {lib => third_party}/dnspython/dns/ttl.py (100%)
 rename {lib => third_party}/dnspython/dns/update.py (100%)
 rename {lib => third_party}/dnspython/dns/version.py (100%)
 rename {lib => third_party}/dnspython/dns/wiredata.py (100%)
 rename {lib => third_party}/dnspython/dns/zone.py (100%)
 rename {lib => third_party}/dnspython/examples/ddns.py (100%)
 rename {lib => third_party}/dnspython/examples/e164.py (100%)
 rename {lib => third_party}/dnspython/examples/mx.py (100%)
 rename {lib => third_party}/dnspython/examples/name.py (100%)
 rename {lib => third_party}/dnspython/examples/reverse.py (100%)
 rename {lib => third_party}/dnspython/examples/reverse_name.py (100%)
 rename {lib => third_party}/dnspython/examples/xfr.py (100%)
 rename {lib => third_party}/dnspython/examples/zonediff.py (100%)
 rename {lib => third_party}/dnspython/setup.py (100%)
 rename {lib => third_party}/dnspython/tests/Makefile (100%)
 rename {lib => third_party}/dnspython/tests/bugs.py (100%)
 rename {lib => third_party}/dnspython/tests/dnssec.py (100%)
 rename {lib => third_party}/dnspython/tests/example (100%)
 rename {lib => third_party}/dnspython/tests/example1.good (100%)
 rename {lib => third_party}/dnspython/tests/example2.good (100%)
 rename {lib => third_party}/dnspython/tests/flags.py (100%)
 rename {lib => third_party}/dnspython/tests/message.py (100%)
 rename {lib => third_party}/dnspython/tests/name.py (100%)
 rename {lib => third_party}/dnspython/tests/namedict.py (100%)
 rename {lib => third_party}/dnspython/tests/ntoaaton.py (100%)
 rename {lib => third_party}/dnspython/tests/rdtypeandclass.py (100%)
 rename {lib => third_party}/dnspython/tests/resolver.py (100%)
 rename {lib => third_party}/dnspython/tests/rrset.py (100%)
 rename {lib => third_party}/dnspython/tests/set.py (100%)
 rename {lib => third_party}/dnspython/tests/tokenizer.py (100%)
 rename {lib => third_party}/dnspython/tests/update.py (100%)
 rename {lib => third_party}/dnspython/tests/zone.py (100%)
 rename {lib => third_party}/dnspython/util/COPYRIGHT (100%)
 rename {lib => third_party}/dnspython/util/copyrights (100%)
 create mode 100644 third_party/wscript_build


Changeset truncated at 500 lines:

diff --git a/lib/wscript_build b/lib/wscript_build
index 97c3cfa..c7bf621 100644
--- a/lib/wscript_build
+++ b/lib/wscript_build
@@ -4,7 +4,6 @@ import os, Options
 
 # work out what python external libraries we need to install
 external_libs = {
-    "dns.resolver": "dnspython/dns",
     "subunit": "subunit/python/subunit",
     "testtools": "testtools/testtools"}
 
diff --git a/python/samba/__init__.py b/python/samba/__init__.py
index cd2a309..0cbdec7 100644
--- a/python/samba/__init__.py
+++ b/python/samba/__init__.py
@@ -314,7 +314,8 @@ def valid_netbios_name(name):
     return True
 
 
-def import_bundled_package(modulename, location):
+def import_bundled_package(modulename, location, source_tree_container,
+                           namespace):
     """Import the bundled version of a package.
 
     :note: This should only be called if the system version of the package
@@ -322,14 +323,35 @@ def import_bundled_package(modulename, location):
 
     :param modulename: Module name to import
     :param location: Location to add to sys.path (can be relative to
-        ${srcdir}/lib)
+        ${srcdir}/${source_tree_container})
+    :param source_tree_container: Directory under source root that
+        contains the bundled third party modules.
+    :param namespace: Namespace to import module from, when not in source tree
     """
     if in_source_tree():
-        sys.path.insert(0, os.path.join(source_tree_topdir(), "lib", location))
+        extra_path = os.path.join(source_tree_topdir(), source_tree_container,
+            location)
+        if not extra_path in sys.path:
+            sys.path.insert(0, extra_path)
         sys.modules[modulename] = __import__(modulename)
     else:
         sys.modules[modulename] = __import__(
-            "samba.external.%s" % modulename, fromlist=["samba.external"])
+            "%s.%s" % (namespace, modulename), fromlist=[namespace])
+
+
+def ensure_third_party_module(modulename, location):
+    """Add a location to sys.path if a third party dependency can't be found.
+
+    :param modulename: Module name to import
+    :param location: Location to add to sys.path (can be relative to
+        ${srcdir}/third_party)
+    """
+    try:
+        __import__(modulename)
+    except ImportError:
+        import_bundled_package(modulename, location,
+            source_tree_container="third_party",
+            namespace="samba.third_party")
 
 
 def ensure_external_module(modulename, location):
@@ -339,10 +361,13 @@ def ensure_external_module(modulename, location):
     :param location: Location to add to sys.path (can be relative to
         ${srcdir}/lib)
     """
+    # This is deprecated - please use ensure_third_party_module for
+    # new modules instead, and put them in third_party/.
     try:
         __import__(modulename)
     except ImportError:
-        import_bundled_package(modulename, location)
+        import_bundled_package(modulename, location,
+            source_tree_container="lib", namespace="samba.external")
 
 
 def dn_from_dns_name(dnsdomain):
diff --git a/source3/libads/kerberos_keytab.c b/source3/libads/kerberos_keytab.c
index 43c755c..ae3d80e39 100644
--- a/source3/libads/kerberos_keytab.c
+++ b/source3/libads/kerberos_keytab.c
@@ -667,14 +667,13 @@ int ads_keytab_create_default(ADS_STRUCT *ads)
 		goto done;
 	}
 
-	oldEntries = talloc_array(frame, char *, found);
+	oldEntries = talloc_zero_array(frame, char *, found + 1);
 	if (!oldEntries) {
 		DEBUG(1, (__location__ ": Failed to allocate space to store "
 			  "the old keytab entries (talloc failed?).\n"));
 		ret = -1;
 		goto done;
 	}
-	memset(oldEntries, '\0', found * sizeof(char *));
 
 	ret = krb5_kt_start_seq_get(context, keytab, &cursor);
 	if (ret == KRB5_KT_END || ret == ENOENT) {
diff --git a/source4/scripting/bin/samba_dnsupdate b/source4/scripting/bin/samba_dnsupdate
index 181e67f..c2ee3ec 100755
--- a/source4/scripting/bin/samba_dnsupdate
+++ b/source4/scripting/bin/samba_dnsupdate
@@ -47,7 +47,7 @@ from samba.auth import system_session
 from samba.samdb import SamDB
 from samba.dcerpc import netlogon, winbind
 
-samba.ensure_external_module("dns", "dnspython")
+samba.ensure_third_party_module("dns", "dnspython")
 import dns.resolver
 import dns.exception
 
diff --git a/source4/scripting/bin/samba_upgradedns b/source4/scripting/bin/samba_upgradedns
index 4d49770..689c9a4 100755
--- a/source4/scripting/bin/samba_upgradedns
+++ b/source4/scripting/bin/samba_upgradedns
@@ -67,7 +67,7 @@ from samba.provision.sambadns import (
     create_named_txt )
 from samba.dcerpc import security
 
-samba.ensure_external_module("dns", "dnspython")
+samba.ensure_third_party_module("dns", "dnspython")
 import dns.zone, dns.rdatatype
 
 __docformat__ = 'restructuredText'
diff --git a/lib/dnspython/.gitignore b/third_party/dnspython/.gitignore
similarity index 100%
rename from lib/dnspython/.gitignore
rename to third_party/dnspython/.gitignore
diff --git a/lib/dnspython/ChangeLog b/third_party/dnspython/ChangeLog
similarity index 100%
rename from lib/dnspython/ChangeLog
rename to third_party/dnspython/ChangeLog
diff --git a/lib/dnspython/LICENSE b/third_party/dnspython/LICENSE
similarity index 100%
rename from lib/dnspython/LICENSE
rename to third_party/dnspython/LICENSE
diff --git a/lib/dnspython/MANIFEST.in b/third_party/dnspython/MANIFEST.in
similarity index 100%
rename from lib/dnspython/MANIFEST.in
rename to third_party/dnspython/MANIFEST.in
diff --git a/lib/dnspython/Makefile b/third_party/dnspython/Makefile
similarity index 100%
rename from lib/dnspython/Makefile
rename to third_party/dnspython/Makefile
diff --git a/lib/dnspython/README b/third_party/dnspython/README
similarity index 100%
rename from lib/dnspython/README
rename to third_party/dnspython/README
diff --git a/lib/dnspython/TODO b/third_party/dnspython/TODO
similarity index 100%
rename from lib/dnspython/TODO
rename to third_party/dnspython/TODO
diff --git a/lib/dnspython/dns/__init__.py b/third_party/dnspython/dns/__init__.py
similarity index 100%
rename from lib/dnspython/dns/__init__.py
rename to third_party/dnspython/dns/__init__.py
diff --git a/lib/dnspython/dns/dnssec.py b/third_party/dnspython/dns/dnssec.py
similarity index 100%
rename from lib/dnspython/dns/dnssec.py
rename to third_party/dnspython/dns/dnssec.py
diff --git a/lib/dnspython/dns/e164.py b/third_party/dnspython/dns/e164.py
similarity index 100%
rename from lib/dnspython/dns/e164.py
rename to third_party/dnspython/dns/e164.py
diff --git a/lib/dnspython/dns/edns.py b/third_party/dnspython/dns/edns.py
similarity index 100%
rename from lib/dnspython/dns/edns.py
rename to third_party/dnspython/dns/edns.py
diff --git a/lib/dnspython/dns/entropy.py b/third_party/dnspython/dns/entropy.py
similarity index 100%
rename from lib/dnspython/dns/entropy.py
rename to third_party/dnspython/dns/entropy.py
diff --git a/lib/dnspython/dns/exception.py b/third_party/dnspython/dns/exception.py
similarity index 100%
rename from lib/dnspython/dns/exception.py
rename to third_party/dnspython/dns/exception.py
diff --git a/lib/dnspython/dns/flags.py b/third_party/dnspython/dns/flags.py
similarity index 100%
rename from lib/dnspython/dns/flags.py
rename to third_party/dnspython/dns/flags.py
diff --git a/lib/dnspython/dns/hash.py b/third_party/dnspython/dns/hash.py
similarity index 100%
rename from lib/dnspython/dns/hash.py
rename to third_party/dnspython/dns/hash.py
diff --git a/lib/dnspython/dns/inet.py b/third_party/dnspython/dns/inet.py
similarity index 100%
rename from lib/dnspython/dns/inet.py
rename to third_party/dnspython/dns/inet.py
diff --git a/lib/dnspython/dns/ipv4.py b/third_party/dnspython/dns/ipv4.py
similarity index 100%
rename from lib/dnspython/dns/ipv4.py
rename to third_party/dnspython/dns/ipv4.py
diff --git a/lib/dnspython/dns/ipv6.py b/third_party/dnspython/dns/ipv6.py
similarity index 100%
rename from lib/dnspython/dns/ipv6.py
rename to third_party/dnspython/dns/ipv6.py
diff --git a/lib/dnspython/dns/message.py b/third_party/dnspython/dns/message.py
similarity index 100%
rename from lib/dnspython/dns/message.py
rename to third_party/dnspython/dns/message.py
diff --git a/lib/dnspython/dns/name.py b/third_party/dnspython/dns/name.py
similarity index 100%
rename from lib/dnspython/dns/name.py
rename to third_party/dnspython/dns/name.py
diff --git a/lib/dnspython/dns/namedict.py b/third_party/dnspython/dns/namedict.py
similarity index 100%
rename from lib/dnspython/dns/namedict.py
rename to third_party/dnspython/dns/namedict.py
diff --git a/lib/dnspython/dns/node.py b/third_party/dnspython/dns/node.py
similarity index 100%
rename from lib/dnspython/dns/node.py
rename to third_party/dnspython/dns/node.py
diff --git a/lib/dnspython/dns/opcode.py b/third_party/dnspython/dns/opcode.py
similarity index 100%
rename from lib/dnspython/dns/opcode.py
rename to third_party/dnspython/dns/opcode.py
diff --git a/lib/dnspython/dns/query.py b/third_party/dnspython/dns/query.py
similarity index 100%
rename from lib/dnspython/dns/query.py
rename to third_party/dnspython/dns/query.py
diff --git a/lib/dnspython/dns/rcode.py b/third_party/dnspython/dns/rcode.py
similarity index 100%
rename from lib/dnspython/dns/rcode.py
rename to third_party/dnspython/dns/rcode.py
diff --git a/lib/dnspython/dns/rdata.py b/third_party/dnspython/dns/rdata.py
similarity index 100%
rename from lib/dnspython/dns/rdata.py
rename to third_party/dnspython/dns/rdata.py
diff --git a/lib/dnspython/dns/rdataclass.py b/third_party/dnspython/dns/rdataclass.py
similarity index 100%
rename from lib/dnspython/dns/rdataclass.py
rename to third_party/dnspython/dns/rdataclass.py
diff --git a/lib/dnspython/dns/rdataset.py b/third_party/dnspython/dns/rdataset.py
similarity index 100%
rename from lib/dnspython/dns/rdataset.py
rename to third_party/dnspython/dns/rdataset.py
diff --git a/lib/dnspython/dns/rdatatype.py b/third_party/dnspython/dns/rdatatype.py
similarity index 100%
rename from lib/dnspython/dns/rdatatype.py
rename to third_party/dnspython/dns/rdatatype.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/AFSDB.py b/third_party/dnspython/dns/rdtypes/ANY/AFSDB.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/AFSDB.py
rename to third_party/dnspython/dns/rdtypes/ANY/AFSDB.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/CERT.py b/third_party/dnspython/dns/rdtypes/ANY/CERT.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/CERT.py
rename to third_party/dnspython/dns/rdtypes/ANY/CERT.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/CNAME.py b/third_party/dnspython/dns/rdtypes/ANY/CNAME.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/CNAME.py
rename to third_party/dnspython/dns/rdtypes/ANY/CNAME.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/DLV.py b/third_party/dnspython/dns/rdtypes/ANY/DLV.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/DLV.py
rename to third_party/dnspython/dns/rdtypes/ANY/DLV.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/DNAME.py b/third_party/dnspython/dns/rdtypes/ANY/DNAME.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/DNAME.py
rename to third_party/dnspython/dns/rdtypes/ANY/DNAME.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/DNSKEY.py b/third_party/dnspython/dns/rdtypes/ANY/DNSKEY.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/DNSKEY.py
rename to third_party/dnspython/dns/rdtypes/ANY/DNSKEY.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/DS.py b/third_party/dnspython/dns/rdtypes/ANY/DS.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/DS.py
rename to third_party/dnspython/dns/rdtypes/ANY/DS.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/GPOS.py b/third_party/dnspython/dns/rdtypes/ANY/GPOS.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/GPOS.py
rename to third_party/dnspython/dns/rdtypes/ANY/GPOS.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/HINFO.py b/third_party/dnspython/dns/rdtypes/ANY/HINFO.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/HINFO.py
rename to third_party/dnspython/dns/rdtypes/ANY/HINFO.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/HIP.py b/third_party/dnspython/dns/rdtypes/ANY/HIP.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/HIP.py
rename to third_party/dnspython/dns/rdtypes/ANY/HIP.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/ISDN.py b/third_party/dnspython/dns/rdtypes/ANY/ISDN.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/ISDN.py
rename to third_party/dnspython/dns/rdtypes/ANY/ISDN.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/LOC.py b/third_party/dnspython/dns/rdtypes/ANY/LOC.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/LOC.py
rename to third_party/dnspython/dns/rdtypes/ANY/LOC.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/MX.py b/third_party/dnspython/dns/rdtypes/ANY/MX.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/MX.py
rename to third_party/dnspython/dns/rdtypes/ANY/MX.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/NS.py b/third_party/dnspython/dns/rdtypes/ANY/NS.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/NS.py
rename to third_party/dnspython/dns/rdtypes/ANY/NS.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/NSEC.py b/third_party/dnspython/dns/rdtypes/ANY/NSEC.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/NSEC.py
rename to third_party/dnspython/dns/rdtypes/ANY/NSEC.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/NSEC3.py b/third_party/dnspython/dns/rdtypes/ANY/NSEC3.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/NSEC3.py
rename to third_party/dnspython/dns/rdtypes/ANY/NSEC3.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/NSEC3PARAM.py b/third_party/dnspython/dns/rdtypes/ANY/NSEC3PARAM.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/NSEC3PARAM.py
rename to third_party/dnspython/dns/rdtypes/ANY/NSEC3PARAM.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/PTR.py b/third_party/dnspython/dns/rdtypes/ANY/PTR.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/PTR.py
rename to third_party/dnspython/dns/rdtypes/ANY/PTR.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/RP.py b/third_party/dnspython/dns/rdtypes/ANY/RP.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/RP.py
rename to third_party/dnspython/dns/rdtypes/ANY/RP.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/RRSIG.py b/third_party/dnspython/dns/rdtypes/ANY/RRSIG.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/RRSIG.py
rename to third_party/dnspython/dns/rdtypes/ANY/RRSIG.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/RT.py b/third_party/dnspython/dns/rdtypes/ANY/RT.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/RT.py
rename to third_party/dnspython/dns/rdtypes/ANY/RT.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/SOA.py b/third_party/dnspython/dns/rdtypes/ANY/SOA.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/SOA.py
rename to third_party/dnspython/dns/rdtypes/ANY/SOA.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/SPF.py b/third_party/dnspython/dns/rdtypes/ANY/SPF.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/SPF.py
rename to third_party/dnspython/dns/rdtypes/ANY/SPF.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/SSHFP.py b/third_party/dnspython/dns/rdtypes/ANY/SSHFP.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/SSHFP.py
rename to third_party/dnspython/dns/rdtypes/ANY/SSHFP.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/TXT.py b/third_party/dnspython/dns/rdtypes/ANY/TXT.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/TXT.py
rename to third_party/dnspython/dns/rdtypes/ANY/TXT.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/X25.py b/third_party/dnspython/dns/rdtypes/ANY/X25.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/X25.py
rename to third_party/dnspython/dns/rdtypes/ANY/X25.py
diff --git a/lib/dnspython/dns/rdtypes/ANY/__init__.py b/third_party/dnspython/dns/rdtypes/ANY/__init__.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/ANY/__init__.py
rename to third_party/dnspython/dns/rdtypes/ANY/__init__.py
diff --git a/lib/dnspython/dns/rdtypes/IN/A.py b/third_party/dnspython/dns/rdtypes/IN/A.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/A.py
rename to third_party/dnspython/dns/rdtypes/IN/A.py
diff --git a/lib/dnspython/dns/rdtypes/IN/AAAA.py b/third_party/dnspython/dns/rdtypes/IN/AAAA.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/AAAA.py
rename to third_party/dnspython/dns/rdtypes/IN/AAAA.py
diff --git a/lib/dnspython/dns/rdtypes/IN/APL.py b/third_party/dnspython/dns/rdtypes/IN/APL.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/APL.py
rename to third_party/dnspython/dns/rdtypes/IN/APL.py
diff --git a/lib/dnspython/dns/rdtypes/IN/DHCID.py b/third_party/dnspython/dns/rdtypes/IN/DHCID.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/DHCID.py
rename to third_party/dnspython/dns/rdtypes/IN/DHCID.py
diff --git a/lib/dnspython/dns/rdtypes/IN/IPSECKEY.py b/third_party/dnspython/dns/rdtypes/IN/IPSECKEY.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/IPSECKEY.py
rename to third_party/dnspython/dns/rdtypes/IN/IPSECKEY.py
diff --git a/lib/dnspython/dns/rdtypes/IN/KX.py b/third_party/dnspython/dns/rdtypes/IN/KX.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/KX.py
rename to third_party/dnspython/dns/rdtypes/IN/KX.py
diff --git a/lib/dnspython/dns/rdtypes/IN/NAPTR.py b/third_party/dnspython/dns/rdtypes/IN/NAPTR.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/NAPTR.py
rename to third_party/dnspython/dns/rdtypes/IN/NAPTR.py
diff --git a/lib/dnspython/dns/rdtypes/IN/NSAP.py b/third_party/dnspython/dns/rdtypes/IN/NSAP.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/NSAP.py
rename to third_party/dnspython/dns/rdtypes/IN/NSAP.py
diff --git a/lib/dnspython/dns/rdtypes/IN/NSAP_PTR.py b/third_party/dnspython/dns/rdtypes/IN/NSAP_PTR.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/NSAP_PTR.py
rename to third_party/dnspython/dns/rdtypes/IN/NSAP_PTR.py
diff --git a/lib/dnspython/dns/rdtypes/IN/PX.py b/third_party/dnspython/dns/rdtypes/IN/PX.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/PX.py
rename to third_party/dnspython/dns/rdtypes/IN/PX.py
diff --git a/lib/dnspython/dns/rdtypes/IN/SRV.py b/third_party/dnspython/dns/rdtypes/IN/SRV.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/SRV.py
rename to third_party/dnspython/dns/rdtypes/IN/SRV.py
diff --git a/lib/dnspython/dns/rdtypes/IN/WKS.py b/third_party/dnspython/dns/rdtypes/IN/WKS.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/WKS.py
rename to third_party/dnspython/dns/rdtypes/IN/WKS.py
diff --git a/lib/dnspython/dns/rdtypes/IN/__init__.py b/third_party/dnspython/dns/rdtypes/IN/__init__.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/IN/__init__.py
rename to third_party/dnspython/dns/rdtypes/IN/__init__.py
diff --git a/lib/dnspython/dns/rdtypes/__init__.py b/third_party/dnspython/dns/rdtypes/__init__.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/__init__.py
rename to third_party/dnspython/dns/rdtypes/__init__.py
diff --git a/lib/dnspython/dns/rdtypes/dsbase.py b/third_party/dnspython/dns/rdtypes/dsbase.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/dsbase.py
rename to third_party/dnspython/dns/rdtypes/dsbase.py
diff --git a/lib/dnspython/dns/rdtypes/mxbase.py b/third_party/dnspython/dns/rdtypes/mxbase.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/mxbase.py
rename to third_party/dnspython/dns/rdtypes/mxbase.py
diff --git a/lib/dnspython/dns/rdtypes/nsbase.py b/third_party/dnspython/dns/rdtypes/nsbase.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/nsbase.py
rename to third_party/dnspython/dns/rdtypes/nsbase.py
diff --git a/lib/dnspython/dns/rdtypes/txtbase.py b/third_party/dnspython/dns/rdtypes/txtbase.py
similarity index 100%
rename from lib/dnspython/dns/rdtypes/txtbase.py
rename to third_party/dnspython/dns/rdtypes/txtbase.py
diff --git a/lib/dnspython/dns/renderer.py b/third_party/dnspython/dns/renderer.py
similarity index 100%
rename from lib/dnspython/dns/renderer.py
rename to third_party/dnspython/dns/renderer.py
diff --git a/lib/dnspython/dns/resolver.py b/third_party/dnspython/dns/resolver.py
similarity index 100%
rename from lib/dnspython/dns/resolver.py
rename to third_party/dnspython/dns/resolver.py
diff --git a/lib/dnspython/dns/reversename.py b/third_party/dnspython/dns/reversename.py
similarity index 100%
rename from lib/dnspython/dns/reversename.py
rename to third_party/dnspython/dns/reversename.py
diff --git a/lib/dnspython/dns/rrset.py b/third_party/dnspython/dns/rrset.py
similarity index 100%
rename from lib/dnspython/dns/rrset.py
rename to third_party/dnspython/dns/rrset.py
diff --git a/lib/dnspython/dns/set.py b/third_party/dnspython/dns/set.py
similarity index 100%
rename from lib/dnspython/dns/set.py
rename to third_party/dnspython/dns/set.py
diff --git a/lib/dnspython/dns/tokenizer.py b/third_party/dnspython/dns/tokenizer.py
similarity index 100%
rename from lib/dnspython/dns/tokenizer.py
rename to third_party/dnspython/dns/tokenizer.py
diff --git a/lib/dnspython/dns/tsig.py b/third_party/dnspython/dns/tsig.py
similarity index 100%
rename from lib/dnspython/dns/tsig.py
rename to third_party/dnspython/dns/tsig.py
diff --git a/lib/dnspython/dns/tsigkeyring.py b/third_party/dnspython/dns/tsigkeyring.py
similarity index 100%
rename from lib/dnspython/dns/tsigkeyring.py
rename to third_party/dnspython/dns/tsigkeyring.py
diff --git a/lib/dnspython/dns/ttl.py b/third_party/dnspython/dns/ttl.py
similarity index 100%
rename from lib/dnspython/dns/ttl.py
rename to third_party/dnspython/dns/ttl.py
diff --git a/lib/dnspython/dns/update.py b/third_party/dnspython/dns/update.py
similarity index 100%
rename from lib/dnspython/dns/update.py
rename to third_party/dnspython/dns/update.py
diff --git a/lib/dnspython/dns/version.py b/third_party/dnspython/dns/version.py
similarity index 100%
rename from lib/dnspython/dns/version.py
rename to third_party/dnspython/dns/version.py
diff --git a/lib/dnspython/dns/wiredata.py b/third_party/dnspython/dns/wiredata.py
similarity index 100%
rename from lib/dnspython/dns/wiredata.py
rename to third_party/dnspython/dns/wiredata.py
diff --git a/lib/dnspython/dns/zone.py b/third_party/dnspython/dns/zone.py
similarity index 100%
rename from lib/dnspython/dns/zone.py
rename to third_party/dnspython/dns/zone.py
diff --git a/lib/dnspython/examples/ddns.py b/third_party/dnspython/examples/ddns.py
similarity index 100%
rename from lib/dnspython/examples/ddns.py
rename to third_party/dnspython/examples/ddns.py
diff --git a/lib/dnspython/examples/e164.py b/third_party/dnspython/examples/e164.py
similarity index 100%
rename from lib/dnspython/examples/e164.py
rename to third_party/dnspython/examples/e164.py
diff --git a/lib/dnspython/examples/mx.py b/third_party/dnspython/examples/mx.py
similarity index 100%
rename from lib/dnspython/examples/mx.py
rename to third_party/dnspython/examples/mx.py
diff --git a/lib/dnspython/examples/name.py b/third_party/dnspython/examples/name.py
similarity index 100%
rename from lib/dnspython/examples/name.py
rename to third_party/dnspython/examples/name.py
diff --git a/lib/dnspython/examples/reverse.py b/third_party/dnspython/examples/reverse.py
similarity index 100%
rename from lib/dnspython/examples/reverse.py
rename to third_party/dnspython/examples/reverse.py
diff --git a/lib/dnspython/examples/reverse_name.py b/third_party/dnspython/examples/reverse_name.py
similarity index 100%
rename from lib/dnspython/examples/reverse_name.py
rename to third_party/dnspython/examples/reverse_name.py
diff --git a/lib/dnspython/examples/xfr.py b/third_party/dnspython/examples/xfr.py
similarity index 100%


-- 
Samba Shared Repository


More information about the samba-cvs mailing list