Mercurial > illumos > illumos-gate
changeset 3917:9e19a8d4a355
6535980 psm-ipp needs IPP/1.1 compliance work
author | jacobs |
---|---|
date | Wed, 28 Mar 2007 18:46:25 -0700 |
parents | 1761dbf695ed |
children | 2f5f98948dce |
files | usr/src/lib/print/libpapi-ipp/common/ipp-support.c usr/src/lib/print/libpapi-ipp/common/job.c usr/src/lib/print/libpapi-ipp/common/papi_impl.h usr/src/lib/print/libpapi-ipp/common/printer.c |
diffstat | 4 files changed, 32 insertions(+), 47 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/lib/print/libpapi-ipp/common/ipp-support.c Wed Mar 28 17:57:31 2007 -0700 +++ b/usr/src/lib/print/libpapi-ipp/common/ipp-support.c Wed Mar 28 18:46:25 2007 -0700 @@ -20,7 +20,7 @@ */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * */ @@ -42,6 +42,9 @@ #include <ipp.h> +static void ipp_add_printer_uri(service_t *svc, char *name, + papi_attribute_t ***op); + papi_status_t http_to_papi_status(http_status_t status) { @@ -163,7 +166,7 @@ void ipp_initialize_operational_attributes(service_t *svc, papi_attribute_t ***op, - papi_attribute_t **attributes) + char *printer, int job_id) { char *charset = "utf-8"; /* default to UTF-8 encoding */ char *language = setlocale(LC_ALL, ""); @@ -174,18 +177,22 @@ * All IPP requests must contain the following: * attributes-charset (UTF-8) * attributes-natural-language (our current locale) - * requesting-user-name (process user) + * (object identifier) printer-uri/job-id or job-uri + * requesting-user-name (process user or none) */ - papiAttributeListGetString(attributes, NULL, - "attributes-charset", &charset); papiAttributeListAddString(op, PAPI_ATTR_EXCL, "attributes-charset", charset); - papiAttributeListGetString(attributes, NULL, - "attributes-natural-language", &language); papiAttributeListAddString(op, PAPI_ATTR_EXCL, "attributes-natural-language", language); + if (printer != NULL) + ipp_add_printer_uri(svc, printer, op); + + if ((printer != NULL) && (job_id >= 0)) + papiAttributeListAddInteger(op, PAPI_ATTR_EXCL, + "job-id", job_id); + if ((pw = getpwuid(getuid())) != NULL) user = pw->pw_name; /* @@ -195,8 +202,6 @@ if (geteuid() == 0) { if (svc->user != NULL) user = svc->user; - papiAttributeListGetString(attributes, NULL, - "requesting-user-name", &user); } papiAttributeListAddString(op, PAPI_ATTR_REPLACE, "requesting-user-name", user); @@ -225,7 +230,7 @@ return (PAPI_TEMPORARY_ERROR); ipp_initialize_request(svc, &request, OPID_CUPS_GET_DEFAULT); - ipp_initialize_operational_attributes(svc, &op, NULL); + ipp_initialize_operational_attributes(svc, &op, NULL, -1); papiAttributeListAddString(&op, PAPI_ATTR_APPEND, "requested-attributes", "printer-uri-supported"); papiAttributeListAddCollection(&request, PAPI_ATTR_REPLACE, @@ -253,7 +258,7 @@ return (result); } -void +static void ipp_add_printer_uri(service_t *svc, char *name, papi_attribute_t ***op) { char *uri = name;
--- a/usr/src/lib/print/libpapi-ipp/common/job.c Wed Mar 28 17:57:31 2007 -0700 +++ b/usr/src/lib/print/libpapi-ipp/common/job.c Wed Mar 28 18:46:25 2007 -0700 @@ -20,7 +20,7 @@ */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * */ @@ -125,8 +125,7 @@ ipp_initialize_request(svc, request, type); /* create an operational attributes group */ - ipp_initialize_operational_attributes(svc, &operational, NULL); - ipp_add_printer_uri(svc, printer, &operational); + ipp_initialize_operational_attributes(svc, &operational, printer, -1); /* split up the attributes into operational and job attributes */ split_and_copy_attributes(operational_names, attributes, @@ -156,11 +155,8 @@ ipp_initialize_request(svc, &request, type); /* create an operational attributes group */ - ipp_initialize_operational_attributes(svc, &op, NULL); - ipp_add_printer_uri(svc, printer, &op); + ipp_initialize_operational_attributes(svc, &op, printer, id); - papiAttributeListAddInteger(&op, PAPI_ATTR_REPLACE, "job-id", - id); papiAttributeListAddString(&op, PAPI_ATTR_REPLACE, "document-name", file); papiAttributeListAddBoolean(&op, PAPI_ATTR_REPLACE, "last-document", @@ -445,10 +441,8 @@ ipp_initialize_request(svc, &request, OPID_GET_JOB_ATTRIBUTES); - ipp_initialize_operational_attributes(svc, &op, NULL); - ipp_add_printer_uri(svc, printer, &op); + ipp_initialize_operational_attributes(svc, &op, printer, job_id); - papiAttributeListAddInteger(&op, PAPI_ATTR_REPLACE, "job-id", job_id); if (requested_attrs != NULL) { int i; @@ -491,10 +485,8 @@ ipp_initialize_request(svc, &request, type); - ipp_initialize_operational_attributes(svc, &op, NULL); - ipp_add_printer_uri(svc, printer, &op); + ipp_initialize_operational_attributes(svc, &op, printer, job_id); - papiAttributeListAddInteger(&op, PAPI_ATTR_REPLACE, "job-id", job_id); papiAttributeListAddCollection(&request, PAPI_ATTR_REPLACE, "operational-attributes-group", op); papiAttributeListFree(op); @@ -560,10 +552,8 @@ ipp_initialize_request(svc, &request, OPID_CUPS_MOVE_JOB); - ipp_initialize_operational_attributes(svc, &op, NULL); - ipp_add_printer_uri(svc, printer, &op); + ipp_initialize_operational_attributes(svc, &op, printer, job_id); - papiAttributeListAddInteger(&op, PAPI_ATTR_REPLACE, "job-id", job_id); papiAttributeListAddCollection(&request, PAPI_ATTR_REPLACE, "operational-attributes-group", op); papiAttributeListFree(op); @@ -605,10 +595,8 @@ ipp_initialize_request(svc, &request, OPID_SET_JOB_ATTRIBUTES); - ipp_initialize_operational_attributes(svc, &op, NULL); - ipp_add_printer_uri(svc, printer, &op); + ipp_initialize_operational_attributes(svc, &op, printer, job_id); - papiAttributeListAddInteger(&op, PAPI_ATTR_REPLACE, "job-id", job_id); papiAttributeListAddCollection(&request, PAPI_ATTR_REPLACE, "operational-attributes-group", op); papiAttributeListFree(op);
--- a/usr/src/lib/print/libpapi-ipp/common/papi_impl.h Wed Mar 28 17:57:31 2007 -0700 +++ b/usr/src/lib/print/libpapi-ipp/common/papi_impl.h Wed Mar 28 18:46:25 2007 -0700 @@ -20,7 +20,7 @@ */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * */ @@ -96,13 +96,10 @@ papi_attribute_t ***request, uint16_t type); extern void ipp_initialize_operational_attributes(service_t *svc, papi_attribute_t ***op, - papi_attribute_t **attributes); + char *printer, int job_id); extern papi_status_t ipp_to_papi_status(uint16_t status); extern papi_status_t http_to_papi_status(http_status_t status); -extern void ipp_add_printer_uri(service_t *svc, char *name, - papi_attribute_t ***op); - /* service related interfaces */ extern void detailed_error(service_t *svc, char *fmt, ...); extern papi_status_t service_connect(service_t *svc, char *service_name);
--- a/usr/src/lib/print/libpapi-ipp/common/printer.c Wed Mar 28 17:57:31 2007 -0700 +++ b/usr/src/lib/print/libpapi-ipp/common/printer.c Wed Mar 28 18:46:25 2007 -0700 @@ -20,7 +20,7 @@ */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * */ @@ -96,7 +96,7 @@ return (result); ipp_initialize_request(svc, &request, OPID_CUPS_GET_PRINTERS); - ipp_initialize_operational_attributes(svc, &op, NULL); + ipp_initialize_operational_attributes(svc, &op, NULL, -1); if (requested_attrs != NULL) { int i; @@ -156,8 +156,7 @@ ipp_initialize_request(svc, &request, OPID_GET_PRINTER_ATTRIBUTES); - ipp_initialize_operational_attributes(svc, &op, NULL); - ipp_add_printer_uri(svc, name, &op); + ipp_initialize_operational_attributes(svc, &op, name, -1); if (requested_attrs != NULL) { int i; @@ -200,8 +199,7 @@ ipp_initialize_request(svc, &request, type); - ipp_initialize_operational_attributes(svc, &op, NULL); - ipp_add_printer_uri(svc, name, &op); + ipp_initialize_operational_attributes(svc, &op, name, -1); switch (type) { case OPID_DISABLE_PRINTER: @@ -288,8 +286,7 @@ ipp_initialize_request(svc, &request, OPID_SET_PRINTER_ATTRIBUTES); - ipp_initialize_operational_attributes(svc, &op, NULL); - ipp_add_printer_uri(svc, name, &op); + ipp_initialize_operational_attributes(svc, &op, name, -1); papiAttributeListAddCollection(&request, PAPI_ATTR_REPLACE, "operational-attributes-group", op); @@ -336,8 +333,7 @@ ipp_initialize_request(svc, &request, OPID_PURGE_JOBS); - ipp_initialize_operational_attributes(svc, &op, NULL); - ipp_add_printer_uri(svc, name, &op); + ipp_initialize_operational_attributes(svc, &op, name, -1); papiAttributeListAddCollection(&request, PAPI_ATTR_REPLACE, "operational-attributes-group", op); @@ -385,8 +381,7 @@ ipp_initialize_request(svc, &request, OPID_GET_JOBS); - ipp_initialize_operational_attributes(svc, &op, NULL); - ipp_add_printer_uri(svc, name, &op); + ipp_initialize_operational_attributes(svc, &op, name, -1); if (requested_attrs != NULL) { int i;