One final question... the deleteprinter command is correctly deleting the underlying CUPS queue and Samba is receiving a SIGHUP. But, the printer still shows in Samba until I restart the daemon. Bug?
On Mon, 2004-12-06 at 11:26, Jeff Hardy wrote: > Haha. It was that pesky newline. See below. > > Everything works perfectly now. Thanks very much. > > -Jeff > > > On Mon, 2004-12-06 at 11:14, Martin Zielinski wrote: > > Hello, > > you shouldn't need to restart samba. > > > > I'm using a C-programm as addprinter command, and do not need to restart > > samba. > > Samba does it by it's own, if it receives one or more lines of text from > > the > > script. > > You allways get these access denied errors, when no line is printed. > > I know nearly nothing about perl, but (just as an idea) the script output > > needs a newline at its end. I don't know, if perl does this automaticly. > > > > In doubt, take a look at a level 10 debug. You should see the output of > > your > > script. > > > > Bye, > > > > Martin > > > > On Monday 06 December 2004 16:29, Jeff Hardy wrote: > > > > | I am left with two problems... the Access Denied error, > > > > | and the requirement for an external daemon to restart > > > > | Samba to complete the process. It works, but I seem to > > > > | be missing something. > > > > > > > > A simple kill -HUP <pid> is enough. You shouldn't restart > > > > smbd. > > > > > > Thanks again. I had previously done this but switched to a restart for > > > some reason. > > > > > > Here is a stripped down version of my Perl addprinter script, for what > > > it is worth. When I looked into this before, I didn't find many > > > examples so maybe it is of some use. Trying to nail that Access Denied > > > problem... if you could, can you please tell me if you see anything > > > wrong or missing? > > > > > > Thanks again for all your help. > > > > > > > > > > > > #!/usr/bin/perl > > > # > > > # param 1 : printer name > > > # param 2 : share name -> become the printer name for CUPS > > > # param 3 : port name > > > # param 4 : driver name > > > # param 5 : location -> the device uri of the printer, probably IP > > > addy > > > # param 6 : win9x location > > > > > > require '/usr/local/bin/smbapwlib.pl'; #some useful functions > > > > > > #take in args > > > $lpname=shift; > > > $shname=shift; > > > $portname=shift; > > > $drivername=shift; > > > $location=shift; > > > $win9x=shift; > > > > > > #if queue exists, don't do anything > > > #this is because addprinter command is run each time printer modified > > > if (!(&checkqueue($shname))){ > > > > > > $shname = uc($shname); > > > > > > #check for location syntax > > > #if no protocol specified... > > > if ($location !~ m#:/#){ > > > #assume an lpd printer > > > $location = "lpd://".$location; > > > } > > > > > > #run the cups lpadmin command to add the printer > > > system("/usr/sbin/lpadmin -p $shname -D \"$drivername\" -E -v > > > $location"); > > > > > > sleep 1; > > > > > > #print sharename to make the port look nice > > > #also supposed to cause samba to reload its config > > > print ("$shname"); > > # Change this to: > > print ("$shname\n"); > > > > > > > > #reload samba manually > > > system("/usr/bin/killall","-HUP","smbd"); > > > > > > sleep 2; > > > } > > > > -- > > Martin Zielinski [EMAIL PROTECTED] > > Software Development > > SEH Computertechnik GmbH www.seh.de -- To unsubscribe from this list go to the following URL and read the instructions: http://lists.samba.org/mailman/listinfo/samba