Bug 40837

Summary: Задания с jobname > 255 отвергаются
Product: Sisyphus Reporter: Anton V. Boyarshinov <boyarsh>
Component: cupsAssignee: Anton Farygin <rider>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P5 CC: george, lav, rider
Version: unstable   
Hardware: x86_64   
OS: Linux   

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.