As per Relevance of the word acknowledge, we have this rfc below:











Network Printing Working Group L. McLaughlin III,
Request for Comments: 1179 The Wollongong
August 1990


Line Printer Daemon

Status of this

This RFC describes an existing print server protocol widely used
the Internet for communicating between line printer daemons (
clients and servers). This memo is for informational purposes only
and does not specify an Internet standard. Please refer to
current edition of the "IAB Official Protocol Standards" for
standardization state and status of this protocol. Distribution
this memo is unlimited

1.

The Berkeley versions of the Unix(tm) operating system provide
printer spooling with a collection of programs: lpr (assign
queue), lpq (display the queue), lprm (remove from queue), and
(control the queue). These programs interact with an
process called the line printer daemon. This RFC describes
protocols with which a line printer daemon client may
printing

This memo is based almost entirely on the work of Robert Knight
Princeton University. I gratefully acknowledge his efforts
deciphering the UNIX lpr protocol and producing earlier versions
this document

2. Model of Printing

A group of hosts request services from a line printer daemon
running on a host. The services provided by the process are
to printing jobs. A printing job produces output from one file
Each job will have a unique job number which is between 0 and 999,
inclusive. The jobs are requested by users which have names.
user names may not start with a digit

3. Specification of the

The specification includes file formats for the control and
files as well as messages used by the protocol






McLaughlin [Page 1]

RFC 1179 LPR August 1990


3.1 Message

LPR is a a TCP-based protocol. The port on which a line
daemon listens is 515. The source port must be in the range 721
731, inclusive. A line printer daemon responds to commands send
its port. All commands begin with a single octet code, which is
binary number which represents the requested function. The code
immediately followed by the ASCII name of the printer queue name
which the function is to be performed. If there are other
to the command, they are separated from the printer queue name
white space (ASCII space, horizontal tab, vertical tab, and
feed). The end of the command is indicated with an ASCII line
character

4. Diagram

The diagrams in the rest of this RFC use these conventions.
diagrams show the format of an octet stream sent to the server.
outermost box represents this stream. Each box within the
one shows one portion of the stream. If the contents of the box
two decimal digits, this indicates that the binary 8 bit value is
be used. If the contents is two uppercase letters, this
that the corresponding ASCII control character is to be used.
exception to this is that the character SP can be interpreted
white space. (See the preceding section for a definition.) If
contents is a single letter, the ASCII code for this letter must
sent. Otherwise, the contents are intended to be mnemonic of
contents of the field which is a sequence of octets

5. Daemon

The verbs in the command names should be interpreted as
made to the daemon. Thus, the command "Print any waiting jobs" is
imperative to the line printer daemon to which it is sent. A
connection must be made for each command to be given to the daemon

5.1 01 - Print any waiting

+----+-------+----+
| 01 | Queue | LF |
+----+-------+----+
Command code - 1
Operand - Printer queue

This command starts the printing process if it not already running






McLaughlin [Page 2]

RFC 1179 LPR August 1990


5.2 02 - Receive a printer

+----+-------+----+
| 02 | Queue | LF |
+----+-------+----+
Command code - 2
Operand - Printer queue

Receiving a job is controlled by a second level of commands.
daemon is given commands by sending them over the same connection
The commands are described in the next section (6).

After this command is sent, the client must read an
octet from the daemon. A positive acknowledgement is an octet
zero bits. A negative acknowledgement is an octet of any
pattern

