svn commit: samba r3049 - in branches/SAMBA_3_0/source: lib printing rpc_server smbd

jerry at samba.org jerry at samba.org
Mon Oct 18 19:57:03 GMT 2004


Author: jerry
Date: 2004-10-18 19:57:03 +0000 (Mon, 18 Oct 2004)
New Revision: 3049

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_3_0/source&rev=3049&nolog=1

Log:
fixing some calls in the printing code to stanard_sub_basic(); fix standard_sub_snum() to use the current user's gid;  add some (snum == -1) checks to standard_sub_advanced()
Modified:
   branches/SAMBA_3_0/source/lib/substitute.c
   branches/SAMBA_3_0/source/printing/nt_printing.c
   branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c
   branches/SAMBA_3_0/source/smbd/lanman.c


Changeset:
Modified: branches/SAMBA_3_0/source/lib/substitute.c
===================================================================
--- branches/SAMBA_3_0/source/lib/substitute.c	2004-10-18 17:17:27 UTC (rev 3048)
+++ branches/SAMBA_3_0/source/lib/substitute.c	2004-10-18 19:57:03 UTC (rev 3049)
@@ -446,7 +446,8 @@
 			string_sub(p,"%P", connectpath, l); 
 			break;
 		case 'S': 
-			string_sub(p,"%S", lp_servicename(snum), l); 
+			if ( snum != -1 )
+				string_sub(p,"%S", lp_servicename(snum), l); 
 			break;
 		case 'g': 
 			string_sub(p,"%g", gidtoname(gid), l); 
@@ -463,7 +464,8 @@
 			 * "path =" string in [homes] and so needs the
 			 * service name, not the username.  */
 		case 'p': 
-			string_sub(p,"%p", automount_path(lp_servicename(snum)), l); 
+			if ( snum != -1 )
+				string_sub(p,"%p", automount_path(lp_servicename(snum)), l); 
 			break;
 		case '\0': 
 			p++; 
@@ -797,6 +799,6 @@
 		cached_uid = current_user.uid;
 	}
 
-	standard_sub_advanced(snum, cached_user, "", -1,
+	standard_sub_advanced(snum, cached_user, "", current_user.gid,
 			      smb_user_name, str, len);
 }

Modified: branches/SAMBA_3_0/source/printing/nt_printing.c
===================================================================
--- branches/SAMBA_3_0/source/printing/nt_printing.c	2004-10-18 17:17:27 UTC (rev 3048)
+++ branches/SAMBA_3_0/source/printing/nt_printing.c	2004-10-18 19:57:03 UTC (rev 3049)
@@ -4080,7 +4080,7 @@
 				fstrcpy( servername, print_hnd->servername );
 			else {
 				fstrcpy( servername, "%L" );
-				standard_sub_basic( NULL, servername, sizeof(servername)-1 );
+				standard_sub_basic( "", servername, sizeof(servername)-1 );
 			}
 			
 			/* 

Modified: branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c	2004-10-18 17:17:27 UTC (rev 3048)
+++ branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c	2004-10-18 19:57:03 UTC (rev 3049)
@@ -2766,7 +2766,7 @@
 	uint32 len;
 
 	fstrcpy( temp_name, "\\\\%L" );
-	standard_sub_basic( NULL, temp_name, sizeof(temp_name)-1 );
+	standard_sub_basic( "", temp_name, sizeof(temp_name)-1 );
 
 
 	len = rpcstr_push(temp, temp_name, sizeof(temp)-2, STR_TERMINATE);
@@ -6623,7 +6623,7 @@
 		return WERR_BADFID;
 	}
 
-	if (!print_job_exists(snum, jobid)) {
+	if (!print_job_exists(lp_const_servicename(snum), jobid)) {
 		return WERR_INVALID_PRINTER_NAME;
 	}
 
@@ -8640,7 +8640,7 @@
 	 *  a failure condition
 	 */
 	 
