Bug 40837 - Задания с jobname > 255 отвергаются
Summary: Задания с jobname > 255 отвергаются
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: cups (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 enhancement
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-09-01 14:43 MSK by Anton V. Boyarshinov
Modified: 2025-03-04 17:37 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton V. Boyarshinov 2021-09-01 14:43:23 MSK
Задания с jobname > 255 отвергаются, при печати с Windows такая ситуация возникает с лёгкостью (особенно при печати из 1C).
При этом, что характерно, windows об ошибке не сообщает (но это мы исправить не можем).

Использование длинных jobname, насколько я могу судить не противоречит стандарту (вопреки тому, что написано в коде cups)

Нижеследующие 2 патча исправляют эту проблему, протестированы в production.

http://git.altlinux.org/people/boyarsh/packages/cups.git?p=cups.git;a=commit;h=417f09f2ee49b4587c20b6acfbd25dd10266ad6f
http://git.altlinux.org/people/boyarsh/packages/cups.git?p=cups.git;a=commit;h=e965e2210962fd2c49620788090d94a836538558
Comment 1 Anton Farygin 2025-03-04 17:37:09 MSK
В RFC 8011 в разделе 5.1.4 атрибут printer-name (который по сути и есть «имя очереди печати») определяется как значение типа name(MAX). В IPP (Internet Printing Protocol) тип name(MAX) обычно подразумевает максимально допустимую длину в 255 октетов, при этом исторически (ещё в RFC 2911) подчёркивалось, что ради лучшей совместимости рекомендуется не превышать 127 октетов.

Другими словами, формально верхний предел — 255 октетов, но рекомендуемая длина — не более 127. В самом тексте раздела 5.1.4 RFC 8011 это описано как обязательный (REQUIRED) атрибут, который должен быть удобен для отображения пользователям (User-Friendly Name), поэтому и существует рекомендация не выходить за рамки 127 октетов для совместимости с системами, которые могут не поддерживать более длинные строки.

Сейчас используется 255 октет по умолчанию, что полностью соотвествует RFC.