diff options
author | Richard Sharpe <sharpe@samba.org> | 2002-09-24 06:44:37 +0000 |
---|---|---|
committer | Richard Sharpe <sharpe@samba.org> | 2002-09-24 06:44:37 +0000 |
commit | 05c557c31ceaacdfcf911145b9479285e5e08a83 (patch) | |
tree | fad5cc71f0e89519e15ecc4f679bad4c34fe7df7 /examples/printing/smbprint | |
parent | 0f72389a85699fc0b96f3a6b5f1ad5df41620eda (diff) | |
download | samba-05c557c31ceaacdfcf911145b9479285e5e08a83.tar.gz samba-05c557c31ceaacdfcf911145b9479285e5e08a83.tar.bz2 samba-05c557c31ceaacdfcf911145b9479285e5e08a83.zip |
Make sure that Alfred Perlstein's changes get into head as smbprint and
that the old one becomes smbprint.old.
We still need to hack smbprint some more to make sure that we can pass
the username and password in a file rather than on the command line where
local hackers can see it.
(This used to be commit ef970a764eb97893ff2090f7cbf2f2ec06911d0f)
Diffstat (limited to 'examples/printing/smbprint')
-rwxr-xr-x | examples/printing/smbprint | 104 |
1 files changed, 77 insertions, 27 deletions
diff --git a/examples/printing/smbprint b/examples/printing/smbprint index 5a00a2a8aa..68bd66a13f 100755 --- a/examples/printing/smbprint +++ b/examples/printing/smbprint @@ -25,6 +25,11 @@ # # -t now causes translate to be used when sending files # +# Further modifications by Alfred Perlstein to fix some problems and +# improve the quality of the code (3-Dec-2001). +# +# More hacking by Richard Sharpe to improve portability. 9-Dec-2001. +# # In order for this to work the /etc/printcap entry must include an # accounting file (af=...): # @@ -46,12 +51,10 @@ # service=CJET_371 # password="" -# -# Debugging log file, change to /dev/null if you like. -# -logfile=/tmp/smb-print.log -# logfile=/dev/null +#smbclient=/usr/pkg/bin/smbclient +# Assume that smbclient will be in the same place as smbprint +smbclient="`dirname $0`/smbclient" # # The last parameter to the filter is the accounting file name. @@ -67,29 +70,76 @@ config_file=$spool_dir/.config # server # service # password -eval `cat $config_file` +# username (optional) +# IP (optional) +# debug (optional) +# debugsmb (optional) +# debugfile (optional) +. $config_file + +if [ "x$password" = "x" ] ; then + password="-N" +fi -while getopts t c; do - case $c in - t) - TRANS=1 - ;; +if [ "x$username" == "x" ] ; then + username="$server"; +fi - '?') # Bad parameters, ignore it ... - ;; - esac +while test $# -gt 0; do + case "$1" in + -t) + TRANS=1 + ;; + + *) # Bad Parameters, ignore them ... + ;; + esac + shift done + +command="print - ;" +if [ $TRANS -eq 1 ]; then + command="translate;$command"; +fi + +debugfile="/tmp/smb-print.log" +if [ "x$debug" = "x" ] ; then + debugfile=/dev/null debugargs= +else + if [ $debug -eq 0 ] ; then + debugfile=/dev/null debugargs= + else + set -x; exec >>$debugfile 2>&1 + debugargs="$debugfile." + #[ "x$debugsmb" == "x" ] || debugargs="$debugargs -d $debugsmb" + fi +fi + +if [ "x$smbconf" != "x" ]; then + + smbconf="-s $smbconf" + +fi + +if [ "x$IP" != "x" ]; then + + IP="-I $IP" + +fi + +if [ "x$debugargs" != "x" ]; then + + debugargs="-l $debugargs" + +fi + +$smbclient \ + "\\\\$server\\$service" \ + $password \ + $smbconf \ + $IP \ + $debugargs \ + -U $username \ + -P \ + -c "$command" # -# Some debugging help, change the >> to > if you want to same space. -# -echo "server $server, service $service" >> $logfile - -( -# NOTE You may wish to add the line `echo translate' if you want automatic -# CR/LF translation when printing. - if [ $TRANS -eq 1 ]; then - echo translate - fi - echo "print -" - cat -) | /usr/local/samba/bin/smbclient "\\\\$server\\$service" $password -U $server -N -P >> $logfile |