The branch, master has been updated
       via  0d99175 join.py: Only replicate DNS zones if the source DC had DNS 
zones
       via  f453117 s3-printing: Restrict printing=cups to systems with cups 
development headers at build time
      from  e00ac55 Free protect_ids in secret_store_domain_sid() as the caller 
of fetch_secrets() must free the result in order to not leak memory. 
Signed-off-by: Jeremy Allison <j...@samba.org>

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


- Log -----------------------------------------------------------------
commit 0d99175f2afb4badd61ba903f3752a0207b049a3
Author: Andrew Bartlett <abart...@samba.org>
Date:   Thu Sep 6 10:37:18 2012 +1000

    join.py: Only replicate DNS zones if the source DC had DNS zones
    
    This avoid folks needing to specify --dns-backend=NONE
    
    Andrew Bartlett
    
    Autobuild-User(master): Andrew Bartlett <abart...@samba.org>
    Autobuild-Date(master): Thu Sep  6 04:48:55 CEST 2012 on sn-devel-104

commit f453117569e04087ae461677717b14cdd65a4cd4
Author: Andrew Bartlett <abart...@samba.org>
Date:   Wed Sep 5 15:03:31 2012 +1000

    s3-printing: Restrict printing=cups to systems with cups development 
headers at build time
    
    This means that instead of failing due to the default commandline values 
not being quite correct
    that we clearly fail at loadparm and testparm time when parsing the 
printing= line.
    
    Andrew Bartlett

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

Summary of changes:
 docs-xml/smbdotconf/printing/printing.xml |    6 +++++-
 lib/param/param_table.c                   |    4 ++++
 source3/param/loadparm.c                  |   14 --------------
 source3/utils/testparm.c                  |    2 --
 source4/scripting/python/samba/join.py    |   25 ++++++++++++++++++-------
 5 files changed, 27 insertions(+), 24 deletions(-)


Changeset truncated at 500 lines:

diff --git a/docs-xml/smbdotconf/printing/printing.xml 
b/docs-xml/smbdotconf/printing/printing.xml
index c365594..eb5925f 100644
--- a/docs-xml/smbdotconf/printing/printing.xml
+++ b/docs-xml/smbdotconf/printing/printing.xml
@@ -18,7 +18,11 @@
     <constant>LPRNG</constant>, <constant>PLP</constant>,
     <constant>SYSV</constant>, <constant>HPUX</constant>,
     <constant>QNX</constant>, <constant>SOFTQ</constant>,
-    and <constant>CUPS</constant>.</para>
+    <constant>CUPS</constant> and <constant>IPRINT</constant>.</para>
+
+    <para>Be aware that CUPS and IPRINT are only available if the CUPS
+    development library was available at the time Samba was compiled
+    or packaged.</para>
 
     <para>To see what the defaults are for the other print 
     commands when using the various options use the 
