NAME
p910nd - port 9100+n printer daemon
SYNOPSIS
p910nd [-f device] [-i bindaddr] [-bv] [0|1|2]
DESCRIPTION
p910nd is a small daemon that copies any data received on the port it
is listening on to the corresponding printer port. It is primarily
intended for diskless Linux hosts running as printer drivers but there
is no reason why it could not be used on diskful hosts. Port 9100 is
copied to /dev/lp0, 9101 to /dev/lp1 and 9102 to /dev/lp2. The default
is port 9100 to /dev/lp0.
The -f option can be used to specify a different printer device, e.g.
/dev/usblp0.
The -i option can be used to specify binding to one address instead of
all interfaces which is the default.
The -b option turns on bidirectional copying.
The -v option shows the version number.
INSTALLATION
p910nd can be run as a standalone daemon or from (x)inetd. It will
automatically detect if it is running under (x)inetd.
A sample SysVinit script, p910nd.sh, is provided for operation as a
daemon. p910nd will change its name under ps to match the printer
port, i.e. p9100d, p9101d and p9102d.
When running under (x)inetd, the /etc/inetd.conf entry should look
something like this (with tcpwrappers protection):
p9101 stream tcp nowait root /usr/sbin/tcpd /sbin/p910nd
Don’t forget to add an entry in /etc/services for the corresponding
port.
If operating with lprng, use the host%port syntax for the printer
device to send jobs to it.
If operating with CUPS, this is supported as the AppSocket protocol,
also known as the JetDirect (probably TM) protocol.
If operating with classic Berkeley lpd, a sample client, client.pl, is
provided. This should be installed as the ifilter (if=) in
/etc/printcap. banner.pl should be installed as the ofilter (of=) in
/etc/printcap. It may be necessary to create a dummy spool file for
lpd (lp=). This file will be opened but not written to. The
corresponding C versions are left as an exercise for the reader.
When running under inetd, more than one instance could be started. To
avoid problems with multiple instances attempting to access the printer
at the same time, make sure that only one client is active at any one
time. This can be done by designating one host as the spooler and
sending all jobs to this host. You will probably need to set up an
intermediate queue anyway to provide print job filtering.
If compiled with USE_LIBWRAP and linked with -lwrap, it uses the
libwrap library (tcpwrappers). Access control can be done with
/etc/hosts.allow and /etc/hosts.deny. The service name is p910nd.
DIAGNOSTICS
p910nd logs error messages to syslog.
SEE ALSO
printcap(5), hosts_access(5)
FILES
/var/run/p9100d.pid, /var/lock/p910nd/p9100d, /etc/hosts.allow,
/etc/hosts.deny
COPYRIGHT
p910nd is under the GNU Public License Version 2
AUTHOR
Ken Yap (greenpossum ATSIGN users PERIOD sourceforge PERIOD net)
DATE
Version 0.93 October 2008
1 January 2008