Author: vlendec
Date: 2006-06-16 21:55:47 +0000 (Fri, 16 Jun 2006)
New Revision: 16303

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

Log:
Remove sub_snum. Same argument as sub_conn.

With this, none of the substitute routines themselves reference
current_user[_info] anymore.

Volker


Modified:
   trunk/source/lib/substitute.c
   trunk/source/printing/print_generic.c
   trunk/source/printing/printing.c


Changeset:
Modified: trunk/source/lib/substitute.c
===================================================================
--- trunk/source/lib/substitute.c       2006-06-16 21:23:13 UTC (rev 16302)
+++ trunk/source/lib/substitute.c       2006-06-16 21:55:47 UTC (rev 16303)
@@ -745,30 +745,3 @@
                SAFE_FREE( s );
        }
 }
-
-/****************************************************************************
- Like standard_sub but by snum.
-****************************************************************************/
-
-void standard_sub_snum(int snum, char *str, size_t len)
-{
-       static uid_t cached_uid = -1;
-       static fstring cached_user;
-       char *s;
-       
-       /* calling uidtoname() on every substitute would be too expensive, so
-          we cache the result here as nearly every call is for the same uid */
-
-       if (cached_uid != current_user.ut.uid) {
-               fstrcpy(cached_user, uidtoname(current_user.ut.uid));
-               cached_uid = current_user.ut.uid;
-       }
-
-       s = alloc_sub_advanced(snum, cached_user, "", current_user.ut.gid,
-                              smb_user_name, current_user_info.domain, str);
-
-       if ( s ) {
-               strncpy( str, s, len );
-               SAFE_FREE( s );
-       }
-}

Modified: trunk/source/printing/print_generic.c
===================================================================
--- trunk/source/printing/print_generic.c       2006-06-16 21:23:13 UTC (rev 
16302)
+++ trunk/source/printing/print_generic.c       2006-06-16 21:55:47 UTC (rev 
16303)
@@ -30,7 +30,9 @@
 static int print_run_command(int snum, const char* printername, BOOL do_sub,
                             const char *command, int *outfd, ...)
 {
-
+       extern struct current_user current_user;
+       extern userdom_struct current_user_info;
+       
        pstring syscmd;
        char *arg;
        int ret;
@@ -56,7 +58,11 @@
        pstring_sub( syscmd, "%p", printername );
 
        if ( do_sub && snum != -1 )
-               standard_sub_snum(snum,syscmd,sizeof(syscmd));
+               standard_sub_advanced(snum, current_user_info.unix_name, "",
+                                     current_user.ut.gid,
+                                     get_current_username(),
+                                     current_user_info.domain,
+                                     syscmd, sizeof(syscmd));
                
        ret = smbrun(syscmd,outfd);
 

Modified: trunk/source/printing/printing.c
===================================================================
--- trunk/source/printing/printing.c    2006-06-16 21:23:13 UTC (rev 16302)
+++ trunk/source/printing/printing.c    2006-06-16 21:55:47 UTC (rev 16303)
@@ -1439,6 +1439,8 @@
 
 static void print_queue_update(int snum, BOOL force)
 {
+       extern struct current_user current_user;
+       extern userdom_struct current_user_info;
        fstring key;
        fstring sharename;
        pstring lpqcommand, lprmcommand;
@@ -1456,12 +1458,20 @@
        pstrcpy( lpqcommand, lp_lpqcommand(snum));
        string_sub2( lpqcommand, "%p", PRINTERNAME(snum), sizeof(lpqcommand), 
                     False, False, False );
-       standard_sub_snum( snum, lpqcommand, sizeof(lpqcommand) );
+       standard_sub_advanced(snum, current_user_info.unix_name, "",
+                             current_user.ut.gid,
+                             get_current_username(),
+                             current_user_info.domain,
+                             lpqcommand, sizeof(lpqcommand) );
        
        pstrcpy( lprmcommand, lp_lprmcommand(snum));
        string_sub2( lprmcommand, "%p", PRINTERNAME(snum), sizeof(lprmcommand), 
                     False, False, False );
-       standard_sub_snum( snum, lprmcommand, sizeof(lprmcommand) );
+       standard_sub_advanced(snum, current_user_info.unix_name, "",
+                             current_user.ut.gid,
+                             get_current_username(),
+                             current_user_info.domain,
+                             lprmcommand, sizeof(lprmcommand) );
        
        /* 
         * Make sure that the background queue process exists.  

Reply via email to