<citerefentry><refentrytitle>testparm</refentrytitle>
diff --git a/lib/param/param_table.c b/lib/param/param_table.c
index 4126d89..2aa392a 100644
--- a/lib/param/param_table.c
+++ b/lib/param/param_table.c
@@ -186,8 +186,12 @@ static const struct enum_list enum_printing[] = {
        {PRINT_QNX, "qnx"},
        {PRINT_PLP, "plp"},
        {PRINT_LPRNG, "lprng"},
+#ifdef HAVE_CUPS
        {PRINT_CUPS, "cups"},
+#endif
+#ifdef HAVE_IPRINT
        {PRINT_IPRINT, "iprint"},
+#endif
        {PRINT_LPRNT, "nt"},
        {PRINT_LPROS2, "os2"},
 #if defined(DEVELOPER) || defined(ENABLE_SELFTEST)
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 1e41825..2c77691 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -408,7 +408,6 @@ static void init_printer_values(struct loadparm_service 
*pService)
 
                case PRINT_CUPS:
                case PRINT_IPRINT:
-#ifdef HAVE_CUPS
                        /* set the lpq command to contain the destination 
printer
                           name only.  This is used by cups_queue_get() */
                        string_set(&pService->szLpqcommand, "%p");
@@ -418,15 +417,6 @@ static void init_printer_values(struct loadparm_service 
*pService)
                        string_set(&pService->szLpresumecommand, "");
                        string_set(&pService->szQueuepausecommand, "");
                        string_set(&pService->szQueueresumecommand, "");
-#else
-                       string_set(&pService->szLpqcommand, "lpq -P'%p'");
-                       string_set(&pService->szLprmcommand, "lprm -P'%p' %j");
-                       string_set(&pService->szPrintcommand, "lpr -P'%p' %s; 
rm %s");
-                       string_set(&pService->szLppausecommand, "lp -i '%p-%j' 
-H hold");
-                       string_set(&pService->szLpresumecommand, "lp -i '%p-%j' 
-H resume");
-                       string_set(&pService->szQueuepausecommand, "disable 
'%p'");
-                       string_set(&pService->szQueueresumecommand, "enable 
'%p'");
-#endif /* HAVE_CUPS */
                        break;
 
                case PRINT_SYSV:
@@ -5284,11 +5274,7 @@ const char *lp_printcapname(void)
                return Globals.szPrintcapname;
 
        if (sDefault.iPrinting == PRINT_CUPS) {
-#ifdef HAVE_CUPS
                return "cups";
-#else
-               return "lpstat";
-#endif
        }
 
        if (sDefault.iPrinting == PRINT_BSD)
diff --git a/source3/utils/testparm.c b/source3/utils/testparm.c
index 105f1c5..a9793ab 100644
--- a/source3/utils/testparm.c
+++ b/source3/utils/testparm.c
@@ -333,13 +333,11 @@ static void do_per_share_checks(int s)
                        "%s. Map system can only work if force create mode "
                        "excludes octal 010 (S_IXGRP).\n", 
lp_servicename(talloc_tos(), s));
        }
-#ifdef HAVE_CUPS
        if (lp_printing(s) == PRINT_CUPS && *(lp_printcommand(talloc_tos(), s)) 
!= '\0') {
                 fprintf(stderr,"Warning: Service %s defines a print command, 
but \
 rameter is ignored when using CUPS libraries.\n",
                           lp_servicename(talloc_tos(), s) );
        }
-#endif
 }
 
  int main(int argc, const char *argv[])
diff --git a/source4/scripting/python/samba/join.py 
b/source4/scripting/python/samba/join.py
index 41d97cb..ac822fb 100644
--- a/source4/scripting/python/samba/join.py
+++ b/source4/scripting/python/samba/join.py
@@ -56,10 +56,6 @@ class dc_join(object):
         ctx.netbios_name = netbios_name
         ctx.targetdir = targetdir
         ctx.use_ntvfs = use_ntvfs
-        if dns_backend is None:
-            ctx.dns_backend = "NONE"
-        else:
-            ctx.dns_backend = dns_backend
 
         ctx.promote_existing = promote_existing
         ctx.promote_from_dn = None
@@ -118,6 +114,21 @@ class dc_join(object):
 
         ctx.dnsdomain = ctx.samdb.domain_dns_name()
         ctx.dnsforest = ctx.samdb.forest_dns_name()
+        ctx.domaindns_zone = 'DC=DomainDnsZones,%s' % ctx.base_dn
+
+        res_domaindns = ctx.samdb.search(scope=ldb.SCOPE_ONELEVEL,
+                                         attrs=[],
+                                         base=ctx.samdb.get_partitions_dn(),
+                                         
expression="(&(objectClass=crossRef)(ncName=%s))" % ctx.domaindns_zone)
+        if dns_backend is None:
+            ctx.dns_backend = "NONE"
+        else:
+            if len(res_domaindns) == 0:
+                ctx.dns_backend = "NONE"
+                print "NO DNS zone information found in source domain, not 
replicating DNS"
+            else:
+                ctx.dns_backend = dns_backend
+
         ctx.dnshostname = "%s.%s" % (ctx.myname, ctx.dnsdomain)
 
         ctx.realm = ctx.dnsdomain
@@ -735,8 +746,8 @@ class dc_join(object):
                                destination_dsa_guid, rodc=ctx.RODC,
                                replica_flags=ctx.domain_replica_flags)
 
-            if 'DC=DomainDnsZones,%s' % ctx.base_dn in ctx.nc_list:
-                repl.replicate('DC=DomainDnsZones,%s' % ctx.base_dn, 
source_dsa_invocation_id,
+            if ctx.domaindns_zone in ctx.nc_list:
+                repl.replicate(ctx.domaindns_zone, source_dsa_invocation_id,
                                destination_dsa_guid, rodc=ctx.RODC,
                                replica_flags=ctx.replica_flags)
 
@@ -966,7 +977,7 @@ class dc_join(object):
         if not ctx.subdomain:
             ctx.nc_list += [ctx.base_dn]
             if ctx.dns_backend != "NONE":
-                ctx.nc_list += ['DC=DomainDnsZones,%s' % ctx.base_dn]
+                ctx.nc_list += [ctx.domaindns_zone]
 
         if ctx.dns_backend != "NONE":
             ctx.full_nc_list += ['DC=DomainDnsZones,%s' % ctx.base_dn]


-- 
Samba Shared Repository

Reply via email to