This file is indexed.

/usr/share/doc/lprng-doc/LPRng-Reference-Multipart/submitting.htm is in lprng-doc 3.8.A~rc2-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 6 November 2007), see www.w3.org">

  <title>Submitting Jobs and Service Requests</title>
  <meta name="GENERATOR" content=
  "Modular DocBook HTML Stylesheet Version 1.79">
  <link rel="HOME" title=" LPRng Reference Manual" href=
  "index.htm">
  <link rel="UP" title="Job Processing" href="jobsteps.htm">
  <link rel="PREVIOUS" title="Job Processing" href="jobsteps.htm">
  <link rel="NEXT" title="Job Reception " href="reception.htm">
</head>

<body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF"
vlink="#840084" alink="#0000FF">
  <div class="NAVHEADER">
    <table summary="Header navigation table" width="100%" border=
    "0" cellpadding="0" cellspacing="0">
      <tr>
        <th colspan="3" align="center">LPRng Reference Manual: 24
        Sep 2004 (For LPRng-3.8.28)</th>
      </tr>

      <tr>
        <td width="10%" align="left" valign="bottom"><a href=
        "jobsteps.htm" accesskey="P">Prev</a></td>

        <td width="80%" align="center" valign="bottom">Chapter 15.
        Job Processing</td>

        <td width="10%" align="right" valign="bottom"><a href=
        "reception.htm" accesskey="N">Next</a></td>
      </tr>
    </table>
    <hr align="left" width="100%">
  </div>

  <div class="SECT1">
    <h1 class="SECT1"><a name="SUBMITTING" id="SUBMITTING">15.2.
    Submitting Jobs and Service Requests</a></h1>

    <p>Options used:</p>

    <ul>
      <li>
        <p><tt class="LITERAL">lpd_port=</tt><span class=
        "emphasis"><i class="EMPHASIS">Listening Port for <b class=
        "APPLICATION">lpd</b></i></span></p>
      </li>

      <li>
        <p><tt class="LITERAL">unix_socket_path=</tt><span class=
        "emphasis"><i class="EMPHASIS">Unix socket for <b class=
        "APPLICATION">lpd</b> connections</i></span></p>
      </li>
    </ul>

    <p>After the <b class="APPLICATION">lpd</b> server has done its
    initialization, it will attempt to bind to the <b class=
    "APPLICATION">lpd</b> listening port specified by the
    <tt class="LITERAL">lpd_port</tt> value. This value has the
    format <tt class="LITERAL">[ipaddr%]port</tt>. If the
    <tt class="LITERAL">ipaddr</tt> is specified then the lpd
    server binds to the interface with the specified address
    otherwise it binds to all interfaces. The port value can be a
    number or name the name of a service; The port corresponding to
    the service name is used. The <tt class="LITERAL">printer</tt>
    services port is 515. If the port binding operation is
    successful and the server has not been request to run in
    <span class="emphasis"><i class=
    "EMPHASIS">foreground</i></span> mode by the <tt class=
    "LITERAL">-F</tt> command line option, then a child process is
    forked and the parent process will exit. The child process then
    takes steps to disconnect itself from the control terminal of
    the process that started it.</p>

    <p>The <tt class="LITERAL">unix_socket_path</tt> option
    specifies the pathname of a <span class="emphasis"><i class=
    "EMPHASIS">fifo</i></span> socket that local processes can use
    instead of the TCP/IP port.</p>

    <p>The main <b class="APPLICATION">lpd</b> process will then
    start a <span class="emphasis"><i class="EMPHASIS">queue
    checking</i></span> process that will check all of the spool
    queues used by the server for queues that have pending jobs.
    This process sends a message to the main <b class=
    "APPLICATION">lpd</b> process requesting that it start a
    service process for this queue.</p>

    <p>The <b class="APPLICATION">lpd</b> process will then sit in
    a loop waiting for one of the following events:</p>

    <ol type="1">
      <li>
        <p>An incoming connection request. If the maximum number of
        children has not been exceeded, then a new process will be
        forked to handle this connection.</p>
      </li>

      <li>
        <p>A child process exiting. The server will check to see if
        there is a pending request to start a server for a queue
        that could not be accommodated due to too many processes
        running.</p>
      </li>

      <li>
        <p>A request to start a service process for a queue. If the
        number of active processes is less than the maximum allowed
        a service process will be started, otherwise the request
        will be placed on a list for service when the number of
        processes active decreases.</p>
      </li>

      <li>
        <p>A timeout alarm for the queue rescanning operation. This
        is discussed in the next section in detail.</p>
      </li>
    </ol>

    <p>When connection is accepted by the <b class=
    "APPLICATION">lpd</b> spooler, the following steps are taken to
    processes the job.</p>

    <ol type="1">
      <li>
        <p>First, a timeout is established for the transfer of the
        information from client to the <b class=
        "APPLICATION">lpd</b> server. This is done to prevent a
        denial of service attack by processes that do not close
        connections in a timely manner.</p>
      </li>

      <li>
        <p>A single line is read into an internal buffer. This line
        must be terminated with a <tt class="LITERAL">NEWLINE</tt>
        character.</p>
      </li>

      <li>
        <p>The input line is parsed and the actions required are
        determined.</p>
      </li>

      <li>
        <p>If the activity requires access to the spool queue
        information, then the current directory of the process is
        changed to the spool directory. This allows all file
        accesses to then be relative to this directory.</p>
      </li>

      <li>
        <p>If the processing requires starting a spool queue server
        process, a message is sent to the main <b class=
        "APPLICATION">lpd</b> server process to start a spool queue
        server process. By having all the processes serving spool
        queues children of the main server process it is possible
        to monitor and limit the total number of active processes.
        This is important on systems with a very large number of
        queues.</p>
      </li>

      <li>
        <p>After the processing of the original request has been
        completed, the process with then check to see if the Spool
        Queue for the printer should be processed.</p>
      </li>
    </ol>
  </div>

  <div class="NAVFOOTER">
    <hr align="left" width="100%">

    <table summary="Footer navigation table" width="100%" border=
    "0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="33%" align="left" valign="top"><a href=
        "jobsteps.htm" accesskey="P">Prev</a></td>

        <td width="34%" align="center" valign="top"><a href=
        "index.htm" accesskey="H">Home</a></td>

        <td width="33%" align="right" valign="top"><a href=
        "reception.htm" accesskey="N">Next</a></td>
      </tr>

      <tr>
        <td width="33%" align="left" valign="top">Job
        Processing</td>

        <td width="34%" align="center" valign="top"><a href=
        "jobsteps.htm" accesskey="U">Up</a></td>

        <td width="33%" align="right" valign="top">Job
        Reception</td>
      </tr>
    </table>
  </div>

  <p align="center"></p>
</body>
</html>