[Samba] Re: CUPS, APW
Jeff Hardy
hardyjm at potsdam.edu
Mon Dec 6 18:30:55 GMT 2004
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 mz at seh.de
> > Software Development
> > SEH Computertechnik GmbH www.seh.de
More information about the samba
mailing list