File: bk.htm

package info (click to toggle)
lprng 3.8.10-1.2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 13,076 kB
  • ctags: 4,348
  • sloc: ansic: 35,394; sh: 10,756; perl: 2,210; makefile: 1,046
file content (240 lines) | stat: -rw-r--r-- 8,606 bytes parent folder | download
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
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta name="generator" content="HTML Tidy, see www.w3.org">
    <title>Forwarding Jobs</title>
    <meta name="GENERATOR" content=
    "Modular DocBook HTML Stylesheet Version 1.71 ">
    <link rel="HOME" title=" LPRng-HOWTO" href="index.htm">
    <link rel="UP" title="Job Processing" href="jobsteps.htm">
    <link rel="PREVIOUS" title="Abnormal Termination " href=
    "abnormalterm.htm">
    <link rel="NEXT" title="Debugging " href="debugging.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-HOWTO: 1 Apr 2002
          (For LPRng-3.8.10)</th>
        </tr>

        <tr>
          <td width="10%" align="left" valign="bottom"><a href=
          "abnormalterm.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=
          "debugging.htm" accesskey="N">Next</a></td>
        </tr>
      </table>
      <hr align="LEFT" width="100%">
    </div>

    <div class="SECT1">
      <h1 class="SECT1"><a name="BK">15.10. Forwarding
      Jobs</a></h1>

      <p>Options:</p>

      <ul>
        <li>
          <p><tt class="LITERAL">bk</tt><i class=
          "EMPHASIS">Berkeley compatible control file</i></p>
        </li>

        <li>
          <p><tt class="LITERAL">bq_format=</tt><i class=
          "EMPHASIS">format of filtered output</i></p>
        </li>

        <li>
          <p><tt class="LITERAL">lpd_bounce</tt><i class=
          "EMPHASIS">filter job and transfer output</i></p>
        </li>

        <li>
          <p><tt class="LITERAL">control_filter=</tt><i class=
          "EMPHASIS">Control file filter</i></p>
        </li>

        <li>
          <p><tt class="LITERAL">control_file_line_order=</tt><i
          class="EMPHASIS">Control file line order</i></p>
        </li>

        <li>
          <p><tt class="LITERAL">nline_after_file</tt><i class=
          "EMPHASIS">N line after data file</i></p>
        </li>

        <li>
          <p><tt class="LITERAL">send_data_first</tt><i class=
          "EMPHASIS">send data files first</i></p>
        </li>
      </ul>
      <br>
      <br>

      <p>If a spool queue is doing store and forward operations,
      then rather than printing a job the control files and data
      files are sent to the remote printer. In order to do this,
      the following items must be arranged.</p>

      <ul>
        <li>
          <p>If necessary, the job must be processed by filters on
          the local host.</p>
        </li>

        <li>
          <p>The control file must be prepared and updated
          according to the requirements of the remote site.</p>
        </li>

        <li>
          <p>A connection must be established to the remote
          site.</p>
        </li>

        <li>
          <p>The data files and control files must be transferred
          to the remote site.</p>
        </li>
      </ul>
      <br>
      <br>

      <p>One of the more serious problems is when a print spooler
      (LPR) program does not generate print jobs in a manner
      compatible with a remote system. While <b class=
      "APPLICATION">LPRng</b> performs checks for improper
      implementations of RFC1179, it will try to accept a job even
      under the most severe abuse of the protocol. However, other
      spoolers are not so forgiving. Some spoolers require that the
      contents of the control file be in <i class=
      "EMPHASIS">exactly</i> the order that the original 1988 BSD
      <b class="APPLICATION">lpr</b> software generated them. While
      some entries can be missing, all the entries present in the
      file must be in an explicit order.</p>

      <p>The <tt class="LITERAL">bk</tt> (Berkeley <b class=
      "APPLICATION">lpd</b> compatible control file) option causes
      <b class="APPLICATION">lpr</b> and <b class=
      "APPLICATION">lpd</b> to reformat the control file, removing
      objectionable entries. The control file of a job being sent
      to a remote printer will have its control file entries
      restricted to letters in (and the same order) as
      HPJCLIMWT1234. You can use the <tt class=
      "LITERAL">control_file_line_order</tt> option to specify an
      even more restricted set, and use the <tt class=
      "LITERAL">nline_after_file</tt> option to have the file
      information line (<tt class="LITERAL">N</tt> value) come
      after the data file entry.</p>

      <p>However, there are some very odd commercial
      implementations that require <i class="EMPHASIS">more</i>
      information than is present. To assist with this, the <tt
      class="LITERAL">control_filter</tt> option can be used. This
      specifies a program that will process the control file before
      it is sent to a remote destination. The <tt class=
      "LITERAL">control_filter</tt> program is run with the
      standard set of filter options. <span class=
      "ACRONYM">STDIN</span> is attached to the control file and
      the <span class="ACRONYM">STDOUT</span> will be used as the
      control file value sent to the remote host.</p>

      <p>The exit code of the <tt class=
      "LITERAL">control_filter</tt> is used to determine whether to
      proceed in processing. See <a href=
      "printingjob.htm#ERRORCODES">Errorcodes</a> for details.</p>

      <p>Sequence of Operations:</p>

      <ol type="1">
        <li>
          <p>A copy of the control file information is made and the
          copy will be modified during processing, rather than the
          original.</p>
        </li>

        <li>
          <p>If the <tt class="LITERAL">lpd_bounce</tt> option is
          specified then a temporary file is created and the job is
          printed using the procedures for printing to a device,
          but to the file. This includes all of the filter
          operations, banners, and so forth. The working copy of
          the control file is set to have the temporary file as the
          data file to be sent to the remote destination, and the
          data file format is set to the <tt class=
          "LITERAL">bq_format</tt> value.</p>
        </li>

        <li>
          <p>The control file is rewritten according to the
          requirements of the routing information, if any. For each
          destination in the routing information and each copy, a
          new job identifier value will be generated.</p>
        </li>

        <li>
          <p>The control file is rewritten according to the <tt
          class="LITERAL">bk</tt> and <tt class=
          "LITERAL">control_file_line_order</tt> options. If a
          control filter is specified, the control filter program
          is run and the output of the program is used as the new
          control file.</p>
        </li>

        <li>
          <p>A connection is made to the remote host, and the data
          and control files are transferred to the remote host
          using the RFC1179 protocol. If the <tt class=
          "LITERAL">send_data_first</tt> option is specified the
          data files are sent first.</p>
        </li>

        <li>
          <p>If the job was sent successfully, the job status is
          updated in the same manner as for a printed job.</p>
        </li>
      </ol>
      <br>
      <br>
    </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=
          "abnormalterm.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=
          "debugging.htm" accesskey="N">Next</a></td>
        </tr>

        <tr>
          <td width="33%" align="left" valign="top">Abnormal
          Termination</td>

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

          <td width="33%" align="right" valign="top">Debugging</td>
        </tr>
      </table>
    </div>
  </body>
</html>