📄 rfc2569.txt
字号:
Herriot, et al. Experimental [Page 7]RFC 2569 Mapping between LPD and IPP Protocols April 1999 This sub-command is roughly equivalent to the IPP Create-Job operation. The mapper SHALL use the contents of the received LPD control file to create IPP operation attribute and job template attribute values to transmit with the Print-Job or Create-Job operation.3.2.3 Receive data fileSub-command syntax: %x3 number-of-bytes-in-data-file Name-of-data-file receive-data-file = %x03 number-of-bytes SP name-of-data-file LF number-of-bytes = 1*DIGIT name-of-data-file = "df" letter job-number client-host-name ; e.g. "dfA123woden for the first file letter = %x41-5A / %x61-7A ; "A" to "Z", "a" to "z" ; first file is "A", ; second "B", and 52nd file is "z" job-number = 3DIGIT client-host-name = <a host name> This sub-command is roughly equivalent to the IPP Send-Document operation. The mapper SHALL use the contents of the received LPD data file as the data to transmit with the IPP Print-Job or Send-Document operation. Although RFC 1179 alludes to a method for passing an unspecified length data file by using an octet-count of zero, no implementations support this feature. The mapper SHALL reject a job that has a value of 0 in the number-of-bytes field.3.3 Send queue state (short) Command syntax:send-queue-short = %x03 printer-name *(SP(user-name / job-number)) LF The mapper's response to this command includes information about the printer and its jobs. RFC 1179 specifies neither the information nor the format of its response. This document requires the mapper to follow existing practice as specified in this document. The mapper SHALL produce a response in the following format which consists of a printer-status line optionally followed by a heading line, and a list of jobs. This format is defined by examples below. Appendix A contains the ABNF syntax.Herriot, et al. Experimental [Page 8]RFC 2569 Mapping between LPD and IPP Protocols April 1999 For an printer with no jobs, the response starts in column 1 and is: no entries For a printer with jobs, an example of the response is: killtree is ready and printing Rank Owner Job Files Total Size active fred 123 stuff 1204 bytes 1st smith 124 resume, foo 34576 bytes 2nd fred 125 more 99 bytes 3rd mary 126 mydoc 378 bytes 4th jones 127 statistics.ps 4567 bytes 5th fred 128 data.txt 9 bytes The column numbers of above headings and job entries are: | | | | | 01 08 19 35 63 The mapper SHALL produce each field above from the following IPP attribute: LPD field IPP attribute special conversion details printer- printer-state and For a printer-state of idle or status printer-state-reasons processing, the mapper SHALL use the formats above. For stopped, the mapper SHALL use printer- state-reasons to produce an unspecified format for the error. rank number-of- the mapper SHALL the format above intervening-jobs owner job-originating-user- unspecified conversion; job- name originating-user-name may be the mapper's user-name job job-id the mapper shall use the job-id files document-name the mapper shall create a comma separated list of the document- names and then truncate this list to the first 24 characters total- job-k- the mapper shall multiple the size octets*copies*1024 value of job-k-octets by 1024 and by the value of the "copies" attribute.Herriot, et al. Experimental [Page 9]RFC 2569 Mapping between LPD and IPP Protocols April 1999 A mapper SHOULD use the job attribute number-of-intervening-jobs rather than the job's position in a list of jobs to determine 'rank' because a Printer may omit jobs that it wants to keep secret. If a printer doesn't support the job attribute number-of-intervening-jobs, a mapper MAY use the job's position. Note: a Printer may set the value of job-originating-user-name to the authenticated user or to the value of "requesting-user-name", depending on the implementation and configuration. For a gateway, the authenticated user is the user-id of the gateway, but the "requesting-user-name" may contain the name of the user who is the gateway's client. In order to obtain the information specified above, The LPD-to-IPP mapper SHALL use the Get-Printer-Attributes operation to get printer-status and SHOULD use the Get-Jobs operation to get information about all of the jobs. If the LPD command contains job- numbers or user-names, the mapper MAY handle the filtering of the response. If the LPD command contains job-numbers but no user-names, the mapper MAY use Get-Job-Attributes on each converted job-number rather than Get-Jobs. If the LPD command contains a single user-name but no job-numbers, the mapper MAY use Get-Jobs with the my-jobs option if the server supports this option and if the server allows the client to be a proxy for the LPD user. NOTE: This specification does not define how the mapper maps the LPD Printer-name operand to the IPP "printer-uri" operation attribute.3.4 Send queue state (long) Command syntax: send-queue-long = %x04 printer-name *(SP(user-name / job-number)) LF The mapper's response to this command includes information about the printer and its jobs. RFC 1179 specifies neither the information nor the format of its response. This document requires the mapper to follow existing practice as specified in this document. The mapper SHALL produce a response in the following format which consists of a printer-status line optionally followed a list of jobs, where each job consists of a blank line, a description line, and one line for each file. The description line contains the user-name, rank, job-number and host. This format is defined by examples below. Appendix B contain the ABNF syntax.Herriot, et al. Experimental [Page 10]RFC 2569 Mapping between LPD and IPP Protocols April 1999 For an printer with no jobs the response is: no entries For a printer with jobs, an example of the response is: killtree is ready and printing fred: active [job 123 tiger] 2 copies of stuff 602 bytes smith: 1st [job 124 snail] 2 copies of resume 7088 bytes 2 copies of foo 10200 bytes fred: 2nd [job 125 tiger] more 99 bytes The column numbers of above headings and job entries are: | | | 01 09 41 Although the format of the long form is different from the format of the short form, their fields are identical except for a) the copies and host fields which are only in the long form, and b) the "size" field contains the single copy size of each file. Thus the sum of the file sizes in the "size" field times the value of the "copies" field produces the value for the "Total Size" field in the short form. For fields other than the host and copies fields, see the preceding section. For the host field see the table below. LPD field IPP attribute special conversion details host unspecified conversion; job- originating-host may be the mapper's host copies copies the mapper shall assume the value of copies precedes the string "copies of "; otherwise, the value of copies is 1. NOTE: This specification does not define how the mapper maps the LPD Printer-name operand to the IPP printer-uri operation attribute.Herriot, et al. Experimental [Page 11]RFC 2569 Mapping between LPD and IPP Protocols April 19993.5 Remove jobs Command syntax: remove-jobs = %x05 printer-name SP agent *(SP(user-name / job-number)) LF The agent operand is the user-name of the user initiating the remove-jobs command. The special user-name 'root' indicates a privileged user who can remove jobs whose user-name differs from the agent. The mapper SHALL issue one Cancel-Job operation for each job referenced by the remove-jobs command. Each job-number in the remove-jobs command references a single job. Each user-name in the remove-jobs command implicitly references all jobs owned by the specified user. The active job is implicitly referenced when the remove-jobs command contains neither job-numbers nor user-names. The mapper MAY use Get-Jobs to determine the job-uri of implicitly referenced jobs. The mapper SHALL not use the agent name of 'root' when end-users cancel their own jobs. Violation of this rule creates a potential security violation, and it may cause the printer to issue a notification that misleads a user into thinking that some other person canceled the job. If the agent of a remove-jobs command for a job J is the same as the user name specified with the 'P' function in the control file for job J, then the mapper SHALL ensure that the initiator of the Cancel-Job command for job J is the same as job-originating-user for job J. Note: This requirement means that a mapper must be consistent in who the receiver perceives as the initiator of IPP operations. The mapper either acts as itself or acts on behalf of another user. The latter is preferable if it is possible. This consistency is necessary between Print-Job/Create-Job and Cancel-Job in order for Cancel-Job to work, but it is also desirable for other operations. For example, Get-Jobs may give more information about job submitted by the initiator of this operation. NOTE: This specification does not define how the mapper maps: (1) the LPD printer-name to the IPP "printer-uri" or (2) the LPD job-number to the IPP "job-uri". NOTE: This specification does not specify how the mapper maps the LPD user-name to the IPP job-originating-user because the mapper may use its own user-name with jobs.Herriot, et al. Experimental [Page 12]RFC 2569 Mapping between LPD and IPP Protocols April 19994. Mapping of LPD Control File Lines to IPP Operation and Job Template Attributes This section describes the mapping from LPD control file lines (called 'functions') to IPP operation attributes and job template attributes. The mapper receives the control file lines via the LPD receive-control-file sub-command. Each of the LPD functions appear as sub-sections of section 7 of RFC 1179. In LPD control file lines, the text operands have a maximum length of 31 or 99 while IPP operation attribute and job template attribute values have a maximum of 255 or 1023 octets, depending on the attribute syntax. Therefore, no data is lost. The mapper converts each supported LPD function to its corresponding IPP operation or job template attribute as defined by tables in the subsections that follow. These subsections group functions according to whether they are: - required with a job, - optional with a job - required with each document. In the tables below, each LPD value is given a name, such as 'h'. If an IPP value uses the LPD value, then the IPP value column contains the LPD name, such as 'h' to denote this. Otherwise, the IPP value column specifies the literal value.4.1 Required Job Functions The following LPD functions MUST be in a received LPD job. The mapper SHALL receive each of the following LPD functions and SHALL include the information as a operation or job template attribute with each IPP job. The functions SHOULD be in the order 'H', 'P' and they SHOULD be the first two functions in the control file, but they MAY be anywhere in the control file and in any order: LPD function IPP name value description name value H h Originating Host h (in security layer) P u User identification requesting- u (and in security user-name layer) none ipp- 'true' attribute- fidelityHerriot, et al. Experimental [Page 13]RFC 2569 Mapping between LPD and IPP Protocols April 1999 A mapper MAY send its own host rather than the client's host, and a mapper MAY send its own user-name as user identification rather than the client user. But in any case, the values sent SHALL be compatible with the Cancel-Job operation. The IPP operation MAY have no way to specify an originating host-name. The mapper SHALL include ipp-attribute-fidelity = true so that it doesn't have to determine which attributes a printer supports.4.2 Optional Job Functions The following LPD functions MAY be present in a received job. These functions SHOULD follow the required job functions and precede the document functions, but they MAY be anywhere in the control file. If the mapper receives such an LPD function, the mapper SHALL include the corresponding IPP attribute with the value converted as specified in the table below. If the mapper does not receive such an LPD attribute, the mapper SHALL NOT include the corresponding IPP attribute, except the 'L' LPD function whose absence has a special meaning as noted in the table. LPD function IPP name value description name value J j Job name for job-name j banner page L l Print banner page job-sheets 'standard' if 'L' is present 'none' if 'L' is present M m Mail When Printed IPP has no notification mechanism. To support this LPD feature, the gateway must poll using the Get-Job-Attributes operation.4.3 Required Document Functions The mapper SHALL receive one set of the required document functions with each copy of a document, and SHALL include the converted information as operation or job template attributes with each IPP document. If the control file contains required and recommended document functions, the required functions SHOULD precede the recommended ones and if the job contains multiple documents, all the functions forHerriot, et al. Experimental [Page 14]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -