Отсутствует атрибут IPP на CUPS-Get-Devices с использованием модуля ipp node.js

У меня проблема с отсутствующим обязательным атрибутом для CUPS-Get-Devices. В основном я хочу получить список доступных принтеров с IPP и CUPS, используя https://www.npmjs.org/package/ipp.

Я внедрил CUPS-Get-Devices в пакет, так как он не поддерживает атрибут для пакета, но у меня он работает. Проблема в том, что ответ отвечает «сообщением о статусе»: «Отсутствуют обязательные атрибуты». и не давая мне список принтеров.

var uri = "http://localhost:631"
var data = ipp.serialize({
  "operation": "CUPS-Get-Printers",
  "operation-attributes-tag": {
  "attributes-charset": 'utf-8',
  "attributes-natural-language": 'en-us',
  "limit": 10
 }
});

ipp.request(uri, data, function(err, res){
  if(err){
    return console.log(err);
  }
  console.log(JSON.stringify(res,null,2));
});

Ответ

{
  "version": "2.0",
  "statusCode": "client-error-bad-request",
  "id": 67392993,
  "operation-attributes-tag": {
    "attributes-charset": "utf-8",
    "attributes-natural-language": "en-us",
    "status-message": "Missing required attributes."
  }
}

В документации ничего не говорится о других обязательных параметрах http://www.cups.org/documentation.php/spec-ipp.html#CUPS_GET_PRINTERS

Кто-нибудь знает, где проблема? Спасибо!


person Jakub    schedule 26.06.2014    source источник


Ответы (1)


У меня этот код работает с немодифицированной библиотекой ipp и с CUPS 1.7.3. Я думаю, что вы сделали опечатку или что-то в этом роде, когда модифицировали библиотеку.

var ipp = require('ipp');

// Add missing operation code
ipp.operations['CUPS-Get-Printers'] = 0x4002;

// The rest is identical to your code:

var uri = "http://localhost:631";
var data = ipp.serialize({
  "operation": "CUPS-Get-Printers",
  "operation-attributes-tag": {
    "attributes-charset": 'utf-8',
    "attributes-natural-language": 'en-us',
    "limit": 10
  }
});

ipp.request(uri, data, function(err, res){
  if(err){
    return console.log(err);
  }
  console.log(JSON.stringify(res,null,2));
});
person pdw    schedule 05.07.2014