LPD: some documentation

dronnikov at gmail.com dronnikov at gmail.com
Sun Mar 23 16:49:59 UTC 2008


Hello!

A typical usage of BB lpd looks as follows:
# tcpsvd -E 0 515 lpd SPOOLDIR [HELPER-PROG [ARGS...]]

This means a network listener is started on port 515 (default for LP protocol). 
When a client connection is made (via lpr) lpd first change its working directory to SPOOLDIR.

SPOOLDIR is the spool directory which contains printing queues 
and should have the following structure:

SPOOLDIR/
	<queue1>
	...
	<queueN>

<queueX> can be of two types:
	A. a printer character device or an ordinary file a link to such;
	B. a directory.

In case A lpd just dumps the data it receives from client (lpr) to the 
end of queue file/device. This is non-spooling mode.

In case B lpd enters spooling mode. It reliably saves client data along with control info 
in two unique files under the queue directory. These files are named dfAXXXHHHH and cfAXXXHHHH, 
where XXX is the job number and HHHH is the client hostname. Unless a printing helper application 
is specified lpd is done at this point.

If HELPER-PROG (with optional arguments) is specified then lpd continues to process client data:
	1. it reads and parses control file (cfA...). The parse process results in setting environment 
	variables whose values were passed in control file; when parsing is complete, lpd deletes 
	control file.
	2. it spawns specified helper application. It is then the helper application who is responsible 
	for both actual printing and deleting processed data file.

A good lpr passes control files which when parsed provide the following variables:
$H = host which issues the job
$P = user who prints
$C = class of printing (what is printed on banner page)
$J = the name of the job
$L = print banner page
$M = the user to whom a mail should be sent if a problem occurs
$l = name of datafile ("dfAxxx") - file whose content are to be printed

Thus, a typical helper can be something like this:
#!/bin/sh
cat "$l" >/dev/lp0
mv -f "$l" save/

Walter, please confirm it is working.
Denys, please consider applying.

Regards,
--
Vladimir
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lpd.patch
Type: application/octet-stream
Size: 4678 bytes
Desc: not available
Url : http://lists.busybox.net/pipermail/busybox/attachments/20080323/c3167f83/attachment-0002.obj 


More information about the busybox mailing list