svn commit: samba r4985 - in trunk/source/printing: .

jerry at samba.org jerry at samba.org
Tue Jan 25 15:00:54 GMT 2005


Author: jerry
Date: 2005-01-25 15:00:54 +0000 (Tue, 25 Jan 2005)
New Revision: 4985

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=4985

Log:
merging printing changes from 3.0
Modified:
   trunk/source/printing/nt_printing.c
   trunk/source/printing/print_cups.c


Changeset:
Modified: trunk/source/printing/nt_printing.c
===================================================================
--- trunk/source/printing/nt_printing.c	2005-01-25 14:32:37 UTC (rev 4984)
+++ trunk/source/printing/nt_printing.c	2005-01-25 15:00:54 UTC (rev 4985)
@@ -4806,7 +4806,8 @@
 
 static SEC_DESC_BUF *construct_default_printer_sdb(TALLOC_CTX *ctx)
 {
-	SEC_ACE ace[3];
+	SEC_ACE ace[5];	/* max number of ace entries */
+	int i = 0;
 	SEC_ACCESS sa;
 	SEC_ACL *psa = NULL;
 	SEC_DESC_BUF *sdb = NULL;
@@ -4817,7 +4818,7 @@
 	/* Create an ACE where Everyone is allowed to print */
 
 	init_sec_access(&sa, PRINTER_ACE_PRINT);
-	init_sec_ace(&ace[0], &global_sid_World, SEC_ACE_TYPE_ACCESS_ALLOWED,
+	init_sec_ace(&ace[i++], &global_sid_World, SEC_ACE_TYPE_ACCESS_ALLOWED,
 		     sa, SEC_ACE_FLAG_CONTAINER_INHERIT);
 
 	/* Make the security descriptor owned by the Administrators group
@@ -4836,20 +4837,38 @@
 	}
 
 	init_sec_access(&sa, PRINTER_ACE_FULL_CONTROL);
-	init_sec_ace(&ace[1], &owner_sid, SEC_ACE_TYPE_ACCESS_ALLOWED,
+	init_sec_ace(&ace[i++], &owner_sid, SEC_ACE_TYPE_ACCESS_ALLOWED,
 		     sa, SEC_ACE_FLAG_OBJECT_INHERIT |
 		     SEC_ACE_FLAG_INHERIT_ONLY);
 
 	init_sec_access(&sa, PRINTER_ACE_FULL_CONTROL);
-	init_sec_ace(&ace[2], &owner_sid, SEC_ACE_TYPE_ACCESS_ALLOWED,
+	init_sec_ace(&ace[i++], &owner_sid, SEC_ACE_TYPE_ACCESS_ALLOWED,
 		     sa, SEC_ACE_FLAG_CONTAINER_INHERIT);
 
+	/* Add the domain admins group if we are a DC */
+	
+	if ( IS_DC ) {
+		DOM_SID domadmins_sid;
+		
+		sid_copy(&domadmins_sid, get_global_sam_sid());
+		sid_append_rid(&domadmins_sid, DOMAIN_GROUP_RID_ADMINS);
+		
+		init_sec_access(&sa, PRINTER_ACE_FULL_CONTROL);
+		init_sec_ace(&ace[i++], &domadmins_sid, SEC_ACE_TYPE_ACCESS_ALLOWED,
+			     sa, SEC_ACE_FLAG_OBJECT_INHERIT |
+			     SEC_ACE_FLAG_INHERIT_ONLY);
+
+		init_sec_access(&sa, PRINTER_ACE_FULL_CONTROL);
+		init_sec_ace(&ace[i++], &domadmins_sid, SEC_ACE_TYPE_ACCESS_ALLOWED,
+			     sa, SEC_ACE_FLAG_CONTAINER_INHERIT);
+	}
+		     
 	/* The ACL revision number in rpc_secdesc.h differs from the one
 	   created by NT when setting ACE entries in printer
 	   descriptors.  NT4 complains about the property being edited by a
 	   NT5 machine. */
 
-	if ((psa = make_sec_acl(ctx, NT4_ACL_REVISION, 3, ace)) != NULL) {
+	if ((psa = make_sec_acl(ctx, NT4_ACL_REVISION, i, ace)) != NULL) {
 		psd = make_sec_desc(ctx, SEC_DESC_REVISION, SEC_DESC_SELF_RELATIVE,
 				    &owner_sid, NULL,
 				    NULL, psa, &sd_size);

Modified: trunk/source/printing/print_cups.c
===================================================================
--- trunk/source/printing/print_cups.c	2005-01-25 14:32:37 UTC (rev 4984)
+++ trunk/source/printing/print_cups.c	2005-01-25 15:00:54 UTC (rev 4985)
@@ -664,7 +664,6 @@
 		httpClose(http);
 
 	return ret;
-	return (ret);
 }
 
 /*



More information about the samba-cvs mailing list