pcnfsd.x revision 1.2 1 1.2 gwr /* $NetBSD: pcnfsd.x,v 1.2 1995/07/25 22:20:33 gwr Exp $ */
2 1.2 gwr
3 1.1 jtc /* The maximum number of bytes in a user name argument */
4 1.1 jtc const IDENTLEN = 32;
5 1.1 jtc /* The maximum number of bytes in a password argument */
6 1.1 jtc const PASSWORDLEN = 64;
7 1.1 jtc /* The maximum number of bytes in a print client name argument */
8 1.1 jtc const CLIENTLEN = 64;
9 1.1 jtc /* The maximum number of bytes in a printer name argument */
10 1.1 jtc const PRINTERNAMELEN = 64;
11 1.1 jtc /* The maximum number of bytes in a print user name argument */
12 1.1 jtc const USERNAMELEN = 64;
13 1.1 jtc /* The maximum number of bytes in a print spool file name argument */
14 1.1 jtc const SPOOLNAMELEN = 64;
15 1.1 jtc /* The maximum number of bytes in a print options argument */
16 1.1 jtc const OPTIONSLEN = 64;
17 1.1 jtc /* The maximum number of bytes in a print spool directory path */
18 1.1 jtc const SPOOLDIRLEN = 255;
19 1.1 jtc /* The maximum number of secondary GIDs returned by a V2 AUTH */
20 1.1 jtc const EXTRAGIDLEN = 16;
21 1.1 jtc /* The maximum number of bytes in a home directory spec */
22 1.1 jtc const HOMEDIRLEN = 255;
23 1.1 jtc /* The maximum number of bytes in a misc. comments string */
24 1.1 jtc const COMMENTLEN = 255;
25 1.1 jtc /* The maximum number of bytes in a print job id */
26 1.1 jtc const PRINTJOBIDLEN = 255;
27 1.1 jtc /* The maximum number of printers returned by a LIST operation */
28 1.1 jtc const PRLISTMAX = 32;
29 1.1 jtc /* The maximum number of print jobs returned by a QUEUE operation */
30 1.1 jtc const PRQUEUEMAX = 128;
31 1.1 jtc /* The maximum number of entries in the facilities list */
32 1.1 jtc const FACILITIESMAX = 32;
33 1.1 jtc /* The maximum length of an operator message */
34 1.1 jtc const MESSAGELEN = 512;
35 1.1 jtc
36 1.1 jtc
37 1.1 jtc
38 1.1 jtc typedef string ident<IDENTLEN>;
39 1.1 jtc /*
40 1.1 jtc ** The type ident is used for passing an encoded user name for
41 1.1 jtc ** authentication. The server should decode the string by replacing each
42 1.1 jtc ** octet with the value formed by performing an exclusive-or of the octet
43 1.1 jtc ** value with the value 0x5b and and'ing the result with 0x7f.
44 1.1 jtc */
45 1.1 jtc
46 1.1 jtc typedef string message<MESSAGELEN>;
47 1.1 jtc /*
48 1.1 jtc ** The type message is used for passing an alert message to the
49 1.1 jtc ** system operator on the server. The text may include newlines.
50 1.1 jtc */
51 1.1 jtc
52 1.1 jtc typedef string password<PASSWORDLEN>;
53 1.1 jtc /*
54 1.1 jtc ** The type password is used for passing an encode password for
55 1.1 jtc ** authentication. The server should decode the password as described
56 1.1 jtc ** above.
57 1.1 jtc */
58 1.1 jtc
59 1.1 jtc typedef string client<CLIENTLEN>;
60 1.1 jtc /*
61 1.1 jtc ** The type client is used for passing the hostname of a client for
62 1.1 jtc ** printing. The server may use this name in constructing the spool
63 1.1 jtc ** directory name.
64 1.1 jtc */
65 1.1 jtc
66 1.1 jtc typedef string printername<PRINTERNAMELEN>;
67 1.1 jtc /*
68 1.1 jtc ** The type printername is used for passing the name of a printer on which
69 1.1 jtc ** the client wishes to print.
70 1.1 jtc */
71 1.1 jtc
72 1.1 jtc typedef string username<USERNAMELEN>;
73 1.1 jtc /*
74 1.1 jtc ** The type username is used for passing the user name for a print job.
75 1.1 jtc ** The server may use this in any way it chooses: it may attempt to change
76 1.1 jtc ** the effective identity with which it is running to username or may
77 1.1 jtc ** simply arrange for the text to be printed on the banner page.
78 1.1 jtc */
79 1.1 jtc
80 1.1 jtc typedef string comment<COMMENTLEN>;
81 1.1 jtc /*
82 1.1 jtc ** The type comment is used to pass an uninterpreted text string which
83 1.1 jtc ** may be used by displayed to a human user or used for custom
84 1.1 jtc ** extensions to the PCNFSD service. If you elect to extend PCNFSD
85 1.1 jtc ** service in this way, please do so in a way which will avoid
86 1.1 jtc ** problems if your client attempts to interoperate with a server
87 1.1 jtc ** which does not support your extension. One way to do this is to
88 1.1 jtc ** use the
89 1.1 jtc */
90 1.1 jtc
91 1.1 jtc typedef string spoolname<SPOOLNAMELEN>;
92 1.1 jtc /*
93 1.1 jtc ** The type spoolname is used for passing the name of a print spool file
94 1.1 jtc ** (a simple filename not a pathname) within the spool directory.
95 1.1 jtc */
96 1.1 jtc
97 1.1 jtc typedef string printjobid<PRINTJOBIDLEN>;
98 1.1 jtc /*
99 1.1 jtc ** The type printjobid is used for passing the id of a print job.
100 1.1 jtc */
101 1.1 jtc
102 1.1 jtc typedef string homedir<OPTIONSLEN>;
103 1.1 jtc /*
104 1.1 jtc ** The type homedir is used to return the home directory for the user.
105 1.1 jtc ** If present, it should be in the form "hostname:path", where hostname
106 1.1 jtc ** and path are in a suitable form for communicating with the mount server.
107 1.1 jtc */
108 1.1 jtc
109 1.1 jtc typedef string options<OPTIONSLEN>;
110 1.1 jtc /*
111 1.1 jtc ** The type options is used for passing implementation-specific print
112 1.1 jtc ** control information. The option string is a set of printable ASCII
113 1.1 jtc ** characters. The first character should be ignored by the server; it is
114 1.1 jtc ** reserved for client use. The second character specifies the type of
115 1.1 jtc ** data in the print file. The following types are defined (an
116 1.1 jtc ** implementation may define additional values):
117 1.1 jtc **
118 1.1 jtc ** p - PostScript data. The client will ensure that a valid
119 1.1 jtc ** PostScript header is included.
120 1.1 jtc ** d - Diablo 630 data.
121 1.1 jtc ** x - Generic printable ASCII text. The client will have filtered
122 1.1 jtc ** out all non-printable characters other than CR, LF, TAB,
123 1.1 jtc ** BS and VT.
124 1.1 jtc ** r - Raw print data. The client performs no filtering.
125 1.1 jtc ** u - User-defined. Reserved for custom extensions. A vanilla
126 1.1 jtc ** pcnfsd server will treat this as equivalent to "r"
127 1.1 jtc **
128 1.1 jtc ** If diablo data (type 'd') is specified, a formatting specification
129 1.1 jtc ** string will be appended. This has the form:
130 1.1 jtc ** ppnnnbbb
131 1.1 jtc ** pp
132 1.1 jtc ** Pitch - 10, 12 or 15.
133 1.1 jtc ** nnn
134 1.1 jtc ** The ``normal'' font to be used - encoded as follows:
135 1.1 jtc ** Courier crn
136 1.1 jtc ** Courier-Bold crb
137 1.1 jtc ** Courier-Oblique con
138 1.1 jtc ** Courier-BoldObliqu cob
139 1.1 jtc ** Helvetica hrn
140 1.1 jtc ** Helvetica-Bold hrb
141 1.1 jtc ** Helvetica-Oblique hon
142 1.1 jtc ** Helvetica-BoldOblique hob
143 1.1 jtc ** Times-Roman trn
144 1.1 jtc ** Times-Bold trb
145 1.1 jtc ** Times-Italic ton
146 1.1 jtc ** Times-BoldItalic tob
147 1.1 jtc ** bbb
148 1.1 jtc ** The ``bold'' font to be used - encoded in the same way. For example,
149 1.1 jtc ** the string ``nd10hrbcob'' specifies that the print data is in Diablo
150 1.1 jtc ** 630 format, it should be printed at 10 pitch, ``normal'' text should be
151 1.1 jtc ** printed in Helvetica-Bold, and ``bold'' text should be printed in
152 1.1 jtc ** Courier-BoldOblique.
153 1.1 jtc */
154 1.1 jtc
155 1.1 jtc enum arstat {
156 1.1 jtc AUTH_RES_OK = 0,
157 1.1 jtc AUTH_RES_FAKE = 1,
158 1.1 jtc AUTH_RES_FAIL = 2
159 1.1 jtc };
160 1.1 jtc /*
161 1.1 jtc ** The type arstat is returned by PCNFSD_AUTH. A value of AUTH_RES_OK
162 1.1 jtc ** indicates that the server was able to verify the ident and password
163 1.1 jtc ** successfully.AUTH_RES_FAIL is returned if a verification failure
164 1.1 jtc ** occurred. The value AUTH_RES_FAKE may be used if the server wishes to
165 1.1 jtc ** indicate that the verification failed, but that the server has
166 1.1 jtc ** synthesised acceptable values for uid and gid which the client may use
167 1.1 jtc ** if it wishes.
168 1.1 jtc */
169 1.1 jtc
170 1.1 jtc enum alrstat {
171 1.1 jtc ALERT_RES_OK = 0,
172 1.1 jtc ALERT_RES_FAIL = 1
173 1.1 jtc };
174 1.1 jtc /*
175 1.1 jtc ** The type alrstat is returned by PCNFSD_ALERT. A value of ALERT_RES_OK
176 1.1 jtc ** indicates that the server was able to notify the system operator
177 1.1 jtc ** successfully. ALERT_RES_FAIL is returned if a failure occurred
178 1.1 jtc */
179 1.1 jtc enum pirstat {
180 1.1 jtc PI_RES_OK = 0,
181 1.1 jtc PI_RES_NO_SUCH_PRINTER = 1,
182 1.1 jtc PI_RES_FAIL = 2
183 1.1 jtc };
184 1.1 jtc /*
185 1.1 jtc ** The type pirstat is returned by a number of print operations. PI_RES_OK
186 1.1 jtc ** indicates that the operation was performed successfully. PI_RES_FAIL
187 1.1 jtc ** indicates that the printer name was valid, but the operation could
188 1.1 jtc ** not be performed. PI_RES_NO_SUCH_PRINTER indicates that the printer
189 1.1 jtc ** name was not recognised.
190 1.1 jtc */
191 1.1 jtc
192 1.1 jtc enum pcrstat {
193 1.1 jtc PC_RES_OK = 0,
194 1.1 jtc PC_RES_NO_SUCH_PRINTER = 1,
195 1.1 jtc PC_RES_NO_SUCH_JOB = 2,
196 1.1 jtc PC_RES_NOT_OWNER = 3,
197 1.1 jtc PC_RES_FAIL = 4
198 1.1 jtc };
199 1.1 jtc /*
200 1.1 jtc ** The type pcrstat is returned by a CANCEL, REQUEUE, HOLD, or RELEASE
201 1.1 jtc ** print operation.
202 1.1 jtc ** PC_RES_OK indicates that the operation was performed successfully.
203 1.1 jtc ** PC_RES_NO_SUCH_PRINTER indicates that the printer name was not recognised.
204 1.1 jtc ** PC_RES_NO_SUCH_JOB means that the job does not exist, or is not
205 1.1 jtc ** associated with the specified printer.
206 1.1 jtc ** PC_RES_NOT_OWNER means that the user does not have permission to
207 1.1 jtc ** manipulate the job.
208 1.1 jtc ** PC_RES_FAIL means that the job could not be manipulated for an unknown
209 1.1 jtc ** reason.
210 1.1 jtc */
211 1.1 jtc
212 1.1 jtc
213 1.1 jtc enum psrstat {
214 1.1 jtc PS_RES_OK = 0,
215 1.1 jtc PS_RES_ALREADY = 1,
216 1.1 jtc PS_RES_NULL = 2,
217 1.1 jtc PS_RES_NO_FILE = 3,
218 1.1 jtc PS_RES_FAIL = 4
219 1.1 jtc };
220 1.1 jtc /*
221 1.1 jtc ** The type psrstat is returned by PCNFSD_PR_START. A value of PS_RES_OK
222 1.1 jtc ** indicates that the server has started printing the job. It is possible
223 1.1 jtc ** that the reply from a PCNFSD_PR_START call may be lost, in which case
224 1.1 jtc ** the client will repeat the call. If the spool file is still in
225 1.1 jtc ** existence, the server will return PS_RES_ALREADY indicating that it has
226 1.1 jtc ** already started printing. If the file cannot be found, PS_RES_NO_FILE
227 1.1 jtc ** is returned. PS_RES_NULL indicates that the spool file was empty,
228 1.1 jtc ** while PS_RES_FAIL denotes a general failure. PI_RES_FAIL is returned
229 1.1 jtc ** if spool directory could not be created. The value
230 1.1 jtc ** PI_RES_NO_SUCH_PRINTER indicates that the printer name was not
231 1.1 jtc ** recognised.
232 1.1 jtc */
233 1.1 jtc
234 1.1 jtc enum mapreq {
235 1.1 jtc MAP_REQ_UID = 0,
236 1.1 jtc MAP_REQ_GID = 1,
237 1.1 jtc MAP_REQ_UNAME = 2,
238 1.1 jtc MAP_REQ_GNAME = 3
239 1.1 jtc };
240 1.1 jtc /*
241 1.1 jtc ** The type mapreq identifies the type of a mapping request.
242 1.1 jtc ** MAP_REQ_UID requests that the server treat the value in the
243 1.1 jtc ** id field as a uid and return the corresponding username in name.
244 1.1 jtc ** MAP_REQ_GID requests that the server treat the value in the
245 1.1 jtc ** id field as a gid and return the corresponding groupname in name.
246 1.1 jtc ** MAP_REQ_UNAME requests that the server treat the value in the
247 1.1 jtc ** name field as a username and return the corresponding uid in id.
248 1.1 jtc ** MAP_REQ_GNAME requests that the server treat the value in the
249 1.1 jtc ** name field as a groupname and return the corresponding gid in id.
250 1.1 jtc */
251 1.1 jtc
252 1.1 jtc enum maprstat {
253 1.1 jtc MAP_RES_OK = 0,
254 1.1 jtc MAP_RES_UNKNOWN = 1,
255 1.1 jtc MAP_RES_DENIED = 2
256 1.1 jtc };
257 1.1 jtc /*
258 1.1 jtc ** The type maprstat indicates the success or failure of
259 1.1 jtc ** an individual mapping request.
260 1.1 jtc */
261 1.1 jtc
262 1.1 jtc /*
263 1.1 jtc **********************************************************
264 1.1 jtc ** Version 1 of the PCNFSD protocol.
265 1.1 jtc **********************************************************
266 1.1 jtc */
267 1.1 jtc struct auth_args {
268 1.1 jtc ident id;
269 1.1 jtc password pw;
270 1.1 jtc };
271 1.1 jtc struct auth_results {
272 1.1 jtc arstat stat;
273 1.1 jtc unsigned int uid;
274 1.1 jtc unsigned int gid;
275 1.1 jtc };
276 1.1 jtc
277 1.1 jtc struct pr_init_args {
278 1.1 jtc client system;
279 1.1 jtc printername pn;
280 1.1 jtc };
281 1.1 jtc struct pr_init_results {
282 1.1 jtc pirstat stat;
283 1.1 jtc spoolname dir;
284 1.1 jtc };
285 1.1 jtc
286 1.1 jtc struct pr_start_args {
287 1.1 jtc client system;
288 1.1 jtc printername pn;
289 1.1 jtc username user;
290 1.1 jtc spoolname file;
291 1.1 jtc options opts;
292 1.1 jtc };
293 1.1 jtc struct pr_start_results {
294 1.1 jtc psrstat stat;
295 1.1 jtc };
296 1.1 jtc
297 1.1 jtc
298 1.1 jtc /*
299 1.1 jtc **********************************************************
300 1.1 jtc ** Version 2 of the PCNFSD protocol.
301 1.1 jtc **********************************************************
302 1.1 jtc */
303 1.1 jtc
304 1.1 jtc struct v2_info_args {
305 1.1 jtc comment vers;
306 1.1 jtc comment cm;
307 1.1 jtc };
308 1.1 jtc
309 1.1 jtc struct v2_info_results {
310 1.1 jtc comment vers;
311 1.1 jtc comment cm;
312 1.1 jtc int facilities<FACILITIESMAX>;
313 1.1 jtc };
314 1.1 jtc
315 1.1 jtc struct v2_pr_init_args {
316 1.1 jtc client system;
317 1.1 jtc printername pn;
318 1.1 jtc comment cm;
319 1.1 jtc };
320 1.1 jtc struct v2_pr_init_results {
321 1.1 jtc pirstat stat;
322 1.1 jtc spoolname dir;
323 1.1 jtc comment cm;
324 1.1 jtc };
325 1.1 jtc
326 1.1 jtc struct v2_pr_start_args {
327 1.1 jtc client system;
328 1.1 jtc printername pn;
329 1.1 jtc username user;
330 1.1 jtc spoolname file;
331 1.1 jtc options opts;
332 1.1 jtc int copies;
333 1.1 jtc comment cm;
334 1.1 jtc };
335 1.1 jtc struct v2_pr_start_results {
336 1.1 jtc psrstat stat;
337 1.1 jtc printjobid id;
338 1.1 jtc comment cm;
339 1.1 jtc };
340 1.1 jtc
341 1.1 jtc
342 1.1 jtc
343 1.1 jtc typedef struct pr_list_item *pr_list;
344 1.1 jtc
345 1.1 jtc struct pr_list_item {
346 1.1 jtc printername pn;
347 1.1 jtc printername device;
348 1.1 jtc client remhost; /* empty if local */
349 1.1 jtc comment cm;
350 1.1 jtc pr_list pr_next;
351 1.1 jtc };
352 1.1 jtc
353 1.1 jtc struct v2_pr_list_results {
354 1.1 jtc comment cm;
355 1.1 jtc pr_list printers;
356 1.1 jtc };
357 1.1 jtc
358 1.1 jtc struct v2_pr_queue_args {
359 1.1 jtc printername pn;
360 1.1 jtc client system;
361 1.1 jtc username user;
362 1.1 jtc bool just_mine;
363 1.1 jtc comment cm;
364 1.1 jtc };
365 1.1 jtc
366 1.1 jtc typedef struct pr_queue_item *pr_queue;
367 1.1 jtc
368 1.1 jtc struct pr_queue_item {
369 1.1 jtc int position;
370 1.1 jtc printjobid id;
371 1.1 jtc comment size;
372 1.1 jtc comment status;
373 1.1 jtc client system;
374 1.1 jtc username user;
375 1.1 jtc spoolname file;
376 1.1 jtc comment cm;
377 1.1 jtc pr_queue pr_next;
378 1.1 jtc };
379 1.1 jtc
380 1.1 jtc struct v2_pr_queue_results {
381 1.1 jtc pirstat stat;
382 1.1 jtc comment cm;
383 1.1 jtc bool just_yours;
384 1.1 jtc int qlen;
385 1.1 jtc int qshown;
386 1.1 jtc pr_queue jobs;
387 1.1 jtc };
388 1.1 jtc
389 1.1 jtc
390 1.1 jtc struct v2_pr_cancel_args {
391 1.1 jtc printername pn;
392 1.1 jtc client system;
393 1.1 jtc username user;
394 1.1 jtc printjobid id;
395 1.1 jtc comment cm;
396 1.1 jtc };
397 1.1 jtc struct v2_pr_cancel_results {
398 1.1 jtc pcrstat stat;
399 1.1 jtc comment cm;
400 1.1 jtc };
401 1.1 jtc
402 1.1 jtc
403 1.1 jtc struct v2_pr_status_args {
404 1.1 jtc printername pn;
405 1.1 jtc comment cm;
406 1.1 jtc };
407 1.1 jtc struct v2_pr_status_results {
408 1.1 jtc pirstat stat;
409 1.1 jtc bool avail;
410 1.1 jtc bool printing;
411 1.1 jtc int qlen;
412 1.1 jtc bool needs_operator;
413 1.1 jtc comment status;
414 1.1 jtc comment cm;
415 1.1 jtc };
416 1.1 jtc
417 1.1 jtc struct v2_pr_admin_args {
418 1.1 jtc client system;
419 1.1 jtc username user;
420 1.1 jtc printername pn;
421 1.1 jtc comment cm;
422 1.1 jtc };
423 1.1 jtc struct v2_pr_admin_results {
424 1.1 jtc pirstat stat;
425 1.1 jtc comment cm;
426 1.1 jtc };
427 1.1 jtc
428 1.1 jtc struct v2_pr_requeue_args {
429 1.1 jtc printername pn;
430 1.1 jtc client system;
431 1.1 jtc username user;
432 1.1 jtc printjobid id;
433 1.1 jtc int qpos;
434 1.1 jtc comment cm;
435 1.1 jtc };
436 1.1 jtc
437 1.1 jtc struct v2_pr_requeue_results {
438 1.1 jtc pcrstat stat;
439 1.1 jtc comment cm;
440 1.1 jtc };
441 1.1 jtc
442 1.1 jtc struct v2_pr_hold_args {
443 1.1 jtc printername pn;
444 1.1 jtc client system;
445 1.1 jtc username user;
446 1.1 jtc printjobid id;
447 1.1 jtc comment cm;
448 1.1 jtc };
449 1.1 jtc struct v2_pr_hold_results {
450 1.1 jtc pcrstat stat;
451 1.1 jtc comment cm;
452 1.1 jtc };
453 1.1 jtc
454 1.1 jtc struct v2_pr_release_args {
455 1.1 jtc printername pn;
456 1.1 jtc client system;
457 1.1 jtc username user;
458 1.1 jtc printjobid id;
459 1.1 jtc comment cm;
460 1.1 jtc };
461 1.1 jtc struct v2_pr_release_results {
462 1.1 jtc pcrstat stat;
463 1.1 jtc comment cm;
464 1.1 jtc };
465 1.1 jtc
466 1.1 jtc
467 1.1 jtc typedef struct mapreq_arg_item *mapreq_arg;
468 1.1 jtc
469 1.1 jtc struct mapreq_arg_item {
470 1.1 jtc mapreq req;
471 1.1 jtc int id;
472 1.1 jtc username name;
473 1.1 jtc mapreq_arg mapreq_next;
474 1.1 jtc };
475 1.1 jtc
476 1.1 jtc typedef struct mapreq_res_item *mapreq_res;
477 1.1 jtc
478 1.1 jtc struct mapreq_res_item {
479 1.1 jtc mapreq req;
480 1.1 jtc maprstat stat;
481 1.1 jtc int id;
482 1.1 jtc username name;
483 1.1 jtc mapreq_res mapreq_next;
484 1.1 jtc };
485 1.1 jtc
486 1.1 jtc struct v2_mapid_args {
487 1.1 jtc comment cm;
488 1.1 jtc mapreq_arg req_list;
489 1.1 jtc };
490 1.1 jtc
491 1.1 jtc
492 1.1 jtc struct v2_mapid_results {
493 1.1 jtc comment cm;
494 1.1 jtc mapreq_res res_list;
495 1.1 jtc };
496 1.1 jtc
497 1.1 jtc struct v2_auth_args {
498 1.1 jtc client system;
499 1.1 jtc ident id;
500 1.1 jtc password pw;
501 1.1 jtc comment cm;
502 1.1 jtc };
503 1.1 jtc struct v2_auth_results {
504 1.1 jtc arstat stat;
505 1.1 jtc unsigned int uid;
506 1.1 jtc unsigned int gid;
507 1.1 jtc unsigned int gids<EXTRAGIDLEN>;
508 1.1 jtc homedir home;
509 1.1 jtc int def_umask;
510 1.1 jtc comment cm;
511 1.1 jtc };
512 1.1 jtc
513 1.1 jtc struct v2_alert_args {
514 1.1 jtc client system;
515 1.1 jtc printername pn;
516 1.1 jtc username user;
517 1.1 jtc message msg;
518 1.1 jtc };
519 1.1 jtc struct v2_alert_results {
520 1.1 jtc alrstat stat;
521 1.1 jtc comment cm;
522 1.1 jtc };
523 1.1 jtc
524 1.1 jtc
525 1.1 jtc /*
526 1.1 jtc **********************************************************
527 1.1 jtc ** Protocol description for the PCNFSD program
528 1.1 jtc **********************************************************
529 1.1 jtc */
530 1.1 jtc /*
531 1.1 jtc ** Version 1 of the PCNFSD protocol.
532 1.1 jtc **
533 1.1 jtc ** -- PCNFSD_NULL() = 0
534 1.1 jtc ** Null procedure - standard for all RPC programs.
535 1.1 jtc **
536 1.1 jtc ** -- PCNFSD_AUTH() = 1
537 1.1 jtc ** Perform user authentication - map username, password into uid, gid.
538 1.1 jtc **
539 1.1 jtc ** -- PCNFSD_PR_INIT() = 2
540 1.1 jtc ** Prepare for remote printing: identify exporting spool directory.
541 1.1 jtc **
542 1.1 jtc ** -- PCNFSD_PR_START() = 3
543 1.1 jtc ** Submit a spooled print job for printing: the print data is
544 1.1 jtc ** in a file created in the spool directory.
545 1.1 jtc **
546 1.1 jtc ** Version 2 of the -- PCNFSD protocol.
547 1.1 jtc **
548 1.1 jtc ** -- PCNFSD2_NULL() = 0
549 1.1 jtc ** Null procedure - standard for all RPC programs.
550 1.1 jtc **
551 1.1 jtc ** -- PCNFSD2_INFO() = 1
552 1.1 jtc ** Determine which services are supported by this implementation
553 1.1 jtc ** of PCNFSD.
554 1.1 jtc **
555 1.1 jtc ** -- PCNFSD2_PR_INIT() = 2
556 1.1 jtc ** Prepare for remote printing: identify exporting spool directory.
557 1.1 jtc **
558 1.1 jtc ** -- PCNFSD2_PR_START() = 3
559 1.1 jtc ** Submit a spooled print job for printing: the print data is
560 1.1 jtc ** in a file created in the spool directory.
561 1.1 jtc **
562 1.1 jtc ** -- PCNFSD2_PR_LIST() = 4
563 1.1 jtc ** List all printers known on the server.
564 1.1 jtc **
565 1.1 jtc ** -- PCNFSD2_PR_QUEUE() = 5
566 1.1 jtc ** List all or part of the queued jobs for a printer.
567 1.1 jtc **
568 1.1 jtc ** -- PCNFSD2_PR_STATUS() = 6
569 1.1 jtc ** Determine the status of a printer.
570 1.1 jtc **
571 1.1 jtc ** -- PCNFSD2_PR_CANCEL() = 7
572 1.1 jtc ** Cancel a print job.
573 1.1 jtc **
574 1.1 jtc ** -- PCNFSD2_PR_ADMIN() = 8
575 1.1 jtc ** Perform an implementation-dependent printer administration
576 1.1 jtc ** operation.
577 1.1 jtc **
578 1.1 jtc ** -- PCNFSD2_PR_REQUEUE() = 9
579 1.1 jtc ** Change the queue position of a previously-submitted print job.
580 1.1 jtc **
581 1.1 jtc ** -- PCNFSD2_PR_HOLD() = 10
582 1.1 jtc ** Place a "hold" on a previously-submitted print job. The job
583 1.1 jtc ** will remain in the queue, but will not be printed.
584 1.1 jtc **
585 1.1 jtc ** -- PCNFSD2_PR_RELEASE() = 11
586 1.1 jtc ** Release the "hold" on a previously-held print job.
587 1.1 jtc **
588 1.1 jtc ** -- PCNFSD2_MAPID() = 12
589 1.1 jtc ** Perform one or more translations between user and group
590 1.1 jtc ** names and IDs.
591 1.1 jtc **
592 1.1 jtc ** -- PCNFSD2_AUTH() = 13
593 1.1 jtc ** Perform user authentication - map username, password into uid, gid;
594 1.1 jtc ** may also return secondary gids, home directory, umask.
595 1.1 jtc **
596 1.1 jtc ** -- PCNFSD2_ALERT() = 14
597 1.1 jtc ** Send a message to the system operator.
598 1.1 jtc */
599 1.1 jtc program PCNFSDPROG {
600 1.1 jtc version PCNFSDVERS {
601 1.1 jtc void PCNFSD_NULL(void) = 0;
602 1.1 jtc auth_results PCNFSD_AUTH(auth_args) = 1;
603 1.1 jtc pr_init_results PCNFSD_PR_INIT(pr_init_args) = 2;
604 1.1 jtc pr_start_results PCNFSD_PR_START(pr_start_args) = 3;
605 1.1 jtc } = 1;
606 1.1 jtc /*
607 1.1 jtc ** Version 2 of the PCNFSD protocol.
608 1.1 jtc */
609 1.1 jtc version PCNFSDV2 {
610 1.1 jtc void PCNFSD2_NULL(void) = 0;
611 1.1 jtc v2_info_results PCNFSD2_INFO(v2_info_args) = 1;
612 1.1 jtc v2_pr_init_results PCNFSD2_PR_INIT(v2_pr_init_args) = 2;
613 1.1 jtc v2_pr_start_results PCNFSD2_PR_START(v2_pr_start_args) = 3;
614 1.1 jtc v2_pr_list_results PCNFSD2_PR_LIST(void) = 4;
615 1.1 jtc v2_pr_queue_results PCNFSD2_PR_QUEUE(v2_pr_queue_args) = 5;
616 1.1 jtc v2_pr_status_results PCNFSD2_PR_STATUS(v2_pr_status_args) = 6;
617 1.1 jtc v2_pr_cancel_results PCNFSD2_PR_CANCEL(v2_pr_cancel_args) = 7;
618 1.1 jtc v2_pr_admin_results PCNFSD2_PR_ADMIN(v2_pr_admin_args) = 8;
619 1.1 jtc v2_pr_requeue_results PCNFSD2_PR_REQUEUE(v2_pr_requeue_args) = 9;
620 1.1 jtc v2_pr_hold_results PCNFSD2_PR_HOLD(v2_pr_hold_args) = 10;
621 1.1 jtc v2_pr_release_results PCNFSD2_PR_RELEASE(v2_pr_release_args) = 11;
622 1.1 jtc v2_mapid_results PCNFSD2_MAPID(v2_mapid_args) = 12;
623 1.1 jtc v2_auth_results PCNFSD2_AUTH(v2_auth_args) = 13;
624 1.1 jtc v2_alert_results PCNFSD2_ALERT(v2_alert_args) = 14;
625 1.1 jtc } = 2;
626 1.1 jtc
627 1.1 jtc } = 150001;
628 1.1 jtc
629 1.1 jtc /*
630 1.1 jtc ** The following forces a publically-visible msg_out()
631 1.1 jtc */
632 1.1 jtc %#if RPC_SVC
633 1.1 jtc % static void _msgout();
634 1.1 jtc % void msg_out(msg) char *msg; {_msgout(msg);}
635 1.1 jtc %#endif
636 1.1 jtc %#if RPC_HDR
637 1.1 jtc % extern void msg_out();
638 1.1 jtc %#endif
639