5.3 03 - Send queue state (short

+----+-------+----+------+----+
| 03 | Queue | SP | List | LF |
+----+-------+----+------+----+
Command code - 3
Operand 1 - Printer queue
Other operands - User names or job

If the user names or job numbers or both are supplied then only
jobs for those users or with those numbers will be sent

The response is an ASCII stream which describes the printer queue
The stream continues until the connection closes. Ends of lines
indicated with ASCII LF control characters. The lines may
contain ASCII HT control characters

5.4 04 - Send queue state (long

+----+-------+----+------+----+
| 04 | Queue | SP | List | LF |
+----+-------+----+------+----+
Command code - 4
Operand 1 - Printer queue
Other operands - User names or job

If the user names or job numbers or both are supplied then only
jobs for those users or with those numbers will be sent

The response is an ASCII stream which describes the printer queue
The stream continues until the connection closes. Ends of lines



McLaughlin [Page 3]

RFC 1179 LPR August 1990


indicated with ASCII LF control characters. The lines may
contain ASCII HT control characters

5.5 05 - Remove

+----+-------+----+-------+----+------+----+
| 05 | Queue | SP | Agent | SP | List | LF |
+----+-------+----+-------+----+------+----+
Command code - 5
Operand 1 - Printer queue
Operand 2 - User name making request (the agent
Other operands - User names or job

This command deletes the print jobs from the specified queue
are listed as the other operands. If only the agent is given,
command is to delete the currently active job. Unless the agent
"root", it is not possible to delete a job which is not owned by
user. This is also the case for specifying user names instead
numbers. That is, agent "root" can delete jobs by user name but
other agents can

6. Receive job

These commands are processed when the line printer daemon
been given the receive job command. The daemon will continue
process commands until the connection is closed

After a subcommand is sent, the client must wait for
acknowledgement from the daemon. A positive acknowledgement is
octet of zero bits. A negative acknowledgement is an octet of
other pattern

LPR clients SHOULD be able to sent the receive data file and
control file subcommands in either order. LPR servers MUST be
to receive the control file subcommand first and SHOULD be able
receive the data file subcommand first

6.1 01 - Abort

Command code - 1
+----+----+
| 01 | LF |
+----+----+

No operands should be supplied. This subcommand will remove
files which have been created during this "Receive job" command





McLaughlin [Page 4]

RFC 1179 LPR August 1990


6.2 02 - Receive control

+----+-------+----+------+----+
| 02 | Count | SP | Name | LF |
+----+-------+----+------+----+
Command code - 2
Operand 1 - Number of bytes in control
Operand 2 - Name of control

The control file must be an ASCII stream with the ends of
indicated by ASCII LF. The total number of bytes in the stream
sent as the first operand. The name of the control file is sent
the second. It should start with ASCII "cfA", followed by a
digit job number, followed by the host name which has constructed
control file. Acknowledgement processing must occur as usual
the command is sent

The next "Operand 1" octets over the same TCP connection are
intended contents of the control file. Once all of the contents
been delivered, an octet of zero bits is sent as an indication
the file being sent is complete. A second level of
processing must occur at this point

6.3 03 - Receive data

+----+-------+----+------+----+
| 03 | Count | SP | Name | LF |
+----+-------+----+------+----+
Command code - 3
Operand 1 - Number of bytes in data
Operand 2 - Name of data

The data file may contain any 8 bit values at all. The total
of bytes in the stream may be sent as the first operand,
the field should be cleared to 0. The name of the data file
start with ASCII "dfA". This should be followed by a three digit
number. The job number should be followed by the host name which
constructed the data file. Interpretation of the contents of
data file is determined by the contents of the corresponding
file. If a data file length has been specified, the next "Operand 1"
octets over the same TCP connection are the intended contents of
data file. In this case, once all of the contents have
delivered, an octet of zero bits is sent as an indication that
file being sent is complete. A second level of
processing must occur at this point






McLaughlin [Page 5]

RFC 1179 LPR August 1990


7. Control file

This section discusses the format of the lines in the control
which is sent to the line printer daemon

Each line of the control file consists of a single, printable
character which represents a function to be performed when the
is printed. Interpretation of these command characters are case
sensitive. The rest of the line after the command character is
command's operand. No leading white space is permitted after
command character. The line ends with an ASCII new line

Those commands which have a lower case letter as a command code
used to specify an actual printing request. The commands which
upper case are used to describe parametric values or
conditions

Some commands must be included in every control file. These are 'H
(responsible host) and 'P' (responsible user). Additionally,
must be at least one lower case command to produce any output

7.1 C - Class for banner

+---+-------+----+
| C | Class | LF |
+---+-------+----+
Command code - 'C
Operand - Name of class for banner

This command sets the class name to be printed on the banner page
The name must be 31 or fewer octets. The name can be omitted. If
is, the name of the host on which the file is printed will be used
The class is conventionally used to display the host from which
printing job originated. It will be ignored unless the print
command ('L') is also used

7.2 H - Host

+---+------+----+
| H | Host | LF |
+---+------+----+
Command code - 'H
Operand - Name of

This command specifies the name of the host which is to be treated
the source of the print job. The command must be included in
control file. The name of the host must be 31 or fewer octets




McLaughlin [Page 6]

RFC 1179 LPR August 1990


7.3 I - Indent

+---+-------+----+
| I | count | LF |
+---+-------+----+
Command code - 'I
Operand - Indenting

This command specifies that, for files which are printed with
'f', of columns given. (It is ignored for other output
commands.) The identing count operand must be all decimal digits

7.4 J - Job name for banner

+---+----------+----+
| J | Job name | LF |
+---+----------+----+
Command code - 'J
Operand - Job

This command sets the job name to be printed on the banner page.
name of the job must be 99 or fewer octets. It can be omitted.
job name is conventionally used to display the name of the file
files which were "printed". It will be ignored unless the
banner command ('L') is also used

7.5 L - Print banner

+---+------+----+
| L | User | LF |
+---+------+----+
Command code - 'L
Operand - Name of user for burst

This command causes the banner page to be printed. The user name
be omitted. The class name for banner page and job name for
page commands must precede this command in the control file to
effective

7.6 M - Mail When

+---+------+----+
| M | user | LF |
+---+------+----+
Command code - 'M
Operand - User

This entry causes mail to be sent to the user given as the operand



McLaughlin [Page 7]

RFC 1179 LPR August 1990


the host specified by the 'H' entry when the printing operation
(successfully or unsuccessfully).

7.7 N - Name of source

+---+------+----+
| N | Name | LF |
+---+------+----+
Command code - 'N
Operand - File

This command specifies the name of the file from which the data
was constructed. It is returned on a query and used in printing
the 'p' command when no title has been given. It must be 131
fewer octets

7.8 P - User

+---+------+----+
| P | Name | LF |
+---+------+----+
Command code - 'P
Operand - User

This command specifies the user identification of the
requesting the printing job. This command must be included in
control file. The user identification must be 31 or fewer octets

7.9 S - Symbolic link

+---+--------+----+-------+----+
| S | device | SP | inode | LF |
+---+--------+----+-------+----+
Command code - 'S
Operand 1 - Device
Operand 2 - Inode

This command is used to record symbolic link data on a Unix system
that changing a file's directory entry after a file is printed
not print the new file. It is ignored if the data file is
symbolically linked










McLaughlin [Page 8]

RFC 1179 LPR August 1990


7.10 T - Title for

+---+-------+----+
| T | title | LF |
+---+-------+----+
Command code - 'T
Operand - Title

This command provides a title for a file which is to be printed
either the 'p' command. (It is ignored by all of the other
commands.) The title must be 79 or fewer octets

7.11 U - Unlink data

+---+------+----+
| U | file | LF |
+---+------+----+
Command code - 'U
Operand - File to

This command indicates that the specified file is no longer needed
This should only be used for data files

7.12 W - Width of

+---+-------+----+
| W | width | LF |
+---+-------+----+
Command code - 'W
Operand - Width

This command limits the output to the specified number of columns
the 'f', 'l', and 'p' commands. (It is ignored for other
generating commands.) The width count operand must be all
digits. It may be silently reduced to some lower value. The
value for the width is 132.

7.13 1 - troff R

+---+------+----+
| 1 | file | LF |
+---+------+----+
Command code - '1'
Operand - File

This command specifies the file name for the troff R font. [1]
is the font which is printed using Times Roman by default




McLaughlin [Page 9]

RFC 1179 LPR August 1990


7.14 2 - troff I

+---+------+----+
| 2 | file | LF |
+---+------+----+
Command code - '2'
Operand - File

This command specifies the file name for the troff I font. [1]
is the font which is printed using Times Italic by default

7.15 3 - troff B

+---+------+----+
| 3 | file | LF |
+---+------+----+
Command code - '3'
Operand - File

This command specifies the file name for the troff B font. [1]
is the font which is printed using Times Bold by default

7.16 4 - troff S

+---+------+----+
| 4 | file | LF |
+---+------+----+
Command code - '4'
Operand - File

This command specifies the file name for the troff S font. [1]
is the font which is printed using Special Mathematical Font
default

7.17 c - Plot CIF

+---+------+----+
| c | file | LF |
+---+------+----+
Command code - 'c
Operand - File to

This command causes the data file to be plotted, treating the data
CIF (CalTech Intermediate Form) graphics language. [2]







McLaughlin [Page 10]

RFC 1179 LPR August 1990


7.18 d - Print DVI

+---+------+----+
| d | file | LF |
+---+------+----+
Command code - 'd
Operand - File to

This command causes the data file to be printed, treating the data
DVI (TeX output). [3]

7.19 f - Print formatted

+---+------+----+
| f | file | LF |
+---+------+----+
Command code - 'f
Operand - File to

This command cause the data file to be printed as a plain text file
providing page breaks as necessary. Any ASCII control
which are not in the following list are discarded: HT, CR, FF, LF
and BS

7.20 g - Plot

+---+------+----+
| g | file | LF |
+---+------+----+
Command code - 'g
Operand - File to

This command causes the data file to be plotted, treating the data
output from the Berkeley Unix plot library. [1]

7.21 k - Reserved for use by Kerberized LPR clients and servers

7.22 l - Print file leaving control

+---+------+----+
| l | file | LF |
+---+------+----+
Command code - 'l' (lower case L
Operand - File to

This command causes the specified data file to printed
filtering the control characters (as is done with the 'f' command).




McLaughlin [Page 11]

RFC 1179 LPR August 1990


7.23 n - Print ditroff output

+---+------+----+
| n | file | LF |
+---+------+----+
Command code - 'n
Operand - File to

This command prints the data file to be printed, treating the data
ditroff output. [4]

7.24 o - Print Postscript output

+---+------+----+
| o | file | LF |
+---+------+----+
Command code - 'o
Operand - File to

This command prints the data file to be printed, treating the data
standard Postscript input

7.25 p - Print file with 'pr'

+---+------+----+
| p | file | LF |
+---+------+----+
Command code - 'p
Operand - File to

This command causes the data file to be printed with a heading,
numbers, and pagination. The heading should include the date
time that printing was started, the title, and a page
identifier followed by the page number. The title is the name
file as specified by the 'N' command, unless the 'T' command (title
has been given. After a page of text has been printed, a new page
started with a new page number. (There is no way to specify
length of the page.)

7.26 r - File to print with FORTRAN carriage

+---+------+----+
| r | file | LF |
+---+------+----+
Command code - 'r
Operand - File to

This command causes the data file to be printed, interpreting



McLaughlin [Page 12]

RFC 1179 LPR August 1990


first column of each line as FORTRAN carriage control. The
standard limits this to blank, "1", "0", and "+" carriage controls
Most FORTRAN programmers also expect "-" (triple space) to work
well

7.27 t - Print troff output

+---+------+----+
| t | file | LF |
+---+------+----+
Command code - 't
Operand - File to

This command prints the data file as Graphic Systems C/A/
phototypesetter input. [5] This is the standard output of the
"troff" command

7.28 v - Print raster

+---+------+----+
| v | file | LF |
+---+------+----+
Command code - 'v
Operand - File to

This command prints a Sun raster format file. [6]

7.29 z - Reserved for future use with the Palladium print system

REFERENCES and

[1] Computer Science Research Group, "UNIX Programmer's
Manual", USENIX, 1986.

[2] Hon and Sequin, "A Guide to LSI Implementation", XEROX PARC
1980.

[3] Knuth, D., "TeX The Program".

[4] Kernighan, B., "A Typesetter-independent TROFF".

[5] "Model C/A/T Phototypesetter", Graphic Systems, Inc. Hudson, N.H

[6] Sun Microsystems, "Pixrect Reference Manual", Sun Microsystems
Mountain View, CA, 1988.






McLaughlin [Page 13]

RFC 1179 LPR August 1990


Security

Security issues are not discussed in this memo

Author's

Leo J. McLaughlin
The Wollongong
1129 San Antonio
Palo Alto, CA 94303

Phone: 415-962-7100

EMail: ljm@twg.





































McLaughlin [Page 14]







if you see any problems within the linking, don't worry be happy,
this is version 0.1 of the Relevance System and you gotta expect some crappy subroutines sometimes,
just be content we did not write this in Java, which would have made this "bigger and better" HAHAHHA.




RFC documents can be found at I.E.T.F.



Relevance System Copyright © 2002 Spectrum WorldResearch
other technical nosh by ServerMasters Corporation
collaboration of BobX







Spectrum