LPRng Reference Manual: 3 May 2004 (For LPRng-3.8.27) | ||
---|---|---|
Prev | Chapter 11. Printer Communication and Protocols | Next |
Most of the Network Print Servers are implemented using extremely simply software. The following is a list of some problems and what options the LPRng software uses to handle them.
Only a single TCP/IP connection is accepted at a time. This means that when one user is sending a job then the unit will not accept other connections. There is another side effect of this problem, which is that some implementations will accept a network connection but not read any data from the connection until the previous connection is finished.
The deal with these problems the connect_timeout, send_job_rw_timeout, and send_query_rw_timeout are used to control job transfer and lpq status gathering. See Printing Job Files and Opening the Output Device for details.
Some Network Print Servers do not respond to lpq or lprm queries correctly. The remote_support option can be used to solve this problem by specifying what operations the remote print server can handle:
:remote_support=RMQVC R = lpr, M = lprmg, Q = lpq, V = lpq -v, C = lpc :remote_support=R # printer only handles LPR
This is the result of a defective or buggy TCP/IP stacks. A common problem is the habit that some Network Print Servers occaisionally discard data at the end of a print job when a network connection is half-closed. A half-closed connection is one where one end of the sending connection indicates that no further data will be sent. Unfortunately, the Network Print Server will then try to close the connection in the other direction. When this does not immediately succeed, it will terminate the network connection, discarding any unprinted data.
The half_close flag can be used to solve this problem. See Normal Termination for more details.
lp:lp=lp@remote # shutdown(fd,WRITE) connection, wait for end lp:lp=lp@remote:half_close@ # close() connection and do not wait