-	if ( !(nt_devmode=print_job_devmode( snum, jobid )) )
+	if ( !(nt_devmode=print_job_devmode( lp_const_servicename(snum), jobid )) )
 		devmode = construct_dev_mode(snum);
 	else {
 		if ((devmode = (DEVICEMODE *)malloc(sizeof(DEVICEMODE))) != NULL) {

Modified: branches/SAMBA_3_0/source/smbd/lanman.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/lanman.c	2004-10-18 17:17:27 UTC (rev 3048)
+++ branches/SAMBA_3_0/source/smbd/lanman.c	2004-10-18 19:57:03 UTC (rev 3049)
@@ -441,7 +441,7 @@
   /* the client expects localtime */
   t -= TimeDiff(t);
 
-  PACKI(desc,"W",pjobid_to_rap(snum,queue->job)); /* uJobId */
+  PACKI(desc,"W",pjobid_to_rap(lp_const_servicename(snum),queue->job)); /* uJobId */
   if (uLevel == 1) {
     PACKS(desc,"B21",queue->fs_user); /* szUserName */
     PACKS(desc,"B","");		/* pad */
@@ -549,7 +549,7 @@
 	PACKS(desc, "z", driver.info_3->monitorname); /* language monitor */
 	
 	fstrcpy(location, "\\\\%L\\print$\\WIN40\\0");
-	standard_sub_basic( NULL, location, sizeof(location)-1 );
+	standard_sub_basic( "", location, sizeof(location)-1 );
 	PACKS(desc,"z", location);                          /* share to retrieve files */
 	
 	PACKS(desc,"z", driver.info_3->defaultdatatype);    /* default data type */
@@ -2122,11 +2122,12 @@
 	char *p = skip_string(str2,1);
 	uint32 jobid;
 	int snum;
+	fstring sharename;
 	int errcode;
 	extern struct current_user current_user;
 	WERROR werr = WERR_OK;
 
-	if(!rap_to_pjobid(SVAL(p,0),&snum,&jobid))
+	if(!rap_to_pjobid(SVAL(p,0), sharename, &jobid))
 		return False;
 
 	/* check it's a supported varient */
@@ -2137,7 +2138,7 @@
 	*rparam = REALLOC(*rparam,*rparam_len);	
 	*rdata_len = 0;
 
-	if (!print_job_exists(snum, jobid)) {
+	if (!print_job_exists(sharename, jobid)) {
 		errcode = NERR_JobNotFound;
 		goto out;
 	}
@@ -2257,11 +2258,12 @@
 	char *p = skip_string(str2,1);
 	uint32 jobid;
 	int snum;
+	fstring sharename;
 	int uLevel = SVAL(p,2);
 	int function = SVAL(p,4);
 	int place, errcode;
 
-	if(!rap_to_pjobid(SVAL(p,0),&snum,&jobid))
+	if(!rap_to_pjobid(SVAL(p,0), sharename, &jobid))
 		return False;
 	*rparam_len = 4;
 	*rparam = REALLOC(*rparam,*rparam_len);
@@ -2273,7 +2275,7 @@
 	    (!check_printjob_info(&desc,uLevel,str2)))
 		return(False);
 
-	if (!print_job_exists(snum, jobid)) {
+	if (!print_job_exists(sharename, jobid)) {
 		errcode=NERR_JobNotFound;
 		goto out;
 	}
@@ -2939,6 +2941,7 @@
   int count;
   int i;
   int snum;
+  fstring sharename;
   uint32 jobid;
   struct pack_desc desc;
   print_queue_struct *queue=NULL;
@@ -2956,7 +2959,7 @@
   if (strcmp(str1,"WWrLh") != 0) return False;
   if (!check_printjob_info(&desc,uLevel,str2)) return False;
 
-  if(!rap_to_pjobid(SVAL(p,0),&snum,&jobid))
+  if(!rap_to_pjobid(SVAL(p,0), sharename, &jobid))
     return False;
 
   if (snum < 0 || !VALID_SNUM(snum)) return(False);



More information about the samba-cvs mailing list