From: Michael R Sweet Date: Mon, 1 Mar 2021 02:26:26 +0000 (-0500) Subject: Update man pages and other documentation. X-Git-Tag: v2.4b1~256 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b47dab17e44298e5485ae03b33bd1fbcf7492daf;p=thirdparty%2Fcups.git Update man pages and other documentation. - man/*: Point to OpenPrinting, add OpenPrinting copyright, update dates and URLS. - doc/help/cupspm.*: Add array, dir, file, and raster APIs to reference material. - doc/help/api-raster.html: Drop now that this content is in the CUPS PM. (still need to move the examples to the PM) - Rebuild all HTML documentation using the current codedoc and mantohtml. --- diff --git a/cups/Makefile b/cups/Makefile index 4e2aa6d37b..868fce018c 100644 --- a/cups/Makefile +++ b/cups/Makefile @@ -731,8 +731,9 @@ apihelp: $(RM) cupspm.xml codedoc --section "Programming" --body cupspm.md \ cupspm.xml \ - auth.c cups.h dest*.c encode.c http.h http*.c ipp.h ipp*.c \ - options.c tls-darwin.c usersys.c util.c \ + array.[ch] auth.c cups.h dest*.c dir.[ch] encode.c file.[ch] \ + http.h http*.c ipp.h ipp*.c options.c pwg.[ch] \ + raster.h raster-stubs.c tls-darwin.c usersys.c util.c \ --coverimage cupspm.png \ --epub ../doc/help/cupspm.epub codedoc --section "Programming" --body cupspm.md \ @@ -746,11 +747,6 @@ apihelp: --css ../doc/cups-printable.css \ --header api-ppd.header --body api-ppd.shtml \ ppd.h ppd-*.c raster-interstub.c >../doc/help/api-ppd.html - codedoc --section "Programming" --title "Raster API" \ - --css ../doc/cups-printable.css \ - --header api-raster.header --body api-raster.shtml \ - ../cups/raster.h raster-stubs.c \ - >../doc/help/api-raster.html codedoc --section "Programming" \ --title "Filter and Backend Programming" \ --css ../doc/cups-printable.css \ diff --git a/cups/cupspm.md b/cups/cupspm.md index f271c89d36..f619641506 100644 --- a/cups/cupspm.md +++ b/cups/cupspm.md @@ -1,11 +1,11 @@ --- title: CUPS Programming Manual author: Michael R Sweet -copyright: Copyright © 2007-2020 by Apple Inc. All Rights Reserved. -version: 2.3.4 +copyright: Copyright © 2021 by OpenPrinting. All Rights Reserved. +version: 2.4.0 ... -> Please [file issues on Github](https://github.com/apple/cups/issues) to +> Please [file issues on Github](https://github.com/openprinting/cups/issues) to > provide feedback on this document. @@ -46,8 +46,9 @@ standard management operations to control the state of those printers and jobs. > > CUPS printer drivers necessarily depend on specific file formats and certain > implementation details of the CUPS software. Please consult the Postscript -> and raster printer driver developer documentation on -> [CUPS.org](https://www.cups.org/documentation.html) for more information. +> and raster printer driver developer documentation on the +> [OpenPrinting CUPS web site](https://openprinting.github.io/cups) for more +> information. ## Terms Used in This Document diff --git a/doc/Makefile b/doc/Makefile index 505701dbd9..a568cc7ae4 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -45,7 +45,6 @@ HELPFILES = \ help/api-admin.html \ help/api-filter.html \ help/api-ppd.html \ - help/api-raster.html \ help/cgi.html \ help/cupspm.html \ help/encryption.html \ diff --git a/doc/help/api-admin.html b/doc/help/api-admin.html index f9969d4a9a..644d494f80 100644 --- a/doc/help/api-admin.html +++ b/doc/help/api-admin.html @@ -1,125 +1,126 @@ - + - - Administration APIs - - - - - - - - - + + +
- - Filter and Backend Programming - - - - - - - - - + + +
- - PPD API (DEPRECATED) - - - - - - - - - + + +
- - Raster API - - - - - - - - - - - -

Raster API

- -
- - - - - - - - - - - - - - - - -
Headercups/raster.h
Library-lcups
See AlsoProgramming: CUPS Programming Manual
- Programming: PPD API
- References: CUPS PPD Specification
- -
- - -

Overview

- -

The CUPS raster API provides a standard interface for reading and writing -CUPS raster streams which are used for printing to raster printers. Because the -raster format is updated from time to time, it is important to use this API to -avoid incompatibilities with newer versions of CUPS.

- -

Two kinds of CUPS filters use the CUPS raster API - raster image processor -(RIP) filters such as pstoraster and cgpdftoraster -(macOS) that produce CUPS raster files and printer driver filters that -convert CUPS raster files into a format usable by the printer. Printer -driver filters are by far the most common.

- -

CUPS raster files (application/vnd.cups-raster) consists of -a stream of raster page descriptions produced by one of the RIP filters such as -pstoraster, imagetoraster, or -cgpdftoraster. CUPS raster files are referred to using the -cups_raster_t type and are -opened using the cupsRasterOpen -function. For example, to read raster data from the standard input, open -file descriptor 0:

- -
-#include <cups/raster.h>
-
-cups_raster_t *ras = cupsRasterOpen(0, CUPS_RASTER_READ);
-
- -

Each page of data begins with a page dictionary structure called -cups_page_header2_t. This -structure contains the colorspace, bits per color, media size, media type, -hardware resolution, and so forth used for the page.

- -
Note: - -

Do not confuse the colorspace in the page header with the PPD - ColorModel keyword. ColorModel refers to the general type of - color used for a device (Gray, RGB, CMYK, DeviceN) and is often used to - select a particular colorspace for the page header along with the associate - color profile. The page header colorspace (cupsColorSpace) describes - both the type and organization of the color data, for example KCMY (black - first) instead of CMYK and RGBA (RGB + alpha) instead of RGB.

- -
- -

You read the page header using the -cupsRasterReadHeader2 -function:

- -
-#include <cups/raster.h>
-
-cups_raster_t *ras = cupsRasterOpen(0, CUPS_RASTER_READ);
-cups_page_header2_t header;
-
-while (cupsRasterReadHeader2(ras, &header))
-{
-  /* setup this page */
-
-  /* read raster data */
-
-  /* finish this page */
-}
-
- -

After the page dictionary comes the page data which is a full-resolution, -possibly compressed bitmap representing the page in the printer's output -colorspace. You read uncompressed raster data using the -cupsRasterReadPixels -function. A for loop is normally used to read the page one line -at a time:

- -
-#include <cups/raster.h>
-
-cups_raster_t *ras = cupsRasterOpen(0, CUPS_RASTER_READ);
-cups_page_header2_t header;
-int page = 0;
-int y;
-char *buffer;
-
-while (cupsRasterReadHeader2(ras, &header))
-{
-  /* setup this page */
-  page ++;
-  fprintf(stderr, "PAGE: %d %d\n", page, header.NumCopies);
-
-  /* allocate memory for 1 line */
-  buffer = malloc(header.cupsBytesPerLine);
-
-  /* read raster data */
-  for (y = 0; y < header.cupsHeight; y ++)
-  {
-    if (cupsRasterReadPixels(ras, buffer, header.cupsBytesPerLine) == 0)
-      break;
-
-    /* write raster data to printer on stdout */
-  }
-
-  /* finish this page */
-}
-
- -

When you are done reading the raster data, call the -cupsRasterClose function to free -the memory used to read the raster file:

- -
-cups_raster_t *ras;
-
-cupsRasterClose(ras);
-
- - -

Functions by Task

- -

Opening and Closing Raster Streams

- - - -

Reading Raster Streams

- - - -

Writing Raster Streams

- - -

Functions

-

cupsRasterClose

-

Close a raster stream.

-

-void cupsRasterClose(cups_raster_t *r);

-

Parameters

- - - -
rStream to close
-

Discussion

-

The file descriptor associated with the raster stream must be closed -separately as needed.

-

 CUPS 1.3/macOS 10.5 cupsRasterErrorString

-

Return the last error from a raster function.

-

-const char *cupsRasterErrorString(void);

-

Return Value

-

Last error or NULL

-

Discussion

-

If there are no recent errors, NULL is returned. - -

-

 CUPS 2.2/macOS 10.12 cupsRasterInitPWGHeader

-

Initialize a page header for PWG Raster output.

-

-int cupsRasterInitPWGHeader(cups_page_header2_t *h, pwg_media_t *media, const char *type, int xdpi, int ydpi, const char *sides, const char *sheet_back);

-

Parameters

- - - - - - - - - - - - - - - -
hPage header
mediaPWG media information
typePWG raster type string
xdpiCross-feed direction (horizontal) resolution
ydpiFeed direction (vertical) resolution
sidesIPP "sides" option value
sheet_backTransform for back side or NULL for none
-

Return Value

-

1 on success, 0 on failure

-

Discussion

-

The "media" argument specifies the media to use.
-
-The "type" argument specifies a "pwg-raster-document-type-supported" value -that controls the color space and bit depth of the raster data.
-
-The "xres" and "yres" arguments specify the raster resolution in dots per -inch.
-
-The "sheet_back" argument specifies a "pwg-raster-document-sheet-back" value -to apply for the back side of a page. Pass NULL for the front side. - -

-

cupsRasterOpen

-

Open a raster stream using a file descriptor.

-

-cups_raster_t *cupsRasterOpen(int fd, cups_mode_t mode);

-

Parameters

- - - - - -
fdFile descriptor
modeMode - CUPS_RASTER_READ, -CUPS_RASTER_WRITE, -CUPS_RASTER_WRITE_COMPRESSED, -or CUPS_RASTER_WRITE_PWG
-

Return Value

-

New stream

-

Discussion

-

This function associates a raster stream with the given file descriptor. -For most printer driver filters, "fd" will be 0 (stdin). For most raster -image processor (RIP) filters that generate raster data, "fd" will be 1 -(stdout).
-
-When writing raster data, the CUPS_RASTER_WRITE, -CUPS_RASTER_WRITE_COMPRESS, or CUPS_RASTER_WRITE_PWG mode can -be used - compressed and PWG output is generally 25-50% smaller but adds a -100-300% execution time overhead.

-

cupsRasterOpenIO

-

Open a raster stream using a callback function.

-

-cups_raster_t *cupsRasterOpenIO(cups_raster_iocb_t iocb, void *ctx, cups_mode_t mode);

-

Parameters

- - - - - - - -
iocbRead/write callback
ctxContext pointer for callback
modeMode - CUPS_RASTER_READ, -CUPS_RASTER_WRITE, -CUPS_RASTER_WRITE_COMPRESSED, -or CUPS_RASTER_WRITE_PWG
-

Return Value

-

New stream

-

Discussion

-

This function associates a raster stream with the given callback function and -context pointer.
-
-When writing raster data, the CUPS_RASTER_WRITE, -CUPS_RASTER_WRITE_COMPRESS, or CUPS_RASTER_WRITE_PWG mode can -be used - compressed and PWG output is generally 25-50% smaller but adds a -100-300% execution time overhead.

-

 DEPRECATED cupsRasterReadHeader

-

Read a raster page header and store it in a -version 1 page header structure.

-

-unsigned cupsRasterReadHeader(cups_raster_t *r, cups_page_header_t *h);

-

Parameters

- - - - - -
rRaster stream
hPointer to header data
-

Return Value

-

1 on success, 0 on failure/end-of-file

-

Discussion

-

This function is deprecated. Use cupsRasterReadHeader2 instead.
-
-Version 1 page headers were used in CUPS 1.0 and 1.1 and contain a subset -of the version 2 page header data. This function handles reading version 2 -page headers and copying only the version 1 data into the provided buffer. - -

-

 CUPS 1.2/macOS 10.5 cupsRasterReadHeader2

-

Read a raster page header and store it in a -version 2 page header structure.

-

-unsigned cupsRasterReadHeader2(cups_raster_t *r, cups_page_header2_t *h);

-

Parameters

- - - - - -
rRaster stream
hPointer to header data
-

Return Value

-

1 on success, 0 on failure/end-of-file

-

cupsRasterReadPixels

-

Read raster pixels.

-

-unsigned cupsRasterReadPixels(cups_raster_t *r, unsigned char *p, unsigned len);

-

Parameters

- - - - - - - -
rRaster stream
pPointer to pixel buffer
lenNumber of bytes to read
-

Return Value

-

Number of bytes read

-

Discussion

-

For best performance, filters should read one or more whole lines. -The "cupsBytesPerLine" value from the page header can be used to allocate -the line buffer and as the number of bytes to read.

-

 DEPRECATED cupsRasterWriteHeader

-

Write a raster page header from a version 1 page -header structure.

-

-unsigned cupsRasterWriteHeader(cups_raster_t *r, cups_page_header_t *h);

-

Parameters

- - - - - -
rRaster stream
hRaster page header
-

Return Value

-

1 on success, 0 on failure

-

Discussion

-

This function is deprecated. Use cupsRasterWriteHeader2 instead. - -

-

 CUPS 1.2/macOS 10.5 cupsRasterWriteHeader2

-

Write a raster page header from a version 2 -page header structure.

-

-unsigned cupsRasterWriteHeader2(cups_raster_t *r, cups_page_header2_t *h);

-

Parameters

- - - - - -
rRaster stream
hRaster page header
-

Return Value

-

1 on success, 0 on failure

-

Discussion

-

The page header can be initialized using cupsRasterInitPWGHeader. - -

-

cupsRasterWritePixels

-

Write raster pixels.

-

-unsigned cupsRasterWritePixels(cups_raster_t *r, unsigned char *p, unsigned len);

-

Parameters

- - - - - - - -
rRaster stream
pBytes to write
lenNumber of bytes to write
-

Return Value

-

Number of bytes written

-

Discussion

-

For best performance, filters should write one or more whole lines. -The "cupsBytesPerLine" value from the page header can be used to allocate -the line buffer and as the number of bytes to write.

-

Data Types

-

cups_adv_t

-

AdvanceMedia attribute values

-

-typedef enum cups_adv_e cups_adv_t; -

-

cups_bool_t

-

Boolean type

-

-typedef enum cups_bool_e cups_bool_t; -

-

cups_cspace_t

-

cupsColorSpace attribute values

-

-typedef enum cups_cspace_e cups_cspace_t; -

-

cups_cut_t

-

CutMedia attribute values

-

-typedef enum cups_cut_e cups_cut_t; -

-

cups_edge_t

-

LeadingEdge attribute values

-

-typedef enum cups_edge_e cups_edge_t; -

-

cups_jog_t

-

Jog attribute values

-

-typedef enum cups_jog_e cups_jog_t; -

-

cups_mode_t

-

cupsRasterOpen modes

-

-typedef enum cups_mode_e cups_mode_t; -

-

cups_order_t

-

cupsColorOrder attribute values

-

-typedef enum cups_order_e cups_order_t; -

-

cups_orient_t

-

Orientation attribute values

-

-typedef enum cups_orient_e cups_orient_t; -

-

 CUPS 1.2/macOS 10.5 cups_page_header2_t

-

Version 2 page header

-

-typedef struct cups_page_header2_s cups_page_header2_t; -

-

 DEPRECATED cups_page_header_t

-

Version 1 page header

-

-typedef struct cups_page_header_s cups_page_header_t; -

-

cups_raster_iocb_t

-

cupsRasterOpenIO callback function

-

-typedef ssize_t (*cups_raster_iocb_t)(void *ctx, unsigned char *buffer, size_t length); -

-

cups_raster_t

-

Raster stream data

-

-typedef struct _cups_raster_s cups_raster_t; -

-

Structures

-

 CUPS 1.2/macOS 10.5 cups_page_header2_s

-

Version 2 page header

-

struct cups_page_header2_s {
-    unsigned AdvanceDistance;
-    cups_adv_t AdvanceMedia;
-    cups_bool_t Collate;
-    cups_cut_t CutMedia;
-    cups_bool_t Duplex;
-    unsigned HWResolution[2];
-    unsigned ImagingBoundingBox[4];
-    cups_bool_t InsertSheet;
-    cups_jog_t Jog;
-    cups_edge_t LeadingEdge;
-    cups_bool_t ManualFeed;
-    unsigned Margins[2];
-    char MediaClass[64];
-    char MediaColor[64];
-    unsigned MediaPosition;
-    char MediaType[64];
-    unsigned MediaWeight;
-    cups_bool_t MirrorPrint;
-    cups_bool_t NegativePrint;
-    unsigned NumCopies;
-    cups_orient_t Orientation;
-    cups_bool_t OutputFaceUp;
-    char OutputType[64];
-    unsigned PageSize[2];
-    cups_bool_t Separations;
-    cups_bool_t TraySwitch;
-    cups_bool_t Tumble;
-    unsigned cupsBitsPerColor;
-    unsigned cupsBitsPerPixel;
-    float cupsBorderlessScalingFactor;
-    unsigned cupsBytesPerLine;
-    cups_order_t cupsColorOrder;
-    cups_cspace_t cupsColorSpace;
-    unsigned cupsCompression;
-    unsigned cupsHeight;
-    float cupsImagingBBox[4];
-    unsigned cupsInteger[16];
-    char cupsMarkerType[64];
-    unsigned cupsMediaType;
-    unsigned cupsNumColors;
-    char cupsPageSizeName[64];
-    float cupsPageSize[2];
-    float cupsReal[16];
-    char cupsRenderingIntent[64];
-    unsigned cupsRowCount;
-    unsigned cupsRowFeed;
-    unsigned cupsRowStep;
-    char cupsString[16][64];
-    unsigned cupsWidth;
-};

-

Members

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AdvanceDistance AdvanceDistance value in points
AdvanceMedia AdvanceMedia value (cups_adv_t)
Collate Collated copies value
CutMedia CutMedia value (cups_cut_t)
Duplex Duplexed (double-sided) value
HWResolution[2] Resolution in dots-per-inch
ImagingBoundingBox[4] Pixel region that is painted (points, left, bottom, right, top)
InsertSheet InsertSheet value
Jog Jog value (cups_jog_t)
LeadingEdge LeadingEdge value (cups_edge_t)
ManualFeed ManualFeed value
Margins[2] Lower-lefthand margins in points
MediaClass[64] MediaClass string
MediaColor[64] MediaColor string
MediaPosition MediaPosition value
MediaType[64] MediaType string
MediaWeight MediaWeight value in grams/m^2
MirrorPrint MirrorPrint value
NegativePrint NegativePrint value
NumCopies Number of copies to produce
Orientation Orientation value (cups_orient_t)
OutputFaceUp OutputFaceUp value
OutputType[64] OutputType string
PageSize[2] Width and length of page in points
Separations Separations value
TraySwitch TraySwitch value
Tumble Tumble value
cupsBitsPerColor Number of bits for each color
cupsBitsPerPixel Number of bits for each pixel
cupsBorderlessScalingFactor  CUPS 1.2/macOS 10.5 Scaling that was applied to page data
cupsBytesPerLine Number of bytes per line
cupsColorOrder Order of colors
cupsColorSpace True colorspace
cupsCompression Device compression to use
cupsHeight Height of page image in pixels
cupsImagingBBox[4]  CUPS 1.2/macOS 10.5 Floating point ImagingBoundingBox -(scaling factor not applied, left, -bottom, right, top)
cupsInteger[16]  CUPS 1.2/macOS 10.5 User-defined integer values
cupsMarkerType[64]  CUPS 1.2/macOS 10.5 Ink/toner type
cupsMediaType Media type code
cupsNumColors  CUPS 1.2/macOS 10.5 Number of color compoents
cupsPageSizeName[64]  CUPS 1.2/macOS 10.5 PageSize name
cupsPageSize[2]  CUPS 1.2/macOS 10.5 Floating point PageSize (scaling * -factor not applied)
cupsReal[16]  CUPS 1.2/macOS 10.5 User-defined floating-point values
cupsRenderingIntent[64]  CUPS 1.2/macOS 10.5 Color rendering intent
cupsRowCount Rows per band
cupsRowFeed Feed between bands
cupsRowStep Spacing between lines
cupsString[16][64]  CUPS 1.2/macOS 10.5 User-defined string values
cupsWidth Width of page image in pixels
-

 DEPRECATED cups_page_header_s

-

Version 1 page header

-

struct cups_page_header_s {
-    unsigned AdvanceDistance;
-    cups_adv_t AdvanceMedia;
-    cups_bool_t Collate;
-    cups_cut_t CutMedia;
-    cups_bool_t Duplex;
-    unsigned HWResolution[2];
-    unsigned ImagingBoundingBox[4];
-    cups_bool_t InsertSheet;
-    cups_jog_t Jog;
-    cups_edge_t LeadingEdge;
-    cups_bool_t ManualFeed;
-    unsigned Margins[2];
-    char MediaClass[64];
-    char MediaColor[64];
-    unsigned MediaPosition;
-    char MediaType[64];
-    unsigned MediaWeight;
-    cups_bool_t MirrorPrint;
-    cups_bool_t NegativePrint;
-    unsigned NumCopies;
-    cups_orient_t Orientation;
-    cups_bool_t OutputFaceUp;
-    char OutputType[64];
-    unsigned PageSize[2];
-    cups_bool_t Separations;
-    cups_bool_t TraySwitch;
-    cups_bool_t Tumble;
-    unsigned cupsBitsPerColor;
-    unsigned cupsBitsPerPixel;
-    unsigned cupsBytesPerLine;
-    cups_order_t cupsColorOrder;
-    cups_cspace_t cupsColorSpace;
-    unsigned cupsCompression;
-    unsigned cupsHeight;
-    unsigned cupsMediaType;
-    unsigned cupsRowCount;
-    unsigned cupsRowFeed;
-    unsigned cupsRowStep;
-    unsigned cupsWidth;
-};

-

Members

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AdvanceDistance AdvanceDistance value in points
AdvanceMedia AdvanceMedia value (cups_adv_t)
Collate Collated copies value
CutMedia CutMedia value (cups_cut_t)
Duplex Duplexed (double-sided) value
HWResolution[2] Resolution in dots-per-inch
ImagingBoundingBox[4] Pixel region that is painted (points, left, bottom, right, top)
InsertSheet InsertSheet value
Jog Jog value (cups_jog_t)
LeadingEdge LeadingEdge value (cups_edge_t)
ManualFeed ManualFeed value
Margins[2] Lower-lefthand margins in points
MediaClass[64] MediaClass string
MediaColor[64] MediaColor string
MediaPosition MediaPosition value
MediaType[64] MediaType string
MediaWeight MediaWeight value in grams/m^2
MirrorPrint MirrorPrint value
NegativePrint NegativePrint value
NumCopies Number of copies to produce
Orientation Orientation value (cups_orient_t)
OutputFaceUp OutputFaceUp value
OutputType[64] OutputType string
PageSize[2] Width and length of page in points
Separations Separations value
TraySwitch TraySwitch value
Tumble Tumble value
cupsBitsPerColor Number of bits for each color
cupsBitsPerPixel Number of bits for each pixel
cupsBytesPerLine Number of bytes per line
cupsColorOrder Order of colors
cupsColorSpace True colorspace
cupsCompression Device compression to use
cupsHeight Height of page image in pixels
cupsMediaType Media type code
cupsRowCount Rows per band
cupsRowFeed Feed between bands
cupsRowStep Spacing between lines
cupsWidth Width of page image in pixels
-

Constants

-

cups_adv_e

-

AdvanceMedia attribute values

-

Constants

- - - - - - -
CUPS_ADVANCE_FILE Advance the roll after this file
CUPS_ADVANCE_JOB Advance the roll after this job
CUPS_ADVANCE_NONE Never advance the roll
CUPS_ADVANCE_PAGE Advance the roll after this page
CUPS_ADVANCE_SET Advance the roll after this set
-

cups_bool_e

-

Boolean type

-

Constants

- - - -
CUPS_FALSE Logical false
CUPS_TRUE Logical true
-

cups_cspace_e

-

cupsColorSpace attribute values

-

Constants

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CUPS_CSPACE_ADOBERGB  CUPS 1.4.5  Red, green, blue (Adobe RGB)
CUPS_CSPACE_CIELab  CUPS 1.1.19/macOS 10.3  CIE Lab
CUPS_CSPACE_CIEXYZ  CUPS 1.1.19/macOS 10.3  CIE XYZ
CUPS_CSPACE_CMY Cyan, magenta, yellow (DeviceCMY)
CUPS_CSPACE_CMYK Cyan, magenta, yellow, black (DeviceCMYK)
CUPS_CSPACE_DEVICE1  CUPS 1.4.5  DeviceN, 1 color
CUPS_CSPACE_DEVICE2  CUPS 1.4.5  DeviceN, 2 colors
CUPS_CSPACE_DEVICE3  CUPS 1.4.5  DeviceN, 3 colors
CUPS_CSPACE_DEVICE4  CUPS 1.4.5  DeviceN, 4 colors
CUPS_CSPACE_DEVICE5  CUPS 1.4.5  DeviceN, 5 colors
CUPS_CSPACE_DEVICE6  CUPS 1.4.5  DeviceN, 6 colors
CUPS_CSPACE_DEVICE7  CUPS 1.4.5  DeviceN, 7 colors
CUPS_CSPACE_DEVICE8  CUPS 1.4.5  DeviceN, 8 colors
CUPS_CSPACE_DEVICE9  CUPS 1.4.5  DeviceN, 9 colors
CUPS_CSPACE_DEVICEA  CUPS 1.4.5  DeviceN, 10 colors
CUPS_CSPACE_DEVICEB  CUPS 1.4.5  DeviceN, 11 colors
CUPS_CSPACE_DEVICEC  CUPS 1.4.5  DeviceN, 12 colors
CUPS_CSPACE_DEVICED  CUPS 1.4.5  DeviceN, 13 colors
CUPS_CSPACE_DEVICEE  CUPS 1.4.5  DeviceN, 14 colors
CUPS_CSPACE_DEVICEF  CUPS 1.4.5  DeviceN, 15 colors
CUPS_CSPACE_GMCK  DEPRECATED  Gold, magenta, yellow, black
CUPS_CSPACE_GMCS  DEPRECATED  Gold, magenta, yellow, silver
CUPS_CSPACE_GOLD  DEPRECATED  Gold foil
CUPS_CSPACE_ICC1  CUPS 1.1.19/macOS 10.3  ICC-based, 1 color
CUPS_CSPACE_ICC2  CUPS 1.1.19/macOS 10.3  ICC-based, 2 colors
CUPS_CSPACE_ICC3  CUPS 1.1.19/macOS 10.3  ICC-based, 3 colors
CUPS_CSPACE_ICC4  CUPS 1.1.19/macOS 10.3  ICC-based, 4 colors
CUPS_CSPACE_ICC5  CUPS 1.1.19/macOS 10.3  ICC-based, 5 colors
CUPS_CSPACE_ICC6  CUPS 1.1.19/macOS 10.3  ICC-based, 6 colors
CUPS_CSPACE_ICC7  CUPS 1.1.19/macOS 10.3  ICC-based, 7 colors
CUPS_CSPACE_ICC8  CUPS 1.1.19/macOS 10.3  ICC-based, 8 colors
CUPS_CSPACE_ICC9  CUPS 1.1.19/macOS 10.3  ICC-based, 9 colors
CUPS_CSPACE_ICCA  CUPS 1.1.19/macOS 10.3  ICC-based, 10 colors
CUPS_CSPACE_ICCB  CUPS 1.1.19/macOS 10.3  ICC-based, 11 colors
CUPS_CSPACE_ICCC  CUPS 1.1.19/macOS 10.3  ICC-based, 12 colors
CUPS_CSPACE_ICCD  CUPS 1.1.19/macOS 10.3  ICC-based, 13 colors
CUPS_CSPACE_ICCE  CUPS 1.1.19/macOS 10.3  ICC-based, 14 colors
CUPS_CSPACE_ICCF  CUPS 1.1.19/macOS 10.3  ICC-based, 15 colors
CUPS_CSPACE_K Black (DeviceK)
CUPS_CSPACE_KCMY  DEPRECATED  Black, cyan, magenta, yellow
CUPS_CSPACE_KCMYcm  DEPRECATED  Black, cyan, magenta, yellow, light-cyan, light-magenta
CUPS_CSPACE_RGB Red, green, blue (DeviceRGB, sRGB by default)
CUPS_CSPACE_RGBA Red, green, blue, alpha (DeviceRGB, sRGB by default)
CUPS_CSPACE_RGBW  CUPS 1.2/macOS 10.5  Red, green, blue, white (DeviceRGB, sRGB by default)
CUPS_CSPACE_SILVER  DEPRECATED  Silver foil
CUPS_CSPACE_SRGB  CUPS 1.4.5  Red, green, blue (sRGB)
CUPS_CSPACE_SW  CUPS 1.4.5  Luminance (gamma 2.2)
CUPS_CSPACE_W Luminance (DeviceGray, gamma 2.2 by default)
CUPS_CSPACE_WHITE  DEPRECATED  White ink (as black)
CUPS_CSPACE_YMC  DEPRECATED  Yellow, magenta, cyan
CUPS_CSPACE_YMCK  DEPRECATED  Yellow, magenta, cyan, black
-

cups_cut_e

-

CutMedia attribute values

-

Constants

- - - - - - -
CUPS_CUT_FILE Cut the roll after this file
CUPS_CUT_JOB Cut the roll after this job
CUPS_CUT_NONE Never cut the roll
CUPS_CUT_PAGE Cut the roll after this page
CUPS_CUT_SET Cut the roll after this set
-

cups_edge_e

-

LeadingEdge attribute values

-

Constants

- - - - - -
CUPS_EDGE_BOTTOM Leading edge is the bottom of the page
CUPS_EDGE_LEFT Leading edge is the left of the page
CUPS_EDGE_RIGHT Leading edge is the right of the page
CUPS_EDGE_TOP Leading edge is the top of the page
-

cups_jog_e

-

Jog attribute values

-

Constants

- - - - - -
CUPS_JOG_FILE Move pages after this file
CUPS_JOG_JOB Move pages after this job
CUPS_JOG_NONE Never move pages
CUPS_JOG_SET Move pages after this set
-

cups_mode_e

-

cupsRasterOpen modes

-

Constants

- - - - - -
CUPS_RASTER_READ Open stream for reading
CUPS_RASTER_WRITE Open stream for writing
CUPS_RASTER_WRITE_COMPRESSED  CUPS 1.3/macOS 10.5  Open stream for compressed writing
CUPS_RASTER_WRITE_PWG  CUPS 1.5/macOS 10.7  Open stream for compressed writing in PWG Raster mode
-

cups_order_e

-

cupsColorOrder attribute values

-

Constants

- - - - -
CUPS_ORDER_BANDED CCC MMM YYY KKK ...
CUPS_ORDER_CHUNKED CMYK CMYK CMYK ...
CUPS_ORDER_PLANAR CCC ... MMM ... YYY ... KKK ...
-

cups_orient_e

-

Orientation attribute values

-

Constants

- - - - - -
CUPS_ORIENT_0 Don't rotate the page
CUPS_ORIENT_180 Turn the page upside down
CUPS_ORIENT_270 Rotate the page clockwise
CUPS_ORIENT_90 Rotate the page counter-clockwise
-
- - diff --git a/doc/help/cupspm.epub b/doc/help/cupspm.epub index 1d8572474a..56d5e0543a 100644 Binary files a/doc/help/cupspm.epub and b/doc/help/cupspm.epub differ diff --git a/doc/help/cupspm.html b/doc/help/cupspm.html index e9a80d9c3f..56a1f9cec2 100644 --- a/doc/help/cupspm.html +++ b/doc/help/cupspm.html @@ -1,115 +1,105 @@ - + - - CUPS Programming Manual - - - - - - - - - -

CUPS Programming Manual

-

Michael R Sweet

-

Copyright © 2007-2020 by Apple Inc. All Rights Reserved.

-
-

Contents

- -
-
-
-

Please file issues on Github to provide feedback on this document.

+ + +
+

CUPS Programming Manual

+

Michael R Sweet

+

Copyright © 2021 by OpenPrinting. All Rights Reserved.

+
+
+

Contents

+ +
+
+
+

Please file issues on Github to provide feedback on this document.

-

Introduction

-

CUPS provides the "cups" library to talk to the different parts of CUPS and with Internet Printing Protocol (IPP) printers. The "cups" library functions are accessed by including the <cups/cups.h> header.

-

CUPS is based on the Internet Printing Protocol ("IPP"), which allows clients (applications) to communicate with a server (the scheduler, printers, etc.) to get a list of destinations, send print jobs, and so forth. You identify which server you want to communicate with using a pointer to the opaque structure http_t. The CUPS_HTTP_DEFAULT constant can be used when you want to talk to the CUPS scheduler.

-

Guidelines

-

When writing software (other than printer drivers) that uses the "cups" library:

-
    -
  • Do not use undocumented or deprecated APIs,
  • -
  • Do not rely on pre-configured printers,
  • -
  • Do not assume that printers support specific features or formats, and
  • -
  • Do not rely on implementation details (PPDs, etc.)
  • +

    Introduction

    +

    CUPS provides the "cups" library to talk to the different parts of CUPS and with Internet Printing Protocol (IPP) printers. The "cups" library functions are accessed by including the <cups/cups.h> header.

    +

    CUPS is based on the Internet Printing Protocol ("IPP"), which allows clients (applications) to communicate with a server (the scheduler, printers, etc.) to get a list of destinations, send print jobs, and so forth. You identify which server you want to communicate with using a pointer to the opaque structure http_t. The CUPS_HTTP_DEFAULT constant can be used when you want to talk to the CUPS scheduler.

    +

    Guidelines

    +

    When writing software (other than printer drivers) that uses the "cups" library:

    +
      +
    • Do not use undocumented or deprecated APIs,

      +
    • +
    • Do not rely on pre-configured printers,

      +
    • +
    • Do not assume that printers support specific features or formats, and

      +
    • +
    • Do not rely on implementation details (PPDs, etc.)

      +
    -

    CUPS is designed to insulate users and developers from the implementation details of printers and file formats. The goal is to allow an application to supply a print file in a standard format with the user intent ("print four copies, two-sided on A4 media, and staple each copy") and have the printing system manage the printer communication and format conversion needed.

    -

    Similarly, printer and job management applications can use standard query operations to obtain the status information in a common, generic form and use standard management operations to control the state of those printers and jobs.

    -
    -

    Note:

    -

    CUPS printer drivers necessarily depend on specific file formats and certain implementation details of the CUPS software. Please consult the Postscript and raster printer driver developer documentation on CUPS.org for more information.

    +

    CUPS is designed to insulate users and developers from the implementation details of printers and file formats. The goal is to allow an application to supply a print file in a standard format with the user intent ("print four copies, two-sided on A4 media, and staple each copy") and have the printing system manage the printer communication and format conversion needed.

    +

    Similarly, printer and job management applications can use standard query operations to obtain the status information in a common, generic form and use standard management operations to control the state of those printers and jobs.

    +
    +

    Note:

    +

    CUPS printer drivers necessarily depend on specific file formats and certain implementation details of the CUPS software. Please consult the Postscript and raster printer driver developer documentation on the OpenPrinting CUPS web site for more information.

    -

    Terms Used in This Document

    -

    A Destination is a printer or print queue that accepts print jobs. A Print Job is a collection of one or more documents that are processed by a destination using options supplied when creating the job. A Document is a file (JPEG image, PDF file, etc.) suitable for printing. An Option controls some aspect of printing, such as the media used. Media is the sheets or roll that is printed on. An Attribute is an option encoded for an Internet Printing Protocol (IPP) request.

    -

    Compiling Programs That Use the CUPS API

    -

    The CUPS libraries can be used from any C, C++, or Objective C program. The method of compiling against the libraries varies depending on the operating system and installation of CUPS. The following sections show how to compile a simple program (shown below) in two common environments.

    -

    The following simple program lists the available destinations:

    -
    #include <stdio.h>
    +

    Terms Used in This Document

    +

    A Destination is a printer or print queue that accepts print jobs. A Print Job is a collection of one or more documents that are processed by a destination using options supplied when creating the job. A Document is a file (JPEG image, PDF file, etc.) suitable for printing. An Option controls some aspect of printing, such as the media used. Media is the sheets or roll that is printed on. An Attribute is an option encoded for an Internet Printing Protocol (IPP) request.

    +

    Compiling Programs That Use the CUPS API

    +

    The CUPS libraries can be used from any C, C++, or Objective C program. The method of compiling against the libraries varies depending on the operating system and installation of CUPS. The following sections show how to compile a simple program (shown below) in two common environments.

    +

    The following simple program lists the available destinations:

    +
    #include <stdio.h>
     #include <cups/cups.h>
     
     int print_dest(void *user_data, unsigned flags, cups_dest_t *dest)
    @@ -558,68 +736,89 @@ int main(void)
       return (0);
     }
     
    -

    Compiling with Xcode

    -

    In Xcode, choose New Project... from the File menu (or press SHIFT+CMD+N), then select the Command Line Tool under the macOS Application project type. Click Next and enter a name for the project, for example "firstcups". Click Next and choose a project directory. The click Next to create the project.

    -

    In the project window, click on the Build Phases group and expand the Link Binary with Libraries section. Click +, type "libcups" to show the library, and then double-click on libcups.tbd.

    -

    Finally, click on the main.c file in the sidebar and copy the example program to the file. Build and run (CMD+R) to see the list of destinations.

    -

    Compiling with GCC

    -

    From the command-line, create a file called simple.c using your favorite editor, copy the example to this file, and save. Then run the following command to compile it with GCC and run it:

    -
    gcc -o simple `cups-config --cflags` simple.c `cups-config --libs`
    +

    Compiling with Xcode

    +

    In Xcode, choose New Project... from the File menu (or press SHIFT+CMD+N), then select the Command Line Tool under the macOS Application project type. Click Next and enter a name for the project, for example "firstcups". Click Next and choose a project directory. The click Next to create the project.

    +

    In the project window, click on the Build Phases group and expand the Link Binary with Libraries section. Click +, type "libcups" to show the library, and then double-click on libcups.tbd.

    +

    Finally, click on the main.c file in the sidebar and copy the example program to the file. Build and run (CMD+R) to see the list of destinations.

    +

    Compiling with GCC

    +

    From the command-line, create a file called simple.c using your favorite editor, copy the example to this file, and save. Then run the following command to compile it with GCC and run it:

    +
    gcc -o simple `cups-config --cflags` simple.c `cups-config --libs`
     ./simple
     
    -

    The cups-config command provides the compiler flags (cups-config --cflags) and libraries (cups-config --libs) needed for the local system.

    -

    Working with Destinations

    -

    Destinations, which in CUPS represent individual printers or classes (collections or pools) of printers, are represented by the cups_dest_t structure which includes the name (name), instance (instance, saved options/settings), whether the destination is the default for the user (is_default), and the options and basic information associated with that destination (num_options and options).

    -

    Historically destinations have been manually maintained by the administrator of a system or network, but CUPS also supports dynamic discovery of destinations on the current network.

    -

    Finding Available Destinations

    -

    The cupsEnumDests function finds all of the available destinations:

    -
     int
    +

    The cups-config command provides the compiler flags (cups-config --cflags) and libraries (cups-config --libs) needed for the local system.

    +

    Working with Destinations

    +

    Destinations, which in CUPS represent individual printers or classes (collections or pools) of printers, are represented by the cups_dest_t structure which includes the name (name), instance (instance, saved options/settings), whether the destination is the default for the user (is_default), and the options and basic information associated with that destination (num_options and options).

    +

    Historically destinations have been manually maintained by the administrator of a system or network, but CUPS also supports dynamic discovery of destinations on the current network.

    +

    Finding Available Destinations

    +

    The cupsEnumDests function finds all of the available destinations:

    +
     int
      cupsEnumDests(unsigned flags, int msec, int *cancel,
                    cups_ptype_t type, cups_ptype_t mask,
                    cups_dest_cb_t cb, void *user_data)
     
    -

    The flags argument specifies enumeration options, which at present must be CUPS_DEST_FLAGS_NONE.

    -

    The msec argument specifies the maximum amount of time that should be used for enumeration in milliseconds - interactive applications should keep this value to 5000 or less when run on the main thread.

    -

    The cancel argument points to an integer variable that, when set to a non-zero value, will cause enumeration to stop as soon as possible. It can be NULL if not needed.

    -

    The type and mask arguments are bitfields that allow the caller to filter the destinations based on categories and/or capabilities. The destination's "printer-type" value is masked by the mask value and compared to the type value when filtering. For example, to only enumerate destinations that are hosted on the local system, pass CUPS_PRINTER_LOCAL for the type argument and CUPS_PRINTER_DISCOVERED for the mask argument. The following constants can be used for filtering:

    -
      -
    • CUPS_PRINTER_CLASS: A collection of destinations.
    • -
    • CUPS_PRINTER_FAX: A facsimile device.
    • -
    • CUPS_PRINTER_LOCAL: A local printer or class. This constant has the value 0 (no bits set) and is only used for the type argument and is paired with the CUPS_PRINTER_REMOTE or CUPS_PRINTER_DISCOVERED constant passed in the mask argument.
    • -
    • CUPS_PRINTER_REMOTE: A remote (shared) printer or class.
    • -
    • CUPS_PRINTER_DISCOVERED: An available network printer or class.
    • -
    • CUPS_PRINTER_BW: Can do B&W printing.
    • -
    • CUPS_PRINTER_COLOR: Can do color printing.
    • -
    • CUPS_PRINTER_DUPLEX: Can do two-sided printing.
    • -
    • CUPS_PRINTER_STAPLE: Can staple output.
    • -
    • CUPS_PRINTER_COLLATE: Can quickly collate copies.
    • -
    • CUPS_PRINTER_PUNCH: Can punch output.
    • -
    • CUPS_PRINTER_COVER: Can cover output.
    • -
    • CUPS_PRINTER_BIND: Can bind output.
    • -
    • CUPS_PRINTER_SORT: Can sort output (mailboxes, etc.)
    • -
    • CUPS_PRINTER_SMALL: Can print on Letter/Legal/A4-size media.
    • -
    • CUPS_PRINTER_MEDIUM: Can print on Tabloid/B/C/A3/A2-size media.
    • -
    • CUPS_PRINTER_LARGE: Can print on D/E/A1/A0-size media.
    • -
    • CUPS_PRINTER_VARIABLE: Can print on rolls and custom-size media.
    • +

      The flags argument specifies enumeration options, which at present must be CUPS_DEST_FLAGS_NONE.

      +

      The msec argument specifies the maximum amount of time that should be used for enumeration in milliseconds - interactive applications should keep this value to 5000 or less when run on the main thread.

      +

      The cancel argument points to an integer variable that, when set to a non-zero value, will cause enumeration to stop as soon as possible. It can be NULL if not needed.

      +

      The type and mask arguments are bitfields that allow the caller to filter the destinations based on categories and/or capabilities. The destination's "printer-type" value is masked by the mask value and compared to the type value when filtering. For example, to only enumerate destinations that are hosted on the local system, pass CUPS_PRINTER_LOCAL for the type argument and CUPS_PRINTER_DISCOVERED for the mask argument. The following constants can be used for filtering:

      +
        +
      • CUPS_PRINTER_CLASS: A collection of destinations.

        +
      • +
      • CUPS_PRINTER_FAX: A facsimile device.

        +
      • +
      • CUPS_PRINTER_LOCAL: A local printer or class. This constant has the value 0 (no bits set) and is only used for the type argument and is paired with the CUPS_PRINTER_REMOTE or CUPS_PRINTER_DISCOVERED constant passed in the mask argument.

        +
      • +
      • CUPS_PRINTER_REMOTE: A remote (shared) printer or class.

        +
      • +
      • CUPS_PRINTER_DISCOVERED: An available network printer or class.

        +
      • +
      • CUPS_PRINTER_BW: Can do B&W printing.

        +
      • +
      • CUPS_PRINTER_COLOR: Can do color printing.

        +
      • +
      • CUPS_PRINTER_DUPLEX: Can do two-sided printing.

        +
      • +
      • CUPS_PRINTER_STAPLE: Can staple output.

        +
      • +
      • CUPS_PRINTER_COLLATE: Can quickly collate copies.

        +
      • +
      • CUPS_PRINTER_PUNCH: Can punch output.

        +
      • +
      • CUPS_PRINTER_COVER: Can cover output.

        +
      • +
      • CUPS_PRINTER_BIND: Can bind output.

        +
      • +
      • CUPS_PRINTER_SORT: Can sort output (mailboxes, etc.)

        +
      • +
      • CUPS_PRINTER_SMALL: Can print on Letter/Legal/A4-size media.

        +
      • +
      • CUPS_PRINTER_MEDIUM: Can print on Tabloid/B/C/A3/A2-size media.

        +
      • +
      • CUPS_PRINTER_LARGE: Can print on D/E/A1/A0-size media.

        +
      • +
      • CUPS_PRINTER_VARIABLE: Can print on rolls and custom-size media.

        +
      -

      The cb argument specifies a function to call for every destination that is found:

      -
      typedef int (*cups_dest_cb_t)(void *user_data,
      +

      The cb argument specifies a function to call for every destination that is found:

      +
      typedef int (*cups_dest_cb_t)(void *user_data,
                                     unsigned flags,
                                     cups_dest_t *dest);
       
      -

      The callback function receives a copy of the user_data argument along with a bitfield (flags) and the destination that was found. The flags argument can have any of the following constant (bit) values set:

      -
        -
      • CUPS_DEST_FLAGS_MORE: There are more destinations coming.
      • -
      • CUPS_DEST_FLAGS_REMOVED: The destination has gone away and should be removed from the list of destinations a user can select.
      • -
      • CUPS_DEST_FLAGS_ERROR: An error occurred. The reason for the error can be found by calling the cupsLastError and/or cupsLastErrorString functions.
      • +

        The callback function receives a copy of the user_data argument along with a bitfield (flags) and the destination that was found. The flags argument can have any of the following constant (bit) values set:

        +
          +
        • CUPS_DEST_FLAGS_MORE: There are more destinations coming.

          +
        • +
        • CUPS_DEST_FLAGS_REMOVED: The destination has gone away and should be removed from the list of destinations a user can select.

          +
        • +
        • CUPS_DEST_FLAGS_ERROR: An error occurred. The reason for the error can be found by calling the cupsLastError and/or cupsLastErrorString functions.

          +
        -

        The callback function returns 0 to stop enumeration or 1 to continue.

        -
        -

        Note:

        -

        The callback function will likely be called multiple times for the same destination, so it is up to the caller to suppress any duplicate destinations.

        +

        The callback function returns 0 to stop enumeration or 1 to continue.

        +
        +

        Note:

        +

        The callback function will likely be called multiple times for the same destination, so it is up to the caller to suppress any duplicate destinations.

        -

        The following example shows how to use cupsEnumDests to get a filtered array of destinations:

        -
        typedef struct
        +

        The following example shows how to use cupsEnumDests to get a filtered array of destinations:

        +
        typedef struct
         {
           int num_dests;
           cups_dest_t *dests;
        @@ -685,63 +884,84 @@ my_get_dests(cups_ptype_t type, cups_ptype_t mask,
           return (user_data.num_dests);
         }
         
        -

        Basic Destination Information

        -

        The num_options and options members of the cups_dest_t structure provide basic attributes about the destination in addition to the user default options and values for that destination. The following names are predefined for various destination attributes:

        -
          -
        • "auth-info-required": The type of authentication required for printing to this destination: "none", "username,password", "domain,username,password", or "negotiate" (Kerberos).
        • -
        • "printer-info": The human-readable description of the destination such as "My Laser Printer".
        • -
        • "printer-is-accepting-jobs": "true" if the destination is accepting new jobs, "false" otherwise.
        • -
        • "printer-is-shared": "true" if the destination is being shared with other computers, "false" otherwise.
        • -
        • "printer-location": The human-readable location of the destination such as "Lab 4".
        • -
        • "printer-make-and-model": The human-readable make and model of the destination such as "ExampleCorp LaserPrinter 4000 Series".
        • -
        • "printer-state": "3" if the destination is idle, "4" if the destination is printing a job, and "5" if the destination is stopped.
        • -
        • "printer-state-change-time": The UNIX time when the destination entered the current state.
        • -
        • "printer-state-reasons": Additional comma-delimited state keywords for the destination such as "media-tray-empty-error" and "toner-low-warning".
        • -
        • "printer-type": The cups_ptype_t value associated with the destination.
        • -
        • "printer-uri-supported": The URI associated with the destination; if not set, this destination was discovered but is not yet setup as a local printer.
        • +

          Basic Destination Information

          +

          The num_options and options members of the cups_dest_t structure provide basic attributes about the destination in addition to the user default options and values for that destination. The following names are predefined for various destination attributes:

          +
            +
          • "auth-info-required": The type of authentication required for printing to this destination: "none", "username,password", "domain,username,password", or "negotiate" (Kerberos).

            +
          • +
          • "printer-info": The human-readable description of the destination such as "My Laser Printer".

            +
          • +
          • "printer-is-accepting-jobs": "true" if the destination is accepting new jobs, "false" otherwise.

            +
          • +
          • "printer-is-shared": "true" if the destination is being shared with other computers, "false" otherwise.

            +
          • +
          • "printer-location": The human-readable location of the destination such as "Lab 4".

            +
          • +
          • "printer-make-and-model": The human-readable make and model of the destination such as "ExampleCorp LaserPrinter 4000 Series".

            +
          • +
          • "printer-state": "3" if the destination is idle, "4" if the destination is printing a job, and "5" if the destination is stopped.

            +
          • +
          • "printer-state-change-time": The UNIX time when the destination entered the current state.

            +
          • +
          • "printer-state-reasons": Additional comma-delimited state keywords for the destination such as "media-tray-empty-error" and "toner-low-warning".

            +
          • +
          • "printer-type": The cups_ptype_t value associated with the destination.

            +
          • +
          • "printer-uri-supported": The URI associated with the destination; if not set, this destination was discovered but is not yet setup as a local printer.

            +
          -

          Use the cupsGetOption function to retrieve the value. For example, the following code gets the make and model of a destination:

          -
          const char *model = cupsGetOption("printer-make-and-model",
          +

          Use the cupsGetOption function to retrieve the value. For example, the following code gets the make and model of a destination:

          +
          const char *model = cupsGetOption("printer-make-and-model",
                                             dest->num_options,
                                             dest->options);
           
          -

          Detailed Destination Information

          -

          Once a destination has been chosen, the cupsCopyDestInfo function can be used to gather detailed information about the destination:

          -
          cups_dinfo_t *
          +

          Detailed Destination Information

          +

          Once a destination has been chosen, the cupsCopyDestInfo function can be used to gather detailed information about the destination:

          +
          cups_dinfo_t *
           cupsCopyDestInfo(http_t *http, cups_dest_t *dest);
           
          -

          The http argument specifies a connection to the CUPS scheduler and is typically the constant CUPS_HTTP_DEFAULT. The dest argument specifies the destination to query.

          -

          The cups_dinfo_t structure that is returned contains a snapshot of the supported options and their supported, ready, and default values. It also can report constraints between different options and values, and recommend changes to resolve those constraints.

          -

          Getting Supported Options and Values

          -

          The cupsCheckDestSupported function can be used to test whether a particular option or option and value is supported:

          -
          int
          +

          The http argument specifies a connection to the CUPS scheduler and is typically the constant CUPS_HTTP_DEFAULT. The dest argument specifies the destination to query.

          +

          The cups_dinfo_t structure that is returned contains a snapshot of the supported options and their supported, ready, and default values. It also can report constraints between different options and values, and recommend changes to resolve those constraints.

          +

          Getting Supported Options and Values

          +

          The cupsCheckDestSupported function can be used to test whether a particular option or option and value is supported:

          +
          int
           cupsCheckDestSupported(http_t *http, cups_dest_t *dest,
                                  cups_dinfo_t *info,
                                  const char *option,
                                  const char *value);
           
          -

          The option argument specifies the name of the option to check. The following constants can be used to check the various standard options:

          -
            -
          • CUPS_COPIES: Controls the number of copies that are produced.
          • -
          • CUPS_FINISHINGS: A comma-delimited list of integer constants that control the finishing processes that are applied to the job, including stapling, punching, and folding.
          • -
          • CUPS_MEDIA: Controls the media size that is used, typically one of the following: CUPS_MEDIA_3X5, CUPS_MEDIA_4X6, CUPS_MEDIA_5X7, CUPS_MEDIA_8X10, CUPS_MEDIA_A3, CUPS_MEDIA_A4, CUPS_MEDIA_A5, CUPS_MEDIA_A6, CUPS_MEDIA_ENV10, CUPS_MEDIA_ENVDL, CUPS_MEDIA_LEGAL, CUPS_MEDIA_LETTER, CUPS_MEDIA_PHOTO_L, CUPS_MEDIA_SUPERBA3, or CUPS_MEDIA_TABLOID.
          • -
          • CUPS_MEDIA_SOURCE: Controls where the media is pulled from, typically either CUPS_MEDIA_SOURCE_AUTO or CUPS_MEDIA_SOURCE_MANUAL.
          • -
          • CUPS_MEDIA_TYPE: Controls the type of media that is used, typically one of the following: CUPS_MEDIA_TYPE_AUTO, CUPS_MEDIA_TYPE_ENVELOPE, CUPS_MEDIA_TYPE_LABELS, CUPS_MEDIA_TYPE_LETTERHEAD, CUPS_MEDIA_TYPE_PHOTO, CUPS_MEDIA_TYPE_PHOTO_GLOSSY, CUPS_MEDIA_TYPE_PHOTO_MATTE, CUPS_MEDIA_TYPE_PLAIN, or CUPS_MEDIA_TYPE_TRANSPARENCY.
          • -
          • CUPS_NUMBER_UP: Controls the number of document pages that are placed on each media side.
          • -
          • CUPS_ORIENTATION: Controls the orientation of document pages placed on the media: CUPS_ORIENTATION_PORTRAIT or CUPS_ORIENTATION_LANDSCAPE.
          • -
          • CUPS_PRINT_COLOR_MODE: Controls whether the output is in color (CUPS_PRINT_COLOR_MODE_COLOR), grayscale (CUPS_PRINT_COLOR_MODE_MONOCHROME), or either (CUPS_PRINT_COLOR_MODE_AUTO).
          • -
          • CUPS_PRINT_QUALITY: Controls the generate quality of the output: CUPS_PRINT_QUALITY_DRAFT, CUPS_PRINT_QUALITY_NORMAL, or CUPS_PRINT_QUALITY_HIGH.
          • -
          • CUPS_SIDES: Controls whether prints are placed on one or both sides of the media: CUPS_SIDES_ONE_SIDED, CUPS_SIDES_TWO_SIDED_PORTRAIT, or CUPS_SIDES_TWO_SIDED_LANDSCAPE.
          • +

            The option argument specifies the name of the option to check. The following constants can be used to check the various standard options:

            +
              +
            • CUPS_COPIES: Controls the number of copies that are produced.

              +
            • +
            • CUPS_FINISHINGS: A comma-delimited list of integer constants that control the finishing processes that are applied to the job, including stapling, punching, and folding.

              +
            • +
            • CUPS_MEDIA: Controls the media size that is used, typically one of the following: CUPS_MEDIA_3X5, CUPS_MEDIA_4X6, CUPS_MEDIA_5X7, CUPS_MEDIA_8X10, CUPS_MEDIA_A3, CUPS_MEDIA_A4, CUPS_MEDIA_A5, CUPS_MEDIA_A6, CUPS_MEDIA_ENV10, CUPS_MEDIA_ENVDL, CUPS_MEDIA_LEGAL, CUPS_MEDIA_LETTER, CUPS_MEDIA_PHOTO_L, CUPS_MEDIA_SUPERBA3, or CUPS_MEDIA_TABLOID.

              +
            • +
            • CUPS_MEDIA_SOURCE: Controls where the media is pulled from, typically either CUPS_MEDIA_SOURCE_AUTO or CUPS_MEDIA_SOURCE_MANUAL.

              +
            • +
            • CUPS_MEDIA_TYPE: Controls the type of media that is used, typically one of the following: CUPS_MEDIA_TYPE_AUTO, CUPS_MEDIA_TYPE_ENVELOPE, CUPS_MEDIA_TYPE_LABELS, CUPS_MEDIA_TYPE_LETTERHEAD, CUPS_MEDIA_TYPE_PHOTO, CUPS_MEDIA_TYPE_PHOTO_GLOSSY, CUPS_MEDIA_TYPE_PHOTO_MATTE, CUPS_MEDIA_TYPE_PLAIN, or CUPS_MEDIA_TYPE_TRANSPARENCY.

              +
            • +
            • CUPS_NUMBER_UP: Controls the number of document pages that are placed on each media side.

              +
            • +
            • CUPS_ORIENTATION: Controls the orientation of document pages placed on the media: CUPS_ORIENTATION_PORTRAIT or CUPS_ORIENTATION_LANDSCAPE.

              +
            • +
            • CUPS_PRINT_COLOR_MODE: Controls whether the output is in color (CUPS_PRINT_COLOR_MODE_COLOR), grayscale (CUPS_PRINT_COLOR_MODE_MONOCHROME), or either (CUPS_PRINT_COLOR_MODE_AUTO).

              +
            • +
            • CUPS_PRINT_QUALITY: Controls the generate quality of the output: CUPS_PRINT_QUALITY_DRAFT, CUPS_PRINT_QUALITY_NORMAL, or CUPS_PRINT_QUALITY_HIGH.

              +
            • +
            • CUPS_SIDES: Controls whether prints are placed on one or both sides of the media: CUPS_SIDES_ONE_SIDED, CUPS_SIDES_TWO_SIDED_PORTRAIT, or CUPS_SIDES_TWO_SIDED_LANDSCAPE.

              +
            -

            If the value argument is NULL, the cupsCheckDestSupported function returns whether the option is supported by the destination. Otherwise, the function returns whether the specified value of the option is supported.

            -

            The cupsFindDestSupported function returns the IPP attribute containing the supported values for a given option:

            -
             ipp_attribute_t *
            +

            If the value argument is NULL, the cupsCheckDestSupported function returns whether the option is supported by the destination. Otherwise, the function returns whether the specified value of the option is supported.

            +

            The cupsFindDestSupported function returns the IPP attribute containing the supported values for a given option:

            +
             ipp_attribute_t *
              cupsFindDestSupported(http_t *http, cups_dest_t *dest,
                                    cups_dinfo_t *dinfo,
                                    const char *option);
             
            -

            For example, the following code prints the supported finishing processes for a destination, if any, to the standard output:

            -
            cups_dinfo_t *info = cupsCopyDestInfo(CUPS_HTTP_DEFAULT,
            +

            For example, the following code prints the supported finishing processes for a destination, if any, to the standard output:

            +
            cups_dinfo_t *info = cupsCopyDestInfo(CUPS_HTTP_DEFAULT,
                                                   dest);
             
             if (cupsCheckDestSupported(CUPS_HTTP_DEFAULT, dest, info,
            @@ -759,8 +979,8 @@ if (cupsCheckDestSupported(CUPS_HTTP_DEFAULT, dest, info,
             else
               puts("finishings not supported.");
             
            -

            The "job-creation-attributes" option can be queried to get a list of supported options. For example, the following code prints the list of supported options to the standard output:

            -
            ipp_attribute_t *attrs =
            +

            The "job-creation-attributes" option can be queried to get a list of supported options. For example, the following code prints the list of supported options to the standard output:

            +
            ipp_attribute_t *attrs =
                 cupsFindDestSupported(CUPS_HTTP_DEFAULT, dest, info,
                                       "job-creation-attributes");
             int i, count = ippGetCount(attrs);
            @@ -768,15 +988,15 @@ int i, count = ippGetCount(attrs);
             for (i = 0; i < count; i ++)
               puts(ippGetString(attrs, i, NULL));
             
            -

            Getting Default Values

            -

            There are two sets of default values - user defaults that are available via the num_options and options members of the cups_dest_t structure, and destination defaults that available via the cups_dinfo_t structure and the cupsFindDestDefault function which returns the IPP attribute containing the default value(s) for a given option:

            -
            ipp_attribute_t *
            +

            Getting Default Values

            +

            There are two sets of default values - user defaults that are available via the num_options and options members of the cups_dest_t structure, and destination defaults that available via the cups_dinfo_t structure and the cupsFindDestDefault function which returns the IPP attribute containing the default value(s) for a given option:

            +
            ipp_attribute_t *
             cupsFindDestDefault(http_t *http, cups_dest_t *dest,
                                 cups_dinfo_t *dinfo,
                                 const char *option);
             
            -

            The user defaults from cupsGetOption should always take preference over the destination defaults. For example, the following code prints the default finishings value(s) to the standard output:

            -
            const char *def_value =
            +

            The user defaults from cupsGetOption should always take preference over the destination defaults. For example, the following code prints the default finishings value(s) to the standard output:

            +
            const char *def_value =
                 cupsGetOption(CUPS_FINISHINGS, dest->num_options,
                               dest->options);
             ipp_attribute_t *def_attr =
            @@ -798,15 +1018,15 @@ else
               putchar('\n');
             }
             
            -

            Getting Ready (Loaded) Values

            -

            The finishings and media options also support queries for the ready, or loaded, values. For example, a printer may have punch and staple finishers installed but be out of staples - the supported values will list both punch and staple finishing processes but the ready values will only list the punch processes. Similarly, a printer may support hundreds of different sizes of media but only have a single size loaded at any given time - the ready values are limited to the media that is actually in the printer.

            -

            The cupsFindDestReady function finds the IPP attribute containing the ready values for a given option:

            -
            ipp_attribute_t *
            +

            Getting Ready (Loaded) Values

            +

            The finishings and media options also support queries for the ready, or loaded, values. For example, a printer may have punch and staple finishers installed but be out of staples - the supported values will list both punch and staple finishing processes but the ready values will only list the punch processes. Similarly, a printer may support hundreds of different sizes of media but only have a single size loaded at any given time - the ready values are limited to the media that is actually in the printer.

            +

            The cupsFindDestReady function finds the IPP attribute containing the ready values for a given option:

            +
            ipp_attribute_t *
             cupsFindDestReady(http_t *http, cups_dest_t *dest,
                               cups_dinfo_t *dinfo, const char *option);
             
            -

            For example, the following code lists the ready finishing processes:

            -
            ipp_attribute_t *ready_finishings =
            +

            For example, the following code lists the ready finishing processes:

            +
            ipp_attribute_t *ready_finishings =
                 cupsFindDestReady(CUPS_HTTP_DEFAULT, dest, info,
                                   CUPS_FINISHINGS);
             
            @@ -821,18 +1041,18 @@ if (ready_finishings != NULL)
             else
               puts("no finishings are ready.");
             
            -

            Media Size Options

            -

            CUPS provides functions for querying the dimensions and margins for each of the supported media size options. The cups_size_t structure is used to describe a media size:

            -
            typedef struct cups_size_s
            +

            Media Size Options

            +

            CUPS provides functions for querying the dimensions and margins for each of the supported media size options. The cups_size_t structure is used to describe a media size:

            +
            typedef struct cups_size_s
             {
               char media[128];
               int width, length;
               int bottom, left, right, top;
             } cups_size_t;
             
            -

            The width and length members specify the dimensions of the media in hundredths of millimeters (1/2540th of an inch). The bottom, left, right, and top members specify the margins of the printable area, also in hundredths of millimeters.

            -

            The cupsGetDestMediaByName and cupsGetDestMediaBySize functions lookup the media size information using a standard media size name or dimensions in hundredths of millimeters:

            -
            int
            +

            The width and length members specify the dimensions of the media in hundredths of millimeters (1/2540th of an inch). The bottom, left, right, and top members specify the margins of the printable area, also in hundredths of millimeters.

            +

            The cupsGetDestMediaByName and cupsGetDestMediaBySize functions lookup the media size information using a standard media size name or dimensions in hundredths of millimeters:

            +
            int
             cupsGetDestMediaByName(http_t *http, cups_dest_t *dest,
                                    cups_dinfo_t *dinfo,
                                    const char *media,
            @@ -844,17 +1064,22 @@ cupsGetDestMediaBySize(http_t *http, cups_dest_t *dest,
                                    int width, int length,
                                    unsigned flags, cups_size_t *size);
             
            -

            The media, width, and length arguments specify the size to lookup. The flags argument specifies a bitfield controlling various lookup options:

            -
              -
            • CUPS_MEDIA_FLAGS_DEFAULT: Find the closest size supported by the printer.
            • -
            • CUPS_MEDIA_FLAGS_BORDERLESS: Find a borderless size.
            • -
            • CUPS_MEDIA_FLAGS_DUPLEX: Find a size compatible with two-sided printing.
            • -
            • CUPS_MEDIA_FLAGS_EXACT: Find an exact match for the size.
            • -
            • CUPS_MEDIA_FLAGS_READY: If the printer supports media sensing or configuration of the media in each tray/source, find the size amongst the "ready" media.
            • +

              The media, width, and length arguments specify the size to lookup. The flags argument specifies a bitfield controlling various lookup options:

              +
                +
              • CUPS_MEDIA_FLAGS_DEFAULT: Find the closest size supported by the printer.

                +
              • +
              • CUPS_MEDIA_FLAGS_BORDERLESS: Find a borderless size.

                +
              • +
              • CUPS_MEDIA_FLAGS_DUPLEX: Find a size compatible with two-sided printing.

                +
              • +
              • CUPS_MEDIA_FLAGS_EXACT: Find an exact match for the size.

                +
              • +
              • CUPS_MEDIA_FLAGS_READY: If the printer supports media sensing or configuration of the media in each tray/source, find the size amongst the "ready" media.

                +
              -

              If a matching size is found for the destination, the size information is stored in the structure pointed to by the size argument and 1 is returned. Otherwise 0 is returned.

              -

              For example, the following code prints the margins for two-sided printing on US Letter media:

              -
              cups_size_t size;
              +

              If a matching size is found for the destination, the size information is stored in the structure pointed to by the size argument and 1 is returned. Otherwise 0 is returned.

              +

              For example, the following code prints the margins for two-sided printing on US Letter media:

              +
              cups_size_t size;
               
               if (cupsGetDestMediaByName(CUPS_HTTP_DEFAULT, dest, info,
                                          CUPS_MEDIA_LETTER,
              @@ -869,8 +1094,8 @@ if (cupsGetDestMediaByName(CUPS_HTTP_DEFAULT, dest, info,
               else
                 puts("Margins for duplex US Letter are not available.");
               
              -

              You can also enumerate all of the sizes that match a given flags value using the cupsGetDestMediaByIndex and cupsGetDestMediaCount functions:

              -
              int
              +

              You can also enumerate all of the sizes that match a given flags value using the cupsGetDestMediaByIndex and cupsGetDestMediaCount functions:

              +
              int
               cupsGetDestMediaByIndex(http_t *http, cups_dest_t *dest,
                                       cups_dinfo_t *dinfo, int n,
                                       unsigned flags, cups_size_t *size);
              @@ -879,8 +1104,8 @@ int
               cupsGetDestMediaCount(http_t *http, cups_dest_t *dest,
                                     cups_dinfo_t *dinfo, unsigned flags);
               
              -

              For example, the following code prints the list of ready media and corresponding margins:

              -
              cups_size_t size;
              +

              For example, the following code prints the list of ready media and corresponding margins:

              +
              cups_size_t size;
               int i;
               int count = cupsGetDestMediaCount(CUPS_HTTP_DEFAULT,
                                                 dest, info,
              @@ -902,15 +1127,15 @@ for (i = 0; i < count; i ++)
                 }
               }
               
              -

              Finally, the cupsGetDestMediaDefault function returns the default media size:

              -
              int
              +

              Finally, the cupsGetDestMediaDefault function returns the default media size:

              +
              int
               cupsGetDestMediaDefault(http_t *http, cups_dest_t *dest,
                                       cups_dinfo_t *dinfo, unsigned flags,
                                       cups_size_t *size);
               
              -

              Localizing Options and Values

              -

              CUPS provides three functions to get localized, human-readable strings in the user's current locale for options and values: cupsLocalizeDestMedia, cupsLocalizeDestOption, and cupsLocalizeDestValue:

              -
              const char *
              +

              Localizing Options and Values

              +

              CUPS provides three functions to get localized, human-readable strings in the user's current locale for options and values: cupsLocalizeDestMedia, cupsLocalizeDestOption, and cupsLocalizeDestValue:

              +
              const char *
               cupsLocalizeDestMedia(http_t *http, cups_dest_t *dest,
                                     cups_dinfo_t *info, unsigned flags,
                                     cups_size_t *size);
              @@ -925,18 +1150,18 @@ cupsLocalizeDestValue(http_t *http, cups_dest_t *dest,
                                     cups_dinfo_t *info,
                                     const char *option, const char *value);
               
              -

              Submitting a Print Job

              -

              Once you are ready to submit a print job, you create a job using the cupsCreateDestJob function:

              -
              ipp_status_t
              +

              Submitting a Print Job

              +

              Once you are ready to submit a print job, you create a job using the cupsCreateDestJob function:

              +
              ipp_status_t
               cupsCreateDestJob(http_t *http, cups_dest_t *dest,
                                 cups_dinfo_t *info, int *job_id,
                                 const char *title, int num_options,
                                 cups_option_t *options);
               
              -

              The title argument specifies a name for the print job such as "My Document". The num_options and options arguments specify the options for the print job which are allocated using the cupsAddOption function.

              -

              When successful, the job's numeric identifier is stored in the integer pointed to by the job_id argument and IPP_STATUS_OK is returned. Otherwise, an IPP error status is returned.

              -

              For example, the following code creates a new job that will print 42 copies of a two-sided US Letter document:

              -
              int job_id = 0;
              +

              The title argument specifies a name for the print job such as "My Document". The num_options and options arguments specify the options for the print job which are allocated using the cupsAddOption function.

              +

              When successful, the job's numeric identifier is stored in the integer pointed to by the job_id argument and IPP_STATUS_OK is returned. Otherwise, an IPP error status is returned.

              +

              For example, the following code creates a new job that will print 42 copies of a two-sided US Letter document:

              +
              int job_id = 0;
               int num_options = 0;
               cups_option_t *options = NULL;
               
              @@ -956,8 +1181,8 @@ else
                 printf("Unable to create job: %s\n",
                        cupsLastErrorString());
               
              -

              Once the job is created, you submit documents for the job using the cupsStartDestDocument, cupsWriteRequestData, and cupsFinishDestDocument functions:

              -
              http_status_t
              +

              Once the job is created, you submit documents for the job using the cupsStartDestDocument, cupsWriteRequestData, and cupsFinishDestDocument functions:

              +
              http_status_t
               cupsStartDestDocument(http_t *http, cups_dest_t *dest,
                                     cups_dinfo_t *info, int job_id,
                                     const char *docname,
              @@ -974,16 +1199,20 @@ ipp_status_t
               cupsFinishDestDocument(http_t *http, cups_dest_t *dest,
                                      cups_dinfo_t *info);
               
              -

              The docname argument specifies the name of the document, typically the original filename. The format argument specifies the MIME media type of the document, including the following constants:

              -
                -
              • CUPS_FORMAT_JPEG: "image/jpeg"
              • -
              • CUPS_FORMAT_PDF: "application/pdf"
              • -
              • CUPS_FORMAT_POSTSCRIPT: "application/postscript"
              • -
              • CUPS_FORMAT_TEXT: "text/plain"
              • +

                The docname argument specifies the name of the document, typically the original filename. The format argument specifies the MIME media type of the document, including the following constants:

                +
                  +
                • CUPS_FORMAT_JPEG: "image/jpeg"

                  +
                • +
                • CUPS_FORMAT_PDF: "application/pdf"

                  +
                • +
                • CUPS_FORMAT_POSTSCRIPT: "application/postscript"

                  +
                • +
                • CUPS_FORMAT_TEXT: "text/plain"

                  +
                -

                The num_options and options arguments specify per-document print options, which at present must be 0 and NULL. The last_document argument specifies whether this is the last document in the job.

                -

                For example, the following code submits a PDF file to the job that was just created:

                -
                FILE *fp = fopen("filename.pdf", "rb");
                +

                The num_options and options arguments specify per-document print options, which at present must be 0 and NULL. The last_document argument specifies whether this is the last document in the job.

                +

                For example, the following code submits a PDF file to the job that was just created:

                +
                FILE *fp = fopen("filename.pdf", "rb");
                 size_t bytes;
                 char buffer[65536];
                 
                @@ -1006,54 +1235,54 @@ if (cupsStartDestDocument(CUPS_HTTP_DEFAULT, dest, info,
                 
                 fclose(fp);
                 
                -

                Sending IPP Requests

                -

                CUPS provides a rich API for sending IPP requests to the scheduler or printers, typically from management or utility applications whose primary purpose is not to send print jobs.

                -

                Connecting to the Scheduler or Printer

                -

                The connection to the scheduler or printer is represented by the HTTP connection type http_t. The cupsConnectDest function connects to the scheduler or printer associated with the destination:

                -
                http_t *
                +

                Sending IPP Requests

                +

                CUPS provides a rich API for sending IPP requests to the scheduler or printers, typically from management or utility applications whose primary purpose is not to send print jobs.

                +

                Connecting to the Scheduler or Printer

                +

                The connection to the scheduler or printer is represented by the HTTP connection type http_t. The cupsConnectDest function connects to the scheduler or printer associated with the destination:

                +
                http_t *
                 cupsConnectDest(cups_dest_t *dest, unsigned flags, int msec,
                                 int *cancel, char *resource,
                                 size_t resourcesize, cups_dest_cb_t cb,
                                 void *user_data);
                 
                -

                The dest argument specifies the destination to connect to.

                -

                The flags argument specifies whether you want to connect to the scheduler (CUPS_DEST_FLAGS_NONE) or device/printer (CUPS_DEST_FLAGS_DEVICE) associated with the destination.

                -

                The msec argument specifies how long you are willing to wait for the connection to be established in milliseconds. Specify a value of -1 to wait indefinitely.

                -

                The cancel argument specifies the address of an integer variable that can be set to a non-zero value to cancel the connection. Specify a value of NULL to not provide a cancel variable.

                -

                The resource and resourcesize arguments specify the address and size of a character string array to hold the path to use when sending an IPP request.

                -

                The cb and user_data arguments specify a destination callback function that returns 1 to continue connecting or 0 to stop. The destination callback work the same way as the one used for the cupsEnumDests function.

                -

                On success, a HTTP connection is returned that can be used to send IPP requests and get IPP responses.

                -

                For example, the following code connects to the printer associated with a destination with a 30 second timeout:

                -
                char resource[256];
                +

                The dest argument specifies the destination to connect to.

                +

                The flags argument specifies whether you want to connect to the scheduler (CUPS_DEST_FLAGS_NONE) or device/printer (CUPS_DEST_FLAGS_DEVICE) associated with the destination.

                +

                The msec argument specifies how long you are willing to wait for the connection to be established in milliseconds. Specify a value of -1 to wait indefinitely.

                +

                The cancel argument specifies the address of an integer variable that can be set to a non-zero value to cancel the connection. Specify a value of NULL to not provide a cancel variable.

                +

                The resource and resourcesize arguments specify the address and size of a character string array to hold the path to use when sending an IPP request.

                +

                The cb and user_data arguments specify a destination callback function that returns 1 to continue connecting or 0 to stop. The destination callback work the same way as the one used for the cupsEnumDests function.

                +

                On success, a HTTP connection is returned that can be used to send IPP requests and get IPP responses.

                +

                For example, the following code connects to the printer associated with a destination with a 30 second timeout:

                +
                char resource[256];
                 http_t *http = cupsConnectDest(dest, CUPS_DEST_FLAGS_DEVICE,
                                                30000, NULL, resource,
                                                sizeof(resource), NULL, NULL);
                 
                -

                Creating an IPP Request

                -

                IPP requests are represented by the IPP message type ipp_t and each IPP attribute in the request is representing using the type ipp_attribute_t. Each IPP request includes an operation code (IPP_OP_CREATE_JOB, IPP_OP_GET_PRINTER_ATTRIBUTES, etc.) and a 32-bit integer identifier.

                -

                The ippNewRequest function creates a new IPP request:

                -
                ipp_t *
                +

                Creating an IPP Request

                +

                IPP requests are represented by the IPP message type ipp_t and each IPP attribute in the request is representing using the type ipp_attribute_t. Each IPP request includes an operation code (IPP_OP_CREATE_JOB, IPP_OP_GET_PRINTER_ATTRIBUTES, etc.) and a 32-bit integer identifier.

                +

                The ippNewRequest function creates a new IPP request:

                +
                ipp_t *
                 ippNewRequest(ipp_op_t op);
                 
                -

                The op argument specifies the IPP operation code for the request. For example, the following code creates an IPP Get-Printer-Attributes request:

                -
                ipp_t *request = ippNewRequest(IPP_OP_GET_PRINTER_ATTRIBUTES);
                +

                The op argument specifies the IPP operation code for the request. For example, the following code creates an IPP Get-Printer-Attributes request:

                +
                ipp_t *request = ippNewRequest(IPP_OP_GET_PRINTER_ATTRIBUTES);
                 
                -

                The request identifier is automatically set to a unique value for the current process.

                -

                Each IPP request starts with two IPP attributes, "attributes-charset" and "attributes-natural-language", followed by IPP attribute(s) that specify the target of the operation. The ippNewRequest automatically adds the correct "attributes-charset" and "attributes-natural-language" attributes, but you must add the target attribute(s). For example, the following code adds the "printer-uri" attribute to the IPP Get-Printer-Attributes request to specify which printer is being queried:

                -
                const char *printer_uri = cupsGetOption("device-uri",
                +

                The request identifier is automatically set to a unique value for the current process.

                +

                Each IPP request starts with two IPP attributes, "attributes-charset" and "attributes-natural-language", followed by IPP attribute(s) that specify the target of the operation. The ippNewRequest automatically adds the correct "attributes-charset" and "attributes-natural-language" attributes, but you must add the target attribute(s). For example, the following code adds the "printer-uri" attribute to the IPP Get-Printer-Attributes request to specify which printer is being queried:

                +
                const char *printer_uri = cupsGetOption("device-uri",
                                                         dest->num_options,
                                                         dest->options);
                 
                 ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
                              "printer-uri", NULL, printer_uri);
                 
                -
                -

                Note:

                -

                If we wanted to query the scheduler instead of the device, we would look up the "printer-uri-supported" option instead of the "device-uri" value.

                +
                +

                Note:

                +

                If we wanted to query the scheduler instead of the device, we would look up the "printer-uri-supported" option instead of the "device-uri" value.

                -

                The ippAddString function adds the "printer-uri" attribute the the IPP request. The IPP_TAG_OPERATION argument specifies that the attribute is part of the operation. The IPP_TAG_URI argument specifies that the value is a Universal Resource Identifier (URI) string. The NULL argument specifies there is no language (English, French, Japanese, etc.) associated with the string, and the printer_uri argument specifies the string value.

                -

                The IPP Get-Printer-Attributes request also supports an IPP attribute called "requested-attributes" that lists the attributes and values you are interested in. For example, the following code requests the printer state attributes:

                -
                static const char * const requested_attributes[] =
                +

                The ippAddString function adds the "printer-uri" attribute the the IPP request. The IPP_TAG_OPERATION argument specifies that the attribute is part of the operation. The IPP_TAG_URI argument specifies that the value is a Universal Resource Identifier (URI) string. The NULL argument specifies there is no language (English, French, Japanese, etc.) associated with the string, and the printer_uri argument specifies the string value.

                +

                The IPP Get-Printer-Attributes request also supports an IPP attribute called "requested-attributes" that lists the attributes and values you are interested in. For example, the following code requests the printer state attributes:

                +
                static const char * const requested_attributes[] =
                 {
                   "printer-state",
                   "printer-state-message",
                @@ -1064,47 +1293,58 @@ ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
                               "requested-attributes", 3, NULL,
                               requested_attributes);
                 
                -

                The ippAddStrings function adds an attribute with one or more strings, in this case three. The IPP_TAG_KEYWORD argument specifies that the strings are keyword values, which are used for attribute names. All strings use the same language (NULL), and the attribute will contain the three strings in the array requested_attributes.

                -

                CUPS provides many functions to adding attributes of different types:

                -
                  -
                • ippAddBoolean adds a boolean (IPP_TAG_BOOLEAN) attribute with one value.
                • -
                • ippAddInteger adds an enum (IPP_TAG_ENUM) or integer (IPP_TAG_INTEGER) attribute with one value.
                • -
                • ippAddIntegers adds an enum or integer attribute with one or more values.
                • -
                • ippAddOctetString adds an octetString attribute with one value.
                • -
                • ippAddOutOfBand adds a admin-defined (IPP_TAG_ADMINDEFINE), default (IPP_TAG_DEFAULT), delete-attribute (IPP_TAG_DELETEATTR), no-value (IPP_TAG_NOVALUE), not-settable (IPP_TAG_NOTSETTABLE), unknown (IPP_TAG_UNKNOWN), or unsupported (IPP_TAG_UNSUPPORTED_VALUE) out-of-band attribute.
                • -
                • ippAddRange adds a rangeOfInteger attribute with one range.
                • -
                • ippAddRanges adds a rangeOfInteger attribute with one or more ranges.
                • -
                • ippAddResolution adds a resolution attribute with one resolution.
                • -
                • ippAddResolutions adds a resolution attribute with one or more resolutions.
                • -
                • ippAddString adds a charset (IPP_TAG_CHARSET), keyword (IPP_TAG_KEYWORD), mimeMediaType (IPP_TAG_MIMETYPE), name (IPP_TAG_NAME and IPP_TAG_NAMELANG), naturalLanguage (IPP_TAG_NATURAL_LANGUAGE), text (IPP_TAG_TEXT and IPP_TAG_TEXTLANG), uri (IPP_TAG_URI), or uriScheme (IPP_TAG_URISCHEME) attribute with one value.
                • -
                • ippAddStrings adds a charset, keyword, mimeMediaType, name, naturalLanguage, text, uri, or uriScheme attribute with one or more values.
                • +

                  The ippAddStrings function adds an attribute with one or more strings, in this case three. The IPP_TAG_KEYWORD argument specifies that the strings are keyword values, which are used for attribute names. All strings use the same language (NULL), and the attribute will contain the three strings in the array requested_attributes.

                  +

                  CUPS provides many functions to adding attributes of different types:

                  +
                    +
                  • ippAddBoolean adds a boolean (IPP_TAG_BOOLEAN) attribute with one value.

                    +
                  • +
                  • ippAddInteger adds an enum (IPP_TAG_ENUM) or integer (IPP_TAG_INTEGER) attribute with one value.

                    +
                  • +
                  • ippAddIntegers adds an enum or integer attribute with one or more values.

                    +
                  • +
                  • ippAddOctetString adds an octetString attribute with one value.

                    +
                  • +
                  • ippAddOutOfBand adds a admin-defined (IPP_TAG_ADMINDEFINE), default (IPP_TAG_DEFAULT), delete-attribute (IPP_TAG_DELETEATTR), no-value (IPP_TAG_NOVALUE), not-settable (IPP_TAG_NOTSETTABLE), unknown (IPP_TAG_UNKNOWN), or unsupported (IPP_TAG_UNSUPPORTED_VALUE) out-of-band attribute.

                    +
                  • +
                  • ippAddRange adds a rangeOfInteger attribute with one range.

                    +
                  • +
                  • ippAddRanges adds a rangeOfInteger attribute with one or more ranges.

                    +
                  • +
                  • ippAddResolution adds a resolution attribute with one resolution.

                    +
                  • +
                  • ippAddResolutions adds a resolution attribute with one or more resolutions.

                    +
                  • +
                  • ippAddString adds a charset (IPP_TAG_CHARSET), keyword (IPP_TAG_KEYWORD), mimeMediaType (IPP_TAG_MIMETYPE), name (IPP_TAG_NAME and IPP_TAG_NAMELANG), naturalLanguage (IPP_TAG_NATURAL_LANGUAGE), text (IPP_TAG_TEXT and IPP_TAG_TEXTLANG), uri (IPP_TAG_URI), or uriScheme (IPP_TAG_URISCHEME) attribute with one value.

                    +
                  • +
                  • ippAddStrings adds a charset, keyword, mimeMediaType, name, naturalLanguage, text, uri, or uriScheme attribute with one or more values.

                    +
                  -

                  Sending the IPP Request

                  -

                  Once you have created the IPP request, you can send it using the cupsDoRequest function. For example, the following code sends the IPP Get-Printer-Attributes request to the destination and saves the response:

                  -
                  ipp_t *response = cupsDoRequest(http, request, resource);
                  +

                  Sending the IPP Request

                  +

                  Once you have created the IPP request, you can send it using the cupsDoRequest function. For example, the following code sends the IPP Get-Printer-Attributes request to the destination and saves the response:

                  +
                  ipp_t *response = cupsDoRequest(http, request, resource);
                   
                  -

                  For requests like Send-Document that include a file, the cupsDoFileRequest function should be used:

                  -
                  ipp_t *response = cupsDoFileRequest(http, request, resource,
                  +

                  For requests like Send-Document that include a file, the cupsDoFileRequest function should be used:

                  +
                  ipp_t *response = cupsDoFileRequest(http, request, resource,
                                                       filename);
                   
                  -

                  Both cupsDoRequest and cupsDoFileRequest free the IPP request. If a valid IPP response is received, it is stored in a new IPP message (ipp_t) and returned to the caller. Otherwise NULL is returned.

                  -

                  The status from the most recent request can be queried using the cupsLastError function, for example:

                  -
                  if (cupsLastError() >= IPP_STATUS_ERROR_BAD_REQUEST)
                  +

                  Both cupsDoRequest and cupsDoFileRequest free the IPP request. If a valid IPP response is received, it is stored in a new IPP message (ipp_t) and returned to the caller. Otherwise NULL is returned.

                  +

                  The status from the most recent request can be queried using the cupsLastError function, for example:

                  +
                  if (cupsLastError() >= IPP_STATUS_ERROR_BAD_REQUEST)
                   {
                     /* request failed */
                   }
                   
                  -

                  A human-readable error message is also available using the cupsLastErrorString function:

                  -
                  if (cupsLastError() >= IPP_STATUS_ERROR_BAD_REQUEST)
                  +

                  A human-readable error message is also available using the cupsLastErrorString function:

                  +
                  if (cupsLastError() >= IPP_STATUS_ERROR_BAD_REQUEST)
                   {
                     /* request failed */
                     printf("Request failed: %s\n", cupsLastErrorString());
                   }
                   
                  -

                  Processing the IPP Response

                  -

                  Each response to an IPP request is also an IPP message (ipp_t) with its own IPP attributes (ipp_attribute_t) that includes a status code (IPP_STATUS_OK, IPP_STATUS_ERROR_BAD_REQUEST, etc.) and the corresponding 32-bit integer identifier from the request.

                  -

                  For example, the following code finds the printer state attributes and prints their values:

                  -
                  ipp_attribute_t *attr;
                  +

                  Processing the IPP Response

                  +

                  Each response to an IPP request is also an IPP message (ipp_t) with its own IPP attributes (ipp_attribute_t) that includes a status code (IPP_STATUS_OK, IPP_STATUS_ERROR_BAD_REQUEST, etc.) and the corresponding 32-bit integer identifier from the request.

                  +

                  For example, the following code finds the printer state attributes and prints their values:

                  +
                  ipp_attribute_t *attr;
                   
                   if ((attr = ippFindAttribute(response, "printer-state",
                                                IPP_TAG_ENUM)) != NULL)
                  @@ -1132,48 +1372,48 @@ if ((attr = ippFindAttribute(response, "printer-state-reasons",
                       printf("    %s\n", ippGetString(attr, i, NULL)));
                   }
                   
                  -

                  The ippGetCount function returns the number of values in an attribute.

                  -

                  The ippGetInteger and ippGetString functions return a single integer or string value from an attribute.

                  -

                  The ippEnumString function converts a enum value to its keyword (string) equivalent.

                  -

                  Once you are done using the IPP response message, free it using the ippDelete function:

                  -
                  ippDelete(response);
                  +

                  The ippGetCount function returns the number of values in an attribute.

                  +

                  The ippGetInteger and ippGetString functions return a single integer or string value from an attribute.

                  +

                  The ippEnumString function converts a enum value to its keyword (string) equivalent.

                  +

                  Once you are done using the IPP response message, free it using the ippDelete function:

                  +
                  ippDelete(response);
                   
                  -

                  Authentication

                  -

                  CUPS normally handles authentication through the console. GUI applications should set a password callback using the cupsSetPasswordCB2 function:

                  -
                  void
                  +

                  Authentication

                  +

                  CUPS normally handles authentication through the console. GUI applications should set a password callback using the cupsSetPasswordCB2 function:

                  +
                  void
                   cupsSetPasswordCB2(cups_password_cb2_t cb, void *user_data);
                   
                  -

                  The password callback will be called when needed and is responsible for setting the current user name using cupsSetUser and returning a string:

                  -
                  const char *
                  +

                  The password callback will be called when needed and is responsible for setting the current user name using cupsSetUser and returning a string:

                  +
                  const char *
                   cups_password_cb2(const char *prompt, http_t *http,
                                     const char *method, const char *resource,
                                     void *user_data);
                   
                  -

                  The prompt argument is a string from CUPS that should be displayed to the user.

                  -

                  The http argument is the connection hosting the request that is being authenticated. The password callback can call the httpGetField and httpGetSubField functions to look for additional details concerning the authentication challenge.

                  -

                  The method argument specifies the HTTP method used for the request and is typically "POST".

                  -

                  The resource argument specifies the path used for the request.

                  -

                  The user_data argument provides the user data pointer from the cupsSetPasswordCB2 call.

                  -

                  Functions

                  +

                  The prompt argument is a string from CUPS that should be displayed to the user.

                  +

                  The http argument is the connection hosting the request that is being authenticated. The password callback can call the httpGetField and httpGetSubField functions to look for additional details concerning the authentication challenge.

                  +

                  The method argument specifies the HTTP method used for the request and is typically "POST".

                  +

                  The resource argument specifies the path used for the request.

                  +

                  The user_data argument provides the user data pointer from the cupsSetPasswordCB2 call.

                  +

                  Functions

                  cupsAddDest

                  -

                  Add a destination to the list of destinations.

                  +

                  Add a destination to the list of destinations.

                  int cupsAddDest(const char *name, const char *instance, int num_dests, cups_dest_t **dests);

                  Parameters

                  - + - + - + - +
                  nameDestination name
                  Destination name
                  instanceInstance name or NULL for none/primary
                  Instance name or NULL for none/primary
                  num_destsNumber of destinations
                  Number of destinations
                  destsDestinations
                  Destinations

                  Return Value

                  -

                  New number of destinations

                  +

                  New number of destinations

                  Discussion

                  -

                  This function cannot be used to add a new class or printer queue, +

                  This function cannot be used to add a new class or printer queue, it only adds a new container of saved options for the named destination or instance.

                  @@ -1184,87 +1424,451 @@ a copy of that destination's options.
                  Use the cupsSaveDests function to save the updated list of destinations to the user's lpoptions file.

                   CUPS 2.3/macOS 10.14 cupsAddDestMediaOptions

                  -

                  Add the option corresponding to the specified media size.

                  +

                  Add the option corresponding to the specified media size.

                  int cupsAddDestMediaOptions(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, unsigned flags, cups_size_t *size, int num_options, cups_option_t **options);

                  Parameters

                  - + - + - + - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  flagsMedia matching flags
                  Media matching flags
                  sizeMedia size
                  Media size
                  num_optionsCurrent number of options
                  Current number of options
                  optionsOptions
                  Options

                  Return Value

                  -

                  New number of options

                  +

                  New number of options

                   CUPS 2.2.4/macOS 10.13 cupsAddIntegerOption

                  -

                  Add an integer option to an option array.

                  +

                  Add an integer option to an option array.

                  int cupsAddIntegerOption(const char *name, int value, int num_options, cups_option_t **options);

                  Parameters

                  - + - + - + - +
                  nameName of option
                  Name of option
                  valueValue of option
                  Value of option
                  num_optionsNumber of options
                  Number of options
                  optionsPointer to options
                  Pointer to options

                  Return Value

                  -

                  Number of options

                  +

                  Number of options

                  Discussion

                  -

                  New option arrays can be initialized simply by passing 0 for the +

                  New option arrays can be initialized simply by passing 0 for the "num_options" parameter.

                  cupsAddOption

                  -

                  Add an option to an option array.

                  +

                  Add an option to an option array.

                  int cupsAddOption(const char *name, const char *value, int num_options, cups_option_t **options);

                  Parameters

                  - + - + - + - +
                  nameName of option
                  Name of option
                  valueValue of option
                  Value of option
                  num_optionsNumber of options
                  Number of options
                  optionsPointer to options
                  Pointer to options

                  Return Value

                  -

                  Number of options

                  +

                  Number of options

                  Discussion

                  -

                  New option arrays can be initialized simply by passing 0 for the +

                  New option arrays can be initialized simply by passing 0 for the "num_options" parameter.

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayAdd

                  +

                  Add an element to the array.

                  +

                  +int cupsArrayAdd(cups_array_t *a, void *e);

                  +

                  Parameters

                  + + + + + +
                  aArray
                  eElement
                  +

                  Return Value

                  +

                  1 on success, 0 on failure

                  +

                  Discussion

                  +

                  When adding an element to a sorted array, non-unique elements are +appended at the end of the run of identical elements. For unsorted arrays, +the element is appended to the end of the array. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayClear

                  +

                  Clear the array.

                  +

                  +void cupsArrayClear(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Discussion

                  +

                  This function is equivalent to removing all elements in the array. +The caller is responsible for freeing the memory used by the +elements themselves. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayCount

                  +

                  Get the number of elements in the array.

                  +

                  +int cupsArrayCount(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Return Value

                  +

                  Number of elements

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayCurrent

                  +

                  Return the current element in the array.

                  +

                  +void *cupsArrayCurrent(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Return Value

                  +

                  Element

                  +

                  Discussion

                  +

                  The current element is undefined until you call cupsArrayFind, +cupsArrayFirst, or cupsArrayIndex, or cupsArrayLast. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayDelete

                  +

                  Free all memory used by the array.

                  +

                  +void cupsArrayDelete(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Discussion

                  +

                  The caller is responsible for freeing the memory used by the +elements themselves. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayDup

                  +

                  Duplicate the array.

                  +

                  +cups_array_t *cupsArrayDup(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Return Value

                  +

                  Duplicate array

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayFind

                  +

                  Find an element in the array.

                  +

                  +void *cupsArrayFind(cups_array_t *a, void *e);

                  +

                  Parameters

                  + + + + + +
                  aArray
                  eElement
                  +

                  Return Value

                  +

                  Element found or NULL

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayFirst

                  +

                  Get the first element in the array.

                  +

                  +void *cupsArrayFirst(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Return Value

                  +

                  First element or NULL if the array is empty

                  +

                   CUPS 1.3/macOS 10.5 cupsArrayGetIndex

                  +

                  Get the index of the current element.

                  +

                  +int cupsArrayGetIndex(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Return Value

                  +

                  Index of the current element, starting at 0

                  +

                  Discussion

                  +

                  The current element is undefined until you call cupsArrayFind, +cupsArrayFirst, or cupsArrayIndex, or cupsArrayLast. + +

                  +

                   CUPS 1.3/macOS 10.5 cupsArrayGetInsert

                  +

                  Get the index of the last inserted element.

                  +

                  +int cupsArrayGetInsert(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Return Value

                  +

                  Index of the last inserted element, starting at 0

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayIndex

                  +

                  Get the N-th element in the array.

                  +

                  +void *cupsArrayIndex(cups_array_t *a, int n);

                  +

                  Parameters

                  + + + + + +
                  aArray
                  nIndex into array, starting at 0
                  +

                  Return Value

                  +

                  N-th element or NULL

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayInsert

                  +

                  Insert an element in the array.

                  +

                  +int cupsArrayInsert(cups_array_t *a, void *e);

                  +

                  Parameters

                  + + + + + +
                  aArray
                  eElement
                  +

                  Return Value

                  +

                  0 on failure, 1 on success

                  +

                  Discussion

                  +

                  When inserting an element in a sorted array, non-unique elements are +inserted at the beginning of the run of identical elements. For unsorted +arrays, the element is inserted at the beginning of the array. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayLast

                  +

                  Get the last element in the array.

                  +

                  +void *cupsArrayLast(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Return Value

                  +

                  Last element or NULL if the array is empty

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayNew

                  +

                  Create a new array.

                  +

                  +cups_array_t *cupsArrayNew(cups_array_func_t f, void *d);

                  +

                  Parameters

                  + + + + + +
                  fComparison function or NULL for an unsorted array
                  dUser data pointer or NULL
                  +

                  Return Value

                  +

                  Array

                  +

                  Discussion

                  +

                  The comparison function ("f") is used to create a sorted array. The function +receives pointers to two elements and the user data pointer ("d") - the user +data pointer argument can safely be omitted when not required so functions +like strcmp can be used for sorted string arrays. + +

                  +

                   CUPS 1.3/macOS 10.5 cupsArrayNew2

                  +

                  Create a new array with hash.

                  +

                  +cups_array_t *cupsArrayNew2(cups_array_func_t f, void *d, cups_ahash_func_t h, int hsize);

                  +

                  Parameters

                  + + + + + + + + + +
                  fComparison function or NULL for an unsorted array
                  dUser data or NULL
                  hHash function or NULL for unhashed lookups
                  hsizeHash size (>= 0)
                  +

                  Return Value

                  +

                  Array

                  +

                  Discussion

                  +

                  The comparison function ("f") is used to create a sorted array. The function +receives pointers to two elements and the user data pointer ("d") - the user +data pointer argument can safely be omitted when not required so functions +like strcmp can be used for sorted string arrays.
                  +
                  +The hash function ("h") is used to implement cached lookups with the +specified hash size ("hsize"). + +

                  +

                   CUPS 1.5/macOS 10.7 cupsArrayNew3

                  +

                  Create a new array with hash and/or free function.

                  +

                  +cups_array_t *cupsArrayNew3(cups_array_func_t f, void *d, cups_ahash_func_t h, int hsize, cups_acopy_func_t cf, cups_afree_func_t ff);

                  +

                  Parameters

                  + + + + + + + + + + + + + +
                  fComparison function or NULL for an unsorted array
                  dUser data or NULL
                  hHash function or NULL for unhashed lookups
                  hsizeHash size (>= 0)
                  cfCopy function
                  ffFree function
                  +

                  Return Value

                  +

                  Array

                  +

                  Discussion

                  +

                  The comparison function ("f") is used to create a sorted array. The function +receives pointers to two elements and the user data pointer ("d") - the user +data pointer argument can safely be omitted when not required so functions +like strcmp can be used for sorted string arrays.
                  +
                  +The hash function ("h") is used to implement cached lookups with the +specified hash size ("hsize").
                  +
                  +The copy function ("cf") is used to automatically copy/retain elements when +added or the array is copied.
                  +
                  +The free function ("cf") is used to automatically free/release elements when +removed or the array is deleted. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayNext

                  +

                  Get the next element in the array.

                  +

                  +void *cupsArrayNext(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Return Value

                  +

                  Next element or NULL

                  +

                  Discussion

                  +

                  This function is equivalent to "cupsArrayIndex(a, cupsArrayGetIndex(a) + 1)".
                  +
                  +The next element is undefined until you call cupsArrayFind, +cupsArrayFirst, or cupsArrayIndex, or cupsArrayLast +to set the current element. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayPrev

                  +

                  Get the previous element in the array.

                  +

                  +void *cupsArrayPrev(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Return Value

                  +

                  Previous element or NULL

                  +

                  Discussion

                  +

                  This function is equivalent to "cupsArrayIndex(a, cupsArrayGetIndex(a) - 1)".
                  +
                  +The previous element is undefined until you call cupsArrayFind, +cupsArrayFirst, or cupsArrayIndex, or cupsArrayLast +to set the current element. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayRemove

                  +

                  Remove an element from the array.

                  +

                  +int cupsArrayRemove(cups_array_t *a, void *e);

                  +

                  Parameters

                  + + + + + +
                  aArray
                  eElement
                  +

                  Return Value

                  +

                  1 on success, 0 on failure

                  +

                  Discussion

                  +

                  If more than one element matches "e", only the first matching element is +removed.
                  +
                  +The caller is responsible for freeing the memory used by the +removed element. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayRestore

                  +

                  Reset the current element to the last cupsArraySave.

                  +

                  +void *cupsArrayRestore(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Return Value

                  +

                  New current element

                  +

                   CUPS 1.2/macOS 10.5 cupsArraySave

                  +

                  Mark the current element for a later cupsArrayRestore.

                  +

                  +int cupsArraySave(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Return Value

                  +

                  1 on success, 0 on failure

                  +

                  Discussion

                  +

                  The current element is undefined until you call cupsArrayFind, +cupsArrayFirst, or cupsArrayIndex, or cupsArrayLast +to set the current element.
                  +
                  +The save/restore stack is guaranteed to be at least 32 elements deep. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsArrayUserData

                  +

                  Return the user data for an array.

                  +

                  +void *cupsArrayUserData(cups_array_t *a);

                  +

                  Parameters

                  + + + +
                  aArray
                  +

                  Return Value

                  +

                  User data

                   CUPS 1.6/macOS 10.8 cupsCancelDestJob

                  -

                  Cancel a job on a destination.

                  +

                  Cancel a job on a destination.

                  ipp_status_t cupsCancelDestJob(http_t *http, cups_dest_t *dest, int job_id);

                  Parameters

                  - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  job_idJob ID
                  Job ID

                  Return Value

                  -

                  Status of cancel operation

                  +

                  Status of cancel operation

                  Discussion

                  -

                  The "job_id" is the number returned by cupsCreateDestJob.
                  +

                  The "job_id" is the number returned by cupsCreateDestJob.

                  Returns IPP_STATUS_OK on success and IPP_STATUS_ERROR_NOT_AUTHORIZED or @@ -1272,79 +1876,79 @@ Returns IPP_STATUS_OK on success and

                   CUPS 1.6/macOS 10.8 cupsCheckDestSupported

                  -

                  Check that the option and value are supported +

                  Check that the option and value are supported by the destination.

                  int cupsCheckDestSupported(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *option, const char *value);

                  Parameters

                  - + - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  optionOption
                  Option
                  valueValue or NULL
                  Value or NULL

                  Return Value

                  -

                  1 if supported, 0 otherwise

                  +

                  1 if supported, 0 otherwise

                  Discussion

                  -

                  Returns 1 if supported, 0 otherwise. +

                  Returns 1 if supported, 0 otherwise.

                   CUPS 1.6/macOS 10.8 cupsCloseDestJob

                  -

                  Close a job and start printing.

                  +

                  Close a job and start printing.

                  ipp_status_t cupsCloseDestJob(http_t *http, cups_dest_t *dest, cups_dinfo_t *info, int job_id);

                  Parameters

                  - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  infoDestination information
                  Destination information
                  job_idJob ID
                  Job ID

                  Return Value

                  -

                  IPP status code

                  +

                  IPP status code

                  Discussion

                  -

                  Use when the last call to cupsStartDocument passed 0 for "last_document". +

                  Use when the last call to cupsStartDocument passed 0 for "last_document". "job_id" is the job ID returned by cupsCreateDestJob. Returns IPP_STATUS_OK on success.

                   CUPS 1.6/macOS 10.8 cupsConnectDest

                  -

                  Open a connection to the destination.

                  +

                  Open a connection to the destination.

                  http_t *cupsConnectDest(cups_dest_t *dest, unsigned flags, int msec, int *cancel, char *resource, size_t resourcesize, cups_dest_cb_t cb, void *user_data);

                  Parameters

                  - + - + - + - + - + - + - + - +
                  destDestination
                  Destination
                  flagsConnection flags
                  Connection flags
                  msecTimeout in milliseconds
                  Timeout in milliseconds
                  cancelPointer to "cancel" variable
                  Pointer to "cancel" variable
                  resourceResource buffer
                  Resource buffer
                  resourcesizeSize of resource buffer
                  Size of resource buffer
                  cbCallback function
                  Callback function
                  user_dataUser data pointer
                  User data pointer

                  Return Value

                  -

                  Connection to destination or NULL

                  +

                  Connection to destination or NULL

                  Discussion

                  -

                  Connect to the destination, returning a new http_t connection object +

                  Connect to the destination, returning a new http_t connection object and optionally the resource path to use for the destination. These calls will block until a connection is made, the timeout expires, the integer pointed to by "cancel" is non-zero, or the callback function (or block) @@ -1358,60 +1962,60 @@ associated with the destination.

                   CUPS 1.6/macOS 10.8 cupsCopyDest

                  -

                  Copy a destination.

                  +

                  Copy a destination.

                  int cupsCopyDest(cups_dest_t *dest, int num_dests, cups_dest_t **dests);

                  Parameters

                  - + - + - +
                  destDestination to copy
                  Destination to copy
                  num_destsNumber of destinations
                  Number of destinations
                  destsDestination array
                  Destination array

                  Return Value

                  -

                  New number of destinations

                  +

                  New number of destinations

                  Discussion

                  -

                  Make a copy of the destination to an array of destinations (or just a single +

                  Make a copy of the destination to an array of destinations (or just a single copy) - for use with the cupsEnumDests* functions. The caller is responsible for calling cupsFreeDests() on the returned object(s).

                   CUPS 1.6/macOS 10.8 cupsCopyDestConflicts

                  -

                  Get conflicts and resolutions for a new +

                  Get conflicts and resolutions for a new option/value pair.

                  int cupsCopyDestConflicts(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, int num_options, cups_option_t *options, const char *new_option, const char *new_value, int *num_conflicts, cups_option_t **conflicts, int *num_resolved, cups_option_t **resolved);

                  Parameters

                  - + - + - + - + - + - + - + - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  num_optionsNumber of current options
                  Number of current options
                  optionsCurrent options
                  Current options
                  new_optionNew option
                  New option
                  new_valueNew value
                  New value
                  num_conflictsNumber of conflicting options
                  Number of conflicting options
                  conflictsConflicting options
                  Conflicting options
                  num_resolvedNumber of options to resolve
                  Number of options to resolve
                  resolvedResolved options
                  Resolved options

                  Return Value

                  -

                  1 if there is a conflict, 0 if none, -1 on error

                  +

                  1 if there is a conflict, 0 if none, -1 on error

                  Discussion

                  -

                  "num_options" and "options" represent the currently selected options by the +

                  "num_options" and "options" represent the currently selected options by the user. "new_option" and "new_value" are the setting the user has just changed.

                  @@ -1428,203 +2032,626 @@ to 0 and NULL, respectively, then the conflict cannot be resolved.

                   CUPS 1.6/macOS 10.8 cupsCopyDestInfo

                  -

                  Get the supported values/capabilities for the +

                  Get the supported values/capabilities for the destination.

                  cups_dinfo_t *cupsCopyDestInfo(http_t *http, cups_dest_t *dest);

                  Parameters

                  - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination

                  Return Value

                  -

                  Destination information

                  +

                  Destination information

                  Discussion

                  -

                  The caller is responsible for calling cupsFreeDestInfo on the return +

                  The caller is responsible for calling cupsFreeDestInfo on the return value. NULL is returned on error.

                   CUPS 1.6/macOS 10.8 cupsCreateDestJob

                  -

                  Create a job on a destination.

                  +

                  Create a job on a destination.

                  ipp_status_t cupsCreateDestJob(http_t *http, cups_dest_t *dest, cups_dinfo_t *info, int *job_id, const char *title, int num_options, cups_option_t *options);

                  Parameters

                  - + - + - + - + - + - + - + +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  infoDestination information
                  Destination information
                  job_idJob ID or 0 on error
                  Job ID or 0 on error
                  titleJob name
                  Job name
                  num_optionsNumber of job options
                  Number of job options
                  optionsJob options
                  Job options
                  +

                  Return Value

                  +

                  IPP status code

                  +

                  Discussion

                  +

                  Returns IPP_STATUS_OK or IPP_STATUS_OK_SUBST on success, saving the job ID +in the variable pointed to by "job_id". + +

                  +

                   CUPS 1.2/macOS 10.5 cupsDirClose

                  +

                  Close a directory.

                  +

                  +void cupsDirClose(cups_dir_t *dp);

                  +

                  Parameters

                  + + + +
                  dpDirectory pointer
                  +

                   CUPS 1.2/macOS 10.5 cupsDirOpen

                  +

                  Open a directory.

                  +

                  +cups_dir_t *cupsDirOpen(const char *directory);

                  +

                  Parameters

                  + + + +
                  directoryDirectory name
                  +

                  Return Value

                  +

                  Directory pointer or NULL if the directory could not be opened.

                  +

                   CUPS 1.2/macOS 10.5 cupsDirRead

                  +

                  Read the next directory entry.

                  +

                  +cups_dentry_t *cupsDirRead(cups_dir_t *dp);

                  +

                  Parameters

                  + + + +
                  dpDirectory pointer
                  +

                  Return Value

                  +

                  Directory entry or NULL when there are no more

                  +

                   CUPS 1.2/macOS 10.5 cupsDirRewind

                  +

                  Rewind to the start of the directory.

                  +

                  +void cupsDirRewind(cups_dir_t *dp);

                  +

                  Parameters

                  + + + +
                  dpDirectory pointer
                  +

                   CUPS 1.1.20/macOS 10.4 cupsDoAuthentication

                  +

                  Authenticate a request.

                  +

                  +int cupsDoAuthentication(http_t *http, const char *method, const char *resource);

                  +

                  Parameters

                  + + + + + + + +
                  httpConnection to server or CUPS_HTTP_DEFAULT
                  methodRequest method ("GET", "POST", "PUT")
                  resourceResource path
                  +

                  Return Value

                  +

                  0 on success, -1 on error

                  +

                  Discussion

                  +

                  This function should be called in response to a HTTP_STATUS_UNAUTHORIZED +status, prior to resubmitting your request. + +

                  +

                   CUPS 2.3/macOS 10.14 cupsEncodeOption

                  +

                  Encode a single option into an IPP attribute.

                  +

                  +ipp_attribute_t *cupsEncodeOption(ipp_t *ipp, ipp_tag_t group_tag, const char *name, const char *value);

                  +

                  Parameters

                  + + + + + + + + + +
                  ippIPP request/response
                  group_tagAttribute group
                  nameOption name
                  valueOption string value
                  +

                  Return Value

                  +

                  New attribute or NULL on error

                  +

                  cupsEncodeOptions

                  +

                  Encode printer options into IPP attributes.

                  +

                  +void cupsEncodeOptions(ipp_t *ipp, int num_options, cups_option_t *options);

                  +

                  Parameters

                  + + + + + + + +
                  ippIPP request/response
                  num_optionsNumber of options
                  optionsOptions
                  +

                  Discussion

                  +

                  This function adds operation, job, and then subscription attributes, +in that order. Use the cupsEncodeOptions2 function to add attributes +for a single group.

                  +

                   CUPS 1.2/macOS 10.5 cupsEncodeOptions2

                  +

                  Encode printer options into IPP attributes for a group.

                  +

                  +void cupsEncodeOptions2(ipp_t *ipp, int num_options, cups_option_t *options, ipp_tag_t group_tag);

                  +

                  Parameters

                  + + + + + + + + + +
                  ippIPP request/response
                  num_optionsNumber of options
                  optionsOptions
                  group_tagGroup to encode
                  +

                  Discussion

                  +

                  This function only adds attributes for a single group. Call this +function multiple times for each group, or use cupsEncodeOptions +to add the standard groups. + +

                  +

                  cupsEncryption

                  +

                  Get the current encryption settings.

                  +

                  +http_encryption_t cupsEncryption(void);

                  +

                  Return Value

                  +

                  Encryption settings

                  +

                  Discussion

                  +

                  The default encryption setting comes from the CUPS_ENCRYPTION +environment variable, then the ~/.cups/client.conf file, and finally the +/etc/cups/client.conf file. If not set, the default is +HTTP_ENCRYPTION_IF_REQUESTED.
                  +
                  +Note: The current encryption setting is tracked separately for each thread +in a program. Multi-threaded programs that override the setting via the +cupsSetEncryption function need to do so in each thread for the same +setting to be used.

                  +

                   CUPS 1.6/macOS 10.8 cupsEnumDests

                  +

                  Enumerate available destinations with a callback function.

                  +

                  +int cupsEnumDests(unsigned flags, int msec, int *cancel, cups_ptype_t type, cups_ptype_t mask, cups_dest_cb_t cb, void *user_data);

                  +

                  Parameters

                  + + + + + + + + + + + + + + + +
                  flagsEnumeration flags
                  msecTimeout in milliseconds, -1 for indefinite
                  cancelPointer to "cancel" variable
                  typePrinter type bits
                  maskMask for printer type bits
                  cbCallback function
                  user_dataUser data
                  +

                  Return Value

                  +

                  1 on success, 0 on failure

                  +

                  Discussion

                  +

                  Destinations are enumerated from one or more sources. The callback function +receives the user_data pointer and the destination pointer which can +be used as input to the cupsCopyDest function. The function must +return 1 to continue enumeration or 0 to stop.
                  +
                  +The type and mask arguments allow the caller to filter the +destinations that are enumerated. Passing 0 for both will enumerate all +printers. The constant CUPS_PRINTER_DISCOVERED is used to filter on +destinations that are available but have not yet been added locally.
                  +
                  +Enumeration happens on the current thread and does not return until all +destinations have been enumerated or the callback function returns 0.
                  +
                  +Note: The callback function will likely receive multiple updates for the same +destinations - it is up to the caller to suppress any duplicate destinations. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsFileClose

                  +

                  Close a CUPS file.

                  +

                  +int cupsFileClose(cups_file_t *fp);

                  +

                  Parameters

                  + + + +
                  fpCUPS file
                  +

                  Return Value

                  +

                  0 on success, -1 on error

                  +

                   CUPS 1.2/macOS 10.5 cupsFileCompression

                  +

                  Return whether a file is compressed.

                  +

                  +int cupsFileCompression(cups_file_t *fp);

                  +

                  Parameters

                  + + + +
                  fpCUPS file
                  +

                  Return Value

                  +

                  CUPS_FILE_NONE or CUPS_FILE_GZIP

                  +

                   CUPS 1.2/macOS 10.5 cupsFileEOF

                  +

                  Return the end-of-file status.

                  +

                  +int cupsFileEOF(cups_file_t *fp);

                  +

                  Parameters

                  + + + +
                  fpCUPS file
                  +

                  Return Value

                  +

                  1 on end of file, 0 otherwise

                  +

                   CUPS 1.2/macOS 10.5 cupsFileFind

                  +

                  Find a file using the specified path.

                  +

                  +const char *cupsFileFind(const char *filename, const char *path, int executable, char *buffer, int bufsize);

                  +

                  Parameters

                  + + + + + + + + + + + +
                  filenameFile to find
                  pathColon/semicolon-separated path
                  executable1 = executable files, 0 = any file/dir
                  bufferFilename buffer
                  bufsizeSize of filename buffer
                  +

                  Return Value

                  +

                  Full path to file or NULL if not found

                  +

                  Discussion

                  +

                  This function allows the paths in the path string to be separated by +colons (UNIX standard) or semicolons (Windows standard) and stores the +result in the buffer supplied. If the file cannot be found in any of +the supplied paths, NULL is returned. A NULL path only +matches the current directory. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsFileFlush

                  +

                  Flush pending output.

                  +

                  +int cupsFileFlush(cups_file_t *fp);

                  +

                  Parameters

                  + + + +
                  fpCUPS file
                  +

                  Return Value

                  +

                  0 on success, -1 on error

                  +

                   CUPS 1.2/macOS 10.5 cupsFileGetChar

                  +

                  Get a single character from a file.

                  +

                  +int cupsFileGetChar(cups_file_t *fp);

                  +

                  Parameters

                  + + + +
                  fpCUPS file
                  +

                  Return Value

                  +

                  Character or -1 on end of file

                  +

                   CUPS 1.2/macOS 10.5 cupsFileGetConf

                  +

                  Get a line from a configuration file.

                  +

                  +char *cupsFileGetConf(cups_file_t *fp, char *buf, size_t buflen, char **value, int *linenum);

                  +

                  Parameters

                  + + + + + + + + + + + +
                  fpCUPS file
                  bufString buffer
                  buflenSize of string buffer
                  valuePointer to value
                  linenumCurrent line number
                  +

                  Return Value

                  +

                  Line read or NULL on end of file or error

                  +

                   CUPS 1.2/macOS 10.5 cupsFileGetLine

                  +

                  Get a CR and/or LF-terminated line that may +contain binary data.

                  +

                  +size_t cupsFileGetLine(cups_file_t *fp, char *buf, size_t buflen);

                  +

                  Parameters

                  + + + + + + + +
                  fpFile to read from
                  bufBuffer
                  buflenSize of buffer
                  +

                  Return Value

                  +

                  Number of bytes on line or 0 on end of file

                  +

                  Discussion

                  +

                  This function differs from cupsFileGets in that the trailing CR +and LF are preserved, as is any binary data on the line. The buffer is +nul-terminated, however you should use the returned length to determine +the number of bytes on the line. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsFileGets

                  +

                  Get a CR and/or LF-terminated line.

                  +

                  +char *cupsFileGets(cups_file_t *fp, char *buf, size_t buflen);

                  +

                  Parameters

                  + + + + + + + +
                  fpCUPS file
                  bufString buffer
                  buflenSize of string buffer
                  +

                  Return Value

                  +

                  Line read or NULL on end of file or error

                  +

                   CUPS 1.2/macOS 10.5 cupsFileLock

                  +

                  Temporarily lock access to a file.

                  +

                  +int cupsFileLock(cups_file_t *fp, int block);

                  +

                  Parameters

                  + + + + + +
                  fpCUPS file
                  block1 to wait for the lock, 0 to fail right away
                  +

                  Return Value

                  +

                  0 on success, -1 on error

                  +

                   CUPS 1.2/macOS 10.5 cupsFileNumber

                  +

                  Return the file descriptor associated with a CUPS file.

                  +

                  +int cupsFileNumber(cups_file_t *fp);

                  +

                  Parameters

                  + + + +
                  fpCUPS file
                  +

                  Return Value

                  +

                  File descriptor

                  +

                   CUPS 1.2/macOS 10.5 cupsFileOpen

                  +

                  Open a CUPS file.

                  +

                  +cups_file_t *cupsFileOpen(const char *filename, const char *mode);

                  +

                  Parameters

                  + + + + + +
                  filenameName of file
                  modeOpen mode
                  +

                  Return Value

                  +

                  CUPS file or NULL if the file or socket cannot be opened

                  +

                  Discussion

                  +

                  The "mode" parameter can be "r" to read, "w" to write, overwriting any +existing file, "a" to append to an existing file or create a new file, +or "s" to open a socket connection.
                  +
                  +When opening for writing ("w"), an optional number from 1 to 9 can be +supplied which enables Flate compression of the file. Compression is +not supported for the "a" (append) mode.
                  +
                  +When opening a socket connection, the filename is a string of the form +"address:port" or "hostname:port". The socket will make an IPv4 or IPv6 +connection as needed, generally preferring IPv6 connections when there is +a choice. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsFileOpenFd

                  +

                  Open a CUPS file using a file descriptor.

                  +

                  +cups_file_t *cupsFileOpenFd(int fd, const char *mode);

                  +

                  Parameters

                  + + + + + +
                  fdFile descriptor
                  modeOpen mode
                  +

                  Return Value

                  +

                  CUPS file or NULL if the file could not be opened

                  +

                  Discussion

                  +

                  The "mode" parameter can be "r" to read, "w" to write, "a" to append, +or "s" to treat the file descriptor as a bidirectional socket connection.
                  +
                  +When opening for writing ("w"), an optional number from 1 to 9 can be +supplied which enables Flate compression of the file. Compression is +not supported for the "a" (append) mode. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsFilePeekChar

                  +

                  Peek at the next character from a file.

                  +

                  +int cupsFilePeekChar(cups_file_t *fp);

                  +

                  Parameters

                  + + + +
                  fpCUPS file
                  +

                  Return Value

                  +

                  Character or -1 on end of file

                  +

                   CUPS 1.2/macOS 10.5 cupsFilePrintf

                  +

                  Write a formatted string.

                  +

                  +int cupsFilePrintf(cups_file_t *fp, const char *format, ...);

                  +

                  Parameters

                  + + + + + + + +
                  fpCUPS file
                  formatPrintf-style format string
                  ...Additional args as necessary
                  +

                  Return Value

                  +

                  Number of bytes written or -1 on error

                  +

                   CUPS 1.2/macOS 10.5 cupsFilePutChar

                  +

                  Write a character.

                  +

                  +int cupsFilePutChar(cups_file_t *fp, int c);

                  +

                  Parameters

                  + + + + + +
                  fpCUPS file
                  cCharacter to write
                  +

                  Return Value

                  +

                  0 on success, -1 on error

                  +

                   CUPS 1.4/macOS 10.6 cupsFilePutConf

                  +

                  Write a configuration line.

                  +

                  +ssize_t cupsFilePutConf(cups_file_t *fp, const char *directive, const char *value);

                  +

                  Parameters

                  + + + + + + + +
                  fpCUPS file
                  directiveDirective
                  valueValue
                  +

                  Return Value

                  +

                  Number of bytes written or -1 on error

                  +

                  Discussion

                  +

                  This function handles any comment escaping of the value. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsFilePuts

                  +

                  Write a string.

                  +

                  +int cupsFilePuts(cups_file_t *fp, const char *s);

                  +

                  Parameters

                  + + + + +
                  fpCUPS file
                  sString to write

                  Return Value

                  -

                  IPP status code

                  +

                  Number of bytes written or -1 on error

                  Discussion

                  -

                  Returns IPP_STATUS_OK or IPP_STATUS_OK_SUBST on success, saving the job ID -in the variable pointed to by "job_id". +

                  Like the fputs function, no newline is appended to the string.

                  -

                   CUPS 1.1.20/macOS 10.4 cupsDoAuthentication

                  -

                  Authenticate a request.

                  +

                   CUPS 1.2/macOS 10.5 cupsFileRead

                  +

                  Read from a file.

                  -int cupsDoAuthentication(http_t *http, const char *method, const char *resource);

                  +ssize_t cupsFileRead(cups_file_t *fp, char *buf, size_t bytes);

                  Parameters

                  - - - - - - + + + + + +
                  httpConnection to server or CUPS_HTTP_DEFAULT
                  methodRequest method ("GET", "POST", "PUT")
                  resourceResource path
                  fpCUPS file
                  bufBuffer
                  bytesNumber of bytes to read

                  Return Value

                  -

                  0 on success, -1 on error

                  -

                  Discussion

                  -

                  This function should be called in response to a HTTP_STATUS_UNAUTHORIZED -status, prior to resubmitting your request. - -

                  -

                   CUPS 2.3/macOS 10.14 cupsEncodeOption

                  -

                  Encode a single option into an IPP attribute.

                  +

                  Number of bytes read or -1 on error

                  +

                   CUPS 1.2/macOS 10.5 cupsFileRewind

                  +

                  Set the current file position to the beginning of the +file.

                  -ipp_attribute_t *cupsEncodeOption(ipp_t *ipp, ipp_tag_t group_tag, const char *name, const char *value);

                  +off_t cupsFileRewind(cups_file_t *fp);

                  Parameters

                  - - - - - - - - + +
                  ippIPP request/response
                  group_tagAttribute group
                  nameOption name
                  valueOption string value
                  fpCUPS file

                  Return Value

                  -

                  New attribute or NULL on error

                  -

                  cupsEncodeOptions

                  -

                  Encode printer options into IPP attributes.

                  +

                  New file position or -1 on error

                  +

                   CUPS 1.2/macOS 10.5 cupsFileSeek

                  +

                  Seek in a file.

                  -void cupsEncodeOptions(ipp_t *ipp, int num_options, cups_option_t *options);

                  +off_t cupsFileSeek(cups_file_t *fp, off_t pos);

                  Parameters

                  - - - - - - + + + +
                  ippIPP request/response
                  num_optionsNumber of options
                  optionsOptions
                  fpCUPS file
                  posPosition in file
                  -

                  Discussion

                  -

                  This function adds operation, job, and then subscription attributes, -in that order. Use the cupsEncodeOptions2 function to add attributes -for a single group.

                  -

                   CUPS 1.2/macOS 10.5 cupsEncodeOptions2

                  -

                  Encode printer options into IPP attributes for a group.

                  +

                  Return Value

                  +

                  New file position or -1 on error

                  +

                   CUPS 1.2/macOS 10.5 cupsFileStderr

                  +

                  Return a CUPS file associated with stderr.

                  -void cupsEncodeOptions2(ipp_t *ipp, int num_options, cups_option_t *options, ipp_tag_t group_tag);

                  +cups_file_t *cupsFileStderr(void);

                  +

                  Return Value

                  +

                  CUPS file

                  +

                   CUPS 1.2/macOS 10.5 cupsFileStdin

                  +

                  Return a CUPS file associated with stdin.

                  +

                  +cups_file_t *cupsFileStdin(void);

                  +

                  Return Value

                  +

                  CUPS file

                  +

                   CUPS 1.2/macOS 10.5 cupsFileStdout

                  +

                  Return a CUPS file associated with stdout.

                  +

                  +cups_file_t *cupsFileStdout(void);

                  +

                  Return Value

                  +

                  CUPS file

                  +

                   CUPS 1.2/macOS 10.5 cupsFileTell

                  +

                  Return the current file position.

                  +

                  +off_t cupsFileTell(cups_file_t *fp);

                  Parameters

                  - - - - - - - - + +
                  ippIPP request/response
                  num_optionsNumber of options
                  optionsOptions
                  group_tagGroup to encode
                  fpCUPS file
                  -

                  Discussion

                  -

                  This function only adds attributes for a single group. Call this -function multiple times for each group, or use cupsEncodeOptions -to add the standard groups. - -

                  -

                  cupsEncryption

                  -

                  Get the current encryption settings.

                  +

                  Return Value

                  +

                  File position

                  +

                   CUPS 1.2/macOS 10.5 cupsFileUnlock

                  +

                  Unlock access to a file.

                  -http_encryption_t cupsEncryption(void);

                  +int cupsFileUnlock(cups_file_t *fp);

                  +

                  Parameters

                  + + + +
                  fpCUPS file

                  Return Value

                  -

                  Encryption settings

                  -

                  Discussion

                  -

                  The default encryption setting comes from the CUPS_ENCRYPTION -environment variable, then the ~/.cups/client.conf file, and finally the -/etc/cups/client.conf file. If not set, the default is -HTTP_ENCRYPTION_IF_REQUESTED.
                  -
                  -Note: The current encryption setting is tracked separately for each thread -in a program. Multi-threaded programs that override the setting via the -cupsSetEncryption function need to do so in each thread for the same -setting to be used.

                  -

                   CUPS 1.6/macOS 10.8 cupsEnumDests

                  -

                  Enumerate available destinations with a callback function.

                  +

                  0 on success, -1 on error

                  +

                   CUPS 1.2/macOS 10.5 cupsFileWrite

                  +

                  Write to a file.

                  -int cupsEnumDests(unsigned flags, int msec, int *cancel, cups_ptype_t type, cups_ptype_t mask, cups_dest_cb_t cb, void *user_data);

                  +ssize_t cupsFileWrite(cups_file_t *fp, const char *buf, size_t bytes);

                  Parameters

                  - - - - - - - - - - - - - - + + + + + +
                  flagsEnumeration flags
                  msecTimeout in milliseconds, -1 for indefinite
                  cancelPointer to "cancel" variable
                  typePrinter type bits
                  maskMask for printer type bits
                  cbCallback function
                  user_dataUser data
                  fpCUPS file
                  bufBuffer
                  bytesNumber of bytes to write

                  Return Value

                  -

                  1 on success, 0 on failure

                  -

                  Discussion

                  -

                  Destinations are enumerated from one or more sources. The callback function -receives the user_data pointer and the destination pointer which can -be used as input to the cupsCopyDest function. The function must -return 1 to continue enumeration or 0 to stop.
                  -
                  -The type and mask arguments allow the caller to filter the -destinations that are enumerated. Passing 0 for both will enumerate all -printers. The constant CUPS_PRINTER_DISCOVERED is used to filter on -destinations that are available but have not yet been added locally.
                  -
                  -Enumeration happens on the current thread and does not return until all -destinations have been enumerated or the callback function returns 0.
                  -
                  -Note: The callback function will likely receive multiple updates for the same -destinations - it is up to the caller to suppress any duplicate destinations. - -

                  +

                  Number of bytes written or -1 on error

                   CUPS 1.7/macOS 10.9 cupsFindDestDefault

                  -

                  Find the default value(s) for the given option.

                  +

                  Find the default value(s) for the given option.

                  ipp_attribute_t *cupsFindDestDefault(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *option);

                  Parameters

                  - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  optionOption/attribute name
                  Option/attribute name

                  Return Value

                  -

                  Default attribute or NULL for none

                  +

                  Default attribute or NULL for none

                  Discussion

                  -

                  The returned value is an IPP attribute. Use the ippGetBoolean, +

                  The returned value is an IPP attribute. Use the ippGetBoolean, ippGetCollection, ippGetCount, ippGetDate, ippGetInteger, ippGetOctetString, ippGetRange, ippGetResolution, ippGetString, and ippGetValueTag @@ -1632,24 +2659,24 @@ functions to inspect the default value(s) as needed.

                   CUPS 1.7/macOS 10.9 cupsFindDestReady

                  -

                  Find the default value(s) for the given option.

                  +

                  Find the default value(s) for the given option.

                  ipp_attribute_t *cupsFindDestReady(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *option);

                  Parameters

                  - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  optionOption/attribute name
                  Option/attribute name

                  Return Value

                  -

                  Default attribute or NULL for none

                  +

                  Default attribute or NULL for none

                  Discussion

                  -

                  The returned value is an IPP attribute. Use the ippGetBoolean, +

                  The returned value is an IPP attribute. Use the ippGetBoolean, ippGetCollection, ippGetCount, ippGetDate, ippGetInteger, ippGetOctetString, ippGetRange, ippGetResolution, ippGetString, and ippGetValueTag @@ -1657,24 +2684,24 @@ functions to inspect the default value(s) as needed.

                   CUPS 1.7/macOS 10.9 cupsFindDestSupported

                  -

                  Find the default value(s) for the given option.

                  +

                  Find the default value(s) for the given option.

                  ipp_attribute_t *cupsFindDestSupported(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *option);

                  Parameters

                  - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  optionOption/attribute name
                  Option/attribute name

                  Return Value

                  -

                  Default attribute or NULL for none

                  +

                  Default attribute or NULL for none

                  Discussion

                  -

                  The returned value is an IPP attribute. Use the ippGetBoolean, +

                  The returned value is an IPP attribute. Use the ippGetBoolean, ippGetCollection, ippGetCount, ippGetDate, ippGetInteger, ippGetOctetString, ippGetRange, ippGetResolution, ippGetString, and ippGetValueTag @@ -1682,138 +2709,138 @@ functions to inspect the default value(s) as needed.

                   CUPS 1.6/macOS 10.8 cupsFinishDestDocument

                  -

                  Finish the current document.

                  +

                  Finish the current document.

                  ipp_status_t cupsFinishDestDocument(http_t *http, cups_dest_t *dest, cups_dinfo_t *info);

                  Parameters

                  - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  infoDestination information
                  Destination information

                  Return Value

                  -

                  Status of document submission

                  +

                  Status of document submission

                  Discussion

                  -

                  Returns IPP_STATUS_OK or IPP_STATUS_OK_SUBST on success. +

                  Returns IPP_STATUS_OK or IPP_STATUS_OK_SUBST on success.

                   CUPS 1.6/macOS 10.8 cupsFreeDestInfo

                  -

                  Free destination information obtained using +

                  Free destination information obtained using cupsCopyDestInfo.

                  void cupsFreeDestInfo(cups_dinfo_t *dinfo);

                  Parameters

                  - +
                  dinfoDestination information
                  Destination information

                  cupsFreeDests

                  -

                  Free the memory used by the list of destinations.

                  +

                  Free the memory used by the list of destinations.

                  void cupsFreeDests(int num_dests, cups_dest_t *dests);

                  Parameters

                  - + - +
                  num_destsNumber of destinations
                  Number of destinations
                  destsDestinations
                  Destinations

                  cupsFreeJobs

                  -

                  Free memory used by job data.

                  +

                  Free memory used by job data.

                  void cupsFreeJobs(int num_jobs, cups_job_t *jobs);

                  Parameters

                  - + - +
                  num_jobsNumber of jobs
                  Number of jobs
                  jobsJobs
                  Jobs

                  cupsFreeOptions

                  -

                  Free all memory used by options.

                  +

                  Free all memory used by options.

                  void cupsFreeOptions(int num_options, cups_option_t *options);

                  Parameters

                  - + - +
                  num_optionsNumber of options
                  Number of options
                  optionsPointer to options
                  Pointer to options

                  cupsGetDest

                  -

                  Get the named destination from the list.

                  +

                  Get the named destination from the list.

                  cups_dest_t *cupsGetDest(const char *name, const char *instance, int num_dests, cups_dest_t *dests);

                  Parameters

                  - + - + - + - +
                  nameDestination name or NULL for the default destination
                  Destination name or NULL for the default destination
                  instanceInstance name or NULL
                  Instance name or NULL
                  num_destsNumber of destinations
                  Number of destinations
                  destsDestinations
                  Destinations

                  Return Value

                  -

                  Destination pointer or NULL

                  +

                  Destination pointer or NULL

                  Discussion

                  -

                  Use the cupsEnumDests or cupsGetDests2 functions to get a +

                  Use the cupsEnumDests or cupsGetDests2 functions to get a list of supported destinations for the current user.

                   CUPS 1.7/macOS 10.9 cupsGetDestMediaByIndex

                  -

                  Get a media name, dimension, and margins for a +

                  Get a media name, dimension, and margins for a specific size.

                  int cupsGetDestMediaByIndex(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, int n, unsigned flags, cups_size_t *size);

                  Parameters

                  - + - + - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  nMedia size number (0-based)
                  Media size number (0-based)
                  flagsMedia flags
                  Media flags
                  sizeMedia size information
                  Media size information

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The flags parameter determines which set of media are indexed. For +

                  The flags parameter determines which set of media are indexed. For example, passing CUPS_MEDIA_FLAGS_BORDERLESS will get the Nth borderless size supported by the printer.

                   CUPS 1.6/macOS 10.8 cupsGetDestMediaByName

                  -

                  Get media names, dimensions, and margins.

                  +

                  Get media names, dimensions, and margins.

                  int cupsGetDestMediaByName(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *media, unsigned flags, cups_size_t *size);

                  Parameters

                  - + - + - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  mediaMedia name
                  Media name
                  flagsMedia matching flags
                  Media matching flags
                  sizeMedia size information
                  Media size information

                  Return Value

                  -

                  1 on match, 0 on failure

                  +

                  1 on match, 0 on failure

                  Discussion

                  -

                  The "media" string is a PWG media name. "Flags" provides some matching +

                  The "media" string is a PWG media name. "Flags" provides some matching guidance (multiple flags can be combined):

                  CUPS_MEDIA_FLAGS_DEFAULT = find the closest size supported by the printer, @@ -1829,32 +2856,32 @@ Returns 1 when there is a match and 0 if there is not a match.

                   CUPS 1.6/macOS 10.8 cupsGetDestMediaBySize

                  -

                  Get media names, dimensions, and margins.

                  +

                  Get media names, dimensions, and margins.

                  int cupsGetDestMediaBySize(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, int width, int length, unsigned flags, cups_size_t *size);

                  Parameters

                  - + - + - + - - - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  widthMedia width in hundredths of +Media width in hundredths of of millimeters
                  lengthMedia length in hundredths of +Media length in hundredths of of millimeters
                  flagsMedia matching flags
                  Media matching flags
                  sizeMedia size information
                  Media size information

                  Return Value

                  -

                  1 on match, 0 on failure

                  +

                  1 on match, 0 on failure

                  Discussion

                  -

                  "Width" and "length" are the dimensions in hundredths of millimeters. +

                  "Width" and "length" are the dimensions in hundredths of millimeters. "Flags" provides some matching guidance (multiple flags can be combined):

                  CUPS_MEDIA_FLAGS_DEFAULT = find the closest size supported by the printer, @@ -1870,89 +2897,89 @@ Returns 1 when there is a match and 0 if there is not a match.

                   CUPS 1.7/macOS 10.9 cupsGetDestMediaCount

                  -

                  Get the number of sizes supported by a +

                  Get the number of sizes supported by a destination.

                  int cupsGetDestMediaCount(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, unsigned flags);

                  Parameters

                  - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  flagsMedia flags
                  Media flags

                  Return Value

                  -

                  Number of sizes

                  +

                  Number of sizes

                  Discussion

                  -

                  The flags parameter determines the set of media sizes that are +

                  The flags parameter determines the set of media sizes that are counted. For example, passing CUPS_MEDIA_FLAGS_BORDERLESS will return the number of borderless sizes.

                   CUPS 1.7/macOS 10.9 cupsGetDestMediaDefault

                  -

                  Get the default size for a destination.

                  +

                  Get the default size for a destination.

                  int cupsGetDestMediaDefault(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, unsigned flags, cups_size_t *size);

                  Parameters

                  - + - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  flagsMedia flags
                  Media flags
                  sizeMedia size information
                  Media size information

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The flags parameter determines which default size is returned. For +

                  The flags parameter determines which default size is returned. For example, passing CUPS_MEDIA_FLAGS_BORDERLESS will return the default borderless size, typically US Letter or A4, but sometimes 4x6 photo media.

                   CUPS 2.0/macOS 10.10 cupsGetDestWithURI

                  -

                  Get a destination associated with a URI.

                  +

                  Get a destination associated with a URI.

                  cups_dest_t *cupsGetDestWithURI(const char *name, const char *uri);

                  Parameters

                  - + - +
                  nameDesired printer name or NULL
                  Desired printer name or NULL
                  uriURI for the printer
                  URI for the printer

                  Return Value

                  -

                  Destination or NULL

                  +

                  Destination or NULL

                  Discussion

                  -

                  "name" is the desired name for the printer. If NULL, a name will be +

                  "name" is the desired name for the printer. If NULL, a name will be created using the URI.

                  "uri" is the "ipp" or "ipps" URI for the printer.

                   CUPS 1.1.21/macOS 10.4 cupsGetDests2

                  -

                  Get the list of destinations from the specified server.

                  +

                  Get the list of destinations from the specified server.

                  int cupsGetDests2(http_t *http, cups_dest_t **dests);

                  Parameters

                  - + - +
                  httpConnection to server or CUPS_HTTP_DEFAULT
                  Connection to server or CUPS_HTTP_DEFAULT
                  destsDestinations
                  Destinations

                  Return Value

                  -

                  Number of destinations

                  +

                  Number of destinations

                  Discussion

                  -

                  Starting with CUPS 1.2, the returned list of destinations include the +

                  Starting with CUPS 1.2, the returned list of destinations include the "printer-info", "printer-is-accepting-jobs", "printer-is-shared", "printer-make-and-model", "printer-state", "printer-state-change-time", "printer-state-reasons", "printer-type", and "printer-uri-supported" @@ -1971,68 +2998,68 @@ the cupsGetDest function to find a parti

                   CUPS 2.2.4/macOS 10.13 cupsGetIntegerOption

                  -

                  Get an integer option value.

                  +

                  Get an integer option value.

                  int cupsGetIntegerOption(const char *name, int num_options, cups_option_t *options);

                  Parameters

                  - + - + - +
                  nameName of option
                  Name of option
                  num_optionsNumber of options
                  Number of options
                  optionsOptions
                  Options

                  Return Value

                  -

                  Option value or INT_MIN

                  +

                  Option value or INT_MIN

                  Discussion

                  -

                  INT_MIN is returned when the option does not exist, is not an integer, or +

                  INT_MIN is returned when the option does not exist, is not an integer, or exceeds the range of values for the "int" type.

                   CUPS 1.1.21/macOS 10.4 cupsGetJobs2

                  -

                  Get the jobs from the specified server.

                  +

                  Get the jobs from the specified server.

                  int cupsGetJobs2(http_t *http, cups_job_t **jobs, const char *name, int myjobs, int whichjobs);

                  Parameters

                  - + - + - + - + - +
                  httpConnection to server or CUPS_HTTP_DEFAULT
                  Connection to server or CUPS_HTTP_DEFAULT
                  jobsJob data
                  Job data
                  nameNULL = all destinations, otherwise show jobs for named destination
                  NULL = all destinations, otherwise show jobs for named destination
                  myjobs0 = all users, 1 = mine
                  0 = all users, 1 = mine
                  whichjobsCUPS_WHICHJOBS_ALL, CUPS_WHICHJOBS_ACTIVE, or CUPS_WHICHJOBS_COMPLETED
                  CUPS_WHICHJOBS_ALL, CUPS_WHICHJOBS_ACTIVE, or CUPS_WHICHJOBS_COMPLETED

                  Return Value

                  -

                  Number of jobs

                  +

                  Number of jobs

                  Discussion

                  -

                  A "whichjobs" value of CUPS_WHICHJOBS_ALL returns all jobs regardless +

                  A "whichjobs" value of CUPS_WHICHJOBS_ALL returns all jobs regardless of state, while CUPS_WHICHJOBS_ACTIVE returns jobs that are pending, processing, or held and CUPS_WHICHJOBS_COMPLETED returns jobs that are stopped, canceled, aborted, or completed.

                   CUPS 1.4/macOS 10.6 cupsGetNamedDest

                  -

                  Get options for the named destination.

                  +

                  Get options for the named destination.

                  cups_dest_t *cupsGetNamedDest(http_t *http, const char *name, const char *instance);

                  Parameters

                  - + - + - +
                  httpConnection to server or CUPS_HTTP_DEFAULT
                  Connection to server or CUPS_HTTP_DEFAULT
                  nameDestination name or NULL for the default destination
                  Destination name or NULL for the default destination
                  instanceInstance name or NULL
                  Instance name or NULL

                  Return Value

                  -

                  Destination or NULL

                  +

                  Destination or NULL

                  Discussion

                  -

                  This function is optimized for retrieving a single destination and should +

                  This function is optimized for retrieving a single destination and should be used instead of cupsGetDests2 and cupsGetDest when you either know the name of the destination or want to print to the default destination. If NULL is returned, the destination does not exist or @@ -2049,40 +3076,40 @@ The returned destination must be freed using cups

                  cupsGetOption

                  -

                  Get an option value.

                  +

                  Get an option value.

                  const char *cupsGetOption(const char *name, int num_options, cups_option_t *options);

                  Parameters

                  - + - + - +
                  nameName of option
                  Name of option
                  num_optionsNumber of options
                  Number of options
                  optionsOptions
                  Options

                  Return Value

                  -

                  Option value or NULL

                  +

                  Option value or NULL

                   CUPS 1.4/macOS 10.6 cupsGetPassword2

                  -

                  Get a password from the user using the current +

                  Get a password from the user using the current password callback.

                  const char *cupsGetPassword2(const char *prompt, http_t *http, const char *method, const char *resource);

                  Parameters

                  - + - + - + - +
                  promptPrompt string
                  Prompt string
                  httpConnection to server or CUPS_HTTP_DEFAULT
                  Connection to server or CUPS_HTTP_DEFAULT
                  methodRequest method ("GET", "POST", "PUT")
                  Request method ("GET", "POST", "PUT")
                  resourceResource path
                  Resource path

                  Return Value

                  -

                  Password

                  +

                  Password

                  Discussion

                  -

                  Uses the current password callback function. Returns NULL if the +

                  Uses the current password callback function. Returns NULL if the user does not provide a password.

                  Note: The current password callback function is tracked separately for each @@ -2092,165 +3119,385 @@ same function to be used.

                   CUPS 2.0/macOS 10.10 cupsLocalizeDestMedia

                  -

                  Get the localized string for a destination media +

                  Get the localized string for a destination media size.

                  const char *cupsLocalizeDestMedia(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, unsigned flags, cups_size_t *size);

                  Parameters

                  - + - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  flagsMedia flags
                  Media flags
                  sizeMedia size
                  Media size

                  Return Value

                  -

                  Localized string

                  +

                  Localized string

                  Discussion

                  -

                  The returned string is stored in the destination information and will become +

                  The returned string is stored in the destination information and will become invalid if the destination information is deleted.

                   CUPS 1.6/macOS 10.8 cupsLocalizeDestOption

                  -

                  Get the localized string for a destination +

                  Get the localized string for a destination option.

                  const char *cupsLocalizeDestOption(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *option);

                  Parameters

                  - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  optionOption to localize
                  Option to localize

                  Return Value

                  -

                  Localized string

                  +

                  Localized string

                  Discussion

                  -

                  The returned string is stored in the destination information and will become +

                  The returned string is stored in the destination information and will become invalid if the destination information is deleted.

                   CUPS 1.6/macOS 10.8 cupsLocalizeDestValue

                  -

                  Get the localized string for a destination +

                  Get the localized string for a destination option+value pair.

                  const char *cupsLocalizeDestValue(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *option, const char *value);

                  Parameters

                  - + - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  dinfoDestination information
                  Destination information
                  optionOption to localize
                  Option to localize
                  valueValue to localize
                  Value to localize

                  Return Value

                  -

                  Localized string

                  +

                  Localized string

                  Discussion

                  -

                  The returned string is stored in the destination information and will become +

                  The returned string is stored in the destination information and will become invalid if the destination information is deleted.

                   CUPS 2.0/OS 10.10 cupsMakeServerCredentials

                  -

                  Make a self-signed certificate and private key pair.

                  +

                  Make a self-signed certificate and private key pair.

                  int cupsMakeServerCredentials(const char *path, const char *common_name, int num_alt_names, const char **alt_names, time_t expiration_date);

                  Parameters

                  - + - + - + - + - +
                  pathKeychain path or NULL for default
                  Keychain path or NULL for default
                  common_nameCommon name
                  Common name
                  num_alt_namesNumber of subject alternate names
                  Number of subject alternate names
                  alt_namesSubject Alternate Names
                  Subject Alternate Names
                  expiration_dateExpiration date
                  Expiration date

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  cupsParseOptions

                  -

                  Parse options from a command-line argument.

                  +

                  Parse options from a command-line argument.

                  int cupsParseOptions(const char *arg, int num_options, cups_option_t **options);

                  Parameters

                  - + - + - +
                  argArgument to parse
                  Argument to parse
                  num_optionsNumber of options
                  Number of options
                  optionsOptions found
                  Options found

                  Return Value

                  -

                  Number of options found

                  +

                  Number of options found

                  Discussion

                  -

                  This function converts space-delimited name/value pairs according +

                  This function converts space-delimited name/value pairs according to the PAPI text option ABNF specification. Collection values ("name={a=... b=... c=...}") are stored with the curley brackets intact - use cupsParseOptions on the value to extract the collection attributes.

                  +

                  cupsRasterClose

                  +

                  Close a raster stream.

                  +

                  +void cupsRasterClose(cups_raster_t *r);

                  +

                  Parameters

                  + + + +
                  rStream to close
                  +

                  Discussion

                  +

                  The file descriptor associated with the raster stream must be closed +separately as needed.

                  +

                   CUPS 1.3/macOS 10.5 cupsRasterErrorString

                  +

                  Return the last error from a raster function.

                  +

                  +const char *cupsRasterErrorString(void);

                  +

                  Return Value

                  +

                  Last error or NULL

                  +

                  Discussion

                  +

                  If there are no recent errors, NULL is returned. + +

                  +

                   CUPS 2.2/macOS 10.12 cupsRasterInitPWGHeader

                  +

                  Initialize a page header for PWG Raster output.

                  +

                  +int cupsRasterInitPWGHeader(cups_page_header2_t *h, pwg_media_t *media, const char *type, int xdpi, int ydpi, const char *sides, const char *sheet_back);

                  +

                  Parameters

                  + + + + + + + + + + + + + + + +
                  hPage header
                  mediaPWG media information
                  typePWG raster type string
                  xdpiCross-feed direction (horizontal) resolution
                  ydpiFeed direction (vertical) resolution
                  sidesIPP "sides" option value
                  sheet_backTransform for back side or NULL for none
                  +

                  Return Value

                  +

                  1 on success, 0 on failure

                  +

                  Discussion

                  +

                  The "media" argument specifies the media to use.
                  +
                  +The "type" argument specifies a "pwg-raster-document-type-supported" value +that controls the color space and bit depth of the raster data.
                  +
                  +The "xres" and "yres" arguments specify the raster resolution in dots per +inch.
                  +
                  +The "sheet_back" argument specifies a "pwg-raster-document-sheet-back" value +to apply for the back side of a page. Pass NULL for the front side. + +

                  +

                  cupsRasterOpen

                  +

                  Open a raster stream using a file descriptor.

                  +

                  +cups_raster_t *cupsRasterOpen(int fd, cups_mode_t mode);

                  +

                  Parameters

                  + + + + + +
                  fdFile descriptor
                  modeMode - CUPS_RASTER_READ, +CUPS_RASTER_WRITE, +CUPS_RASTER_WRITE_COMPRESSED, +or CUPS_RASTER_WRITE_PWG
                  +

                  Return Value

                  +

                  New stream

                  +

                  Discussion

                  +

                  This function associates a raster stream with the given file descriptor. +For most printer driver filters, "fd" will be 0 (stdin). For most raster +image processor (RIP) filters that generate raster data, "fd" will be 1 +(stdout).
                  +
                  +When writing raster data, the CUPS_RASTER_WRITE, +CUPS_RASTER_WRITE_COMPRESS, or CUPS_RASTER_WRITE_PWG mode can +be used - compressed and PWG output is generally 25-50% smaller but adds a +100-300% execution time overhead.

                  +

                  cupsRasterOpenIO

                  +

                  Open a raster stream using a callback function.

                  +

                  +cups_raster_t *cupsRasterOpenIO(cups_raster_iocb_t iocb, void *ctx, cups_mode_t mode);

                  +

                  Parameters

                  + + + + + + + +
                  iocbRead/write callback
                  ctxContext pointer for callback
                  modeMode - CUPS_RASTER_READ, +CUPS_RASTER_WRITE, +CUPS_RASTER_WRITE_COMPRESSED, +or CUPS_RASTER_WRITE_PWG
                  +

                  Return Value

                  +

                  New stream

                  +

                  Discussion

                  +

                  This function associates a raster stream with the given callback function and +context pointer.
                  +
                  +When writing raster data, the CUPS_RASTER_WRITE, +CUPS_RASTER_WRITE_COMPRESS, or CUPS_RASTER_WRITE_PWG mode can +be used - compressed and PWG output is generally 25-50% smaller but adds a +100-300% execution time overhead.

                  +

                   DEPRECATED cupsRasterReadHeader

                  +

                  Read a raster page header and store it in a +version 1 page header structure.

                  +

                  +unsigned cupsRasterReadHeader(cups_raster_t *r, cups_page_header_t *h);

                  +

                  Parameters

                  + + + + + +
                  rRaster stream
                  hPointer to header data
                  +

                  Return Value

                  +

                  1 on success, 0 on failure/end-of-file

                  +

                  Discussion

                  +

                  This function is deprecated. Use cupsRasterReadHeader2 instead.
                  +
                  +Version 1 page headers were used in CUPS 1.0 and 1.1 and contain a subset +of the version 2 page header data. This function handles reading version 2 +page headers and copying only the version 1 data into the provided buffer. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsRasterReadHeader2

                  +

                  Read a raster page header and store it in a +version 2 page header structure.

                  +

                  +unsigned cupsRasterReadHeader2(cups_raster_t *r, cups_page_header2_t *h);

                  +

                  Parameters

                  + + + + + +
                  rRaster stream
                  hPointer to header data
                  +

                  Return Value

                  +

                  1 on success, 0 on failure/end-of-file

                  +

                  cupsRasterReadPixels

                  +

                  Read raster pixels.

                  +

                  +unsigned cupsRasterReadPixels(cups_raster_t *r, unsigned char *p, unsigned len);

                  +

                  Parameters

                  + + + + + + + +
                  rRaster stream
                  pPointer to pixel buffer
                  lenNumber of bytes to read
                  +

                  Return Value

                  +

                  Number of bytes read

                  +

                  Discussion

                  +

                  For best performance, filters should read one or more whole lines. +The "cupsBytesPerLine" value from the page header can be used to allocate +the line buffer and as the number of bytes to read.

                  +

                   DEPRECATED cupsRasterWriteHeader

                  +

                  Write a raster page header from a version 1 page +header structure.

                  +

                  +unsigned cupsRasterWriteHeader(cups_raster_t *r, cups_page_header_t *h);

                  +

                  Parameters

                  + + + + + +
                  rRaster stream
                  hRaster page header
                  +

                  Return Value

                  +

                  1 on success, 0 on failure

                  +

                  Discussion

                  +

                  This function is deprecated. Use cupsRasterWriteHeader2 instead. + +

                  +

                   CUPS 1.2/macOS 10.5 cupsRasterWriteHeader2

                  +

                  Write a raster page header from a version 2 +page header structure.

                  +

                  +unsigned cupsRasterWriteHeader2(cups_raster_t *r, cups_page_header2_t *h);

                  +

                  Parameters

                  + + + + + +
                  rRaster stream
                  hRaster page header
                  +

                  Return Value

                  +

                  1 on success, 0 on failure

                  +

                  Discussion

                  +

                  The page header can be initialized using cupsRasterInitPWGHeader. + +

                  +

                  cupsRasterWritePixels

                  +

                  Write raster pixels.

                  +

                  +unsigned cupsRasterWritePixels(cups_raster_t *r, unsigned char *p, unsigned len);

                  +

                  Parameters

                  + + + + + + + +
                  rRaster stream
                  pBytes to write
                  lenNumber of bytes to write
                  +

                  Return Value

                  +

                  Number of bytes written

                  +

                  Discussion

                  +

                  For best performance, filters should write one or more whole lines. +The "cupsBytesPerLine" value from the page header can be used to allocate +the line buffer and as the number of bytes to write.

                   CUPS 1.3/macOS 10.5 cupsRemoveDest

                  -

                  Remove a destination from the destination list.

                  +

                  Remove a destination from the destination list.

                  int cupsRemoveDest(const char *name, const char *instance, int num_dests, cups_dest_t **dests);

                  Parameters

                  - + - + - + - +
                  nameDestination name
                  Destination name
                  instanceInstance name or NULL
                  Instance name or NULL
                  num_destsNumber of destinations
                  Number of destinations
                  destsDestinations
                  Destinations

                  Return Value

                  -

                  New number of destinations

                  +

                  New number of destinations

                  Discussion

                  -

                  Removing a destination/instance does not delete the class or printer +

                  Removing a destination/instance does not delete the class or printer queue, merely the lpoptions for that destination/instance. Use the cupsSetDests or cupsSetDests2 functions to save the new options for the user.

                   CUPS 1.2/macOS 10.5 cupsRemoveOption

                  -

                  Remove an option from an option array.

                  +

                  Remove an option from an option array.

                  int cupsRemoveOption(const char *name, int num_options, cups_option_t **options);

                  Parameters

                  - + - + - +
                  nameOption name
                  Option name
                  num_optionsCurrent number of options
                  Current number of options
                  optionsOptions
                  Options

                  Return Value

                  -

                  New number of options

                  +

                  New number of options

                  cupsServer

                  -

                  Return the hostname/address of the current server.

                  +

                  Return the hostname/address of the current server.

                  const char *cupsServer(void);

                  Return Value

                  -

                  Server name

                  +

                  Server name

                  Discussion

                  -

                  The default server comes from the CUPS_SERVER environment variable, then the +

                  The default server comes from the CUPS_SERVER environment variable, then the ~/.cups/client.conf file, and finally the /etc/cups/client.conf file. If not set, the default is the local system - either "localhost" or a domain socket path.
                  @@ -2263,18 +3510,18 @@ Multi-threaded programs that override the server via the cupsSetServer function need to do so in each thread for the same server to be used.

                   CUPS 1.5/macOS 10.7 cupsSetClientCertCB

                  -

                  Set the client certificate callback.

                  +

                  Set the client certificate callback.

                  void cupsSetClientCertCB(cups_client_cert_cb_t cb, void *user_data);

                  Parameters

                  - + - +
                  cbCallback function
                  Callback function
                  user_dataUser data pointer
                  User data pointer

                  Discussion

                  -

                  Pass NULL to restore the default callback.
                  +

                  Pass NULL to restore the default callback.

                  Note: The current certificate callback is tracked separately for each thread in a program. Multi-threaded programs that override the callback need to do @@ -2282,69 +3529,69 @@ so in each thread for the same callback to be used.

                   CUPS 1.5/macOS 10.7 cupsSetCredentials

                  -

                  Set the default credentials to be used for SSL/TLS +

                  Set the default credentials to be used for SSL/TLS connections.

                  -int cupsSetCredentials(cups_array_t *credentials);

                  +int cupsSetCredentials(cups_array_t *credentials);

                  Parameters

                  - +
                  credentialsArray of credentials
                  Array of credentials

                  Return Value

                  -

                  Status of call (0 = success)

                  +

                  Status of call (0 = success)

                  Discussion

                  -

                  Note: The default credentials are tracked separately for each thread in a +

                  Note: The default credentials are tracked separately for each thread in a program. Multi-threaded programs that override the setting need to do so in each thread for the same setting to be used.

                   CUPS 1.3/macOS 10.5 cupsSetDefaultDest

                  -

                  Set the default destination.

                  +

                  Set the default destination.

                  void cupsSetDefaultDest(const char *name, const char *instance, int num_dests, cups_dest_t *dests);

                  Parameters

                  - + - + - + - +
                  nameDestination name
                  Destination name
                  instanceInstance name or NULL
                  Instance name or NULL
                  num_destsNumber of destinations
                  Number of destinations
                  destsDestinations
                  Destinations

                   CUPS 1.1.21/macOS 10.4 cupsSetDests2

                  -

                  Save the list of destinations for the specified server.

                  +

                  Save the list of destinations for the specified server.

                  int cupsSetDests2(http_t *http, int num_dests, cups_dest_t *dests);

                  Parameters

                  - + - + - +
                  httpConnection to server or CUPS_HTTP_DEFAULT
                  Connection to server or CUPS_HTTP_DEFAULT
                  num_destsNumber of destinations
                  Number of destinations
                  destsDestinations
                  Destinations

                  Return Value

                  -

                  0 on success, -1 on error

                  +

                  0 on success, -1 on error

                  Discussion

                  -

                  This function saves the destinations to /etc/cups/lpoptions when run +

                  This function saves the destinations to /etc/cups/lpoptions when run as root and ~/.cups/lpoptions when run as a normal user.

                  cupsSetEncryption

                  -

                  Set the encryption preference.

                  +

                  Set the encryption preference.

                  void cupsSetEncryption(http_encryption_t e);

                  Parameters

                  - +
                  eNew encryption preference
                  New encryption preference

                  Discussion

                  -

                  The default encryption setting comes from the CUPS_ENCRYPTION +

                  The default encryption setting comes from the CUPS_ENCRYPTION environment variable, then the ~/.cups/client.conf file, and finally the /etc/cups/client.conf file. If not set, the default is HTTP_ENCRYPTION_IF_REQUESTED.
                  @@ -2353,18 +3600,18 @@ Note: The current encryption setting is tracked separately for each thread in a program. Multi-threaded programs that override the setting need to do so in each thread for the same setting to be used.

                   CUPS 1.4/macOS 10.6 cupsSetPasswordCB2

                  -

                  Set the advanced password callback for CUPS.

                  +

                  Set the advanced password callback for CUPS.

                  void cupsSetPasswordCB2(cups_password_cb2_t cb, void *user_data);

                  Parameters

                  - + - +
                  cbCallback function
                  Callback function
                  user_dataUser data pointer
                  User data pointer

                  Discussion

                  -

                  Pass NULL to restore the default (console) password callback, which +

                  Pass NULL to restore the default (console) password callback, which reads the password from the console. Programs should call either this function or cupsSetPasswordCB2, as only one callback can be registered by a program per thread.
                  @@ -2375,16 +3622,16 @@ so in each thread for the same callback to be used.

                  cupsSetServer

                  -

                  Set the default server name and port.

                  +

                  Set the default server name and port.

                  void cupsSetServer(const char *server);

                  Parameters

                  - +
                  serverServer name
                  Server name

                  Discussion

                  -

                  The "server" string can be a fully-qualified hostname, a numeric +

                  The "server" string can be a fully-qualified hostname, a numeric IPv4 or IPv6 address, or a domain socket pathname. Hostnames and numeric IP addresses can be optionally followed by a colon and port number to override the default port 631, e.g. "hostname:8631". Pass NULL to restore the @@ -2394,18 +3641,18 @@ Note: The current server is tracked separately for each thread in a program. Multi-threaded programs that override the server need to do so in each thread for the same server to be used.

                   CUPS 1.5/macOS 10.7 cupsSetServerCertCB

                  -

                  Set the server certificate callback.

                  +

                  Set the server certificate callback.

                  void cupsSetServerCertCB(cups_server_cert_cb_t cb, void *user_data);

                  Parameters

                  - + - +
                  cbCallback function
                  Callback function
                  user_dataUser data pointer
                  User data pointer

                  Discussion

                  -

                  Pass NULL to restore the default callback.
                  +

                  Pass NULL to restore the default callback.

                  Note: The current credentials callback is tracked separately for each thread in a program. Multi-threaded programs that override the callback need to do @@ -2413,83 +3660,83 @@ so in each thread for the same callback to be used.

                   CUPS 2.0/macOS 10.10 cupsSetServerCredentials

                  -

                  Set the default server credentials.

                  +

                  Set the default server credentials.

                  int cupsSetServerCredentials(const char *path, const char *common_name, int auto_create);

                  Parameters

                  - + - + - +
                  pathKeychain path or NULL for default
                  Keychain path or NULL for default
                  common_nameDefault common name for server
                  Default common name for server
                  auto_create1 = automatically create self-signed certificates
                  1 = automatically create self-signed certificates

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  Note: The server credentials are used by all threads in the running process. +

                  Note: The server credentials are used by all threads in the running process. This function is threadsafe.

                  cupsSetUser

                  -

                  Set the default user name.

                  +

                  Set the default user name.

                  void cupsSetUser(const char *user);

                  Parameters

                  - +
                  userUser name
                  User name

                  Discussion

                  -

                  Pass NULL to restore the default user name.
                  +

                  Pass NULL to restore the default user name.

                  Note: The current user name is tracked separately for each thread in a program. Multi-threaded programs that override the user name need to do so in each thread for the same user name to be used.

                   CUPS 1.7/macOS 10.9 cupsSetUserAgent

                  -

                  Set the default HTTP User-Agent string.

                  +

                  Set the default HTTP User-Agent string.

                  void cupsSetUserAgent(const char *user_agent);

                  Parameters

                  - +
                  user_agentUser-Agent string or NULL
                  User-Agent string or NULL

                  Discussion

                  -

                  Setting the string to NULL forces the default value containing the CUPS +

                  Setting the string to NULL forces the default value containing the CUPS version, IPP version, and operating system version and architecture.

                   CUPS 1.6/macOS 10.8 cupsStartDestDocument

                  -

                  Start a new document.

                  +

                  Start a new document.

                  http_status_t cupsStartDestDocument(http_t *http, cups_dest_t *dest, cups_dinfo_t *info, int job_id, const char *docname, const char *format, int num_options, cups_option_t *options, int last_document);

                  Parameters

                  - + - + - + - + - + - + - + - + - +
                  httpConnection to destination
                  Connection to destination
                  destDestination
                  Destination
                  infoDestination information
                  Destination information
                  job_idJob ID
                  Job ID
                  docnameDocument name
                  Document name
                  formatDocument format
                  Document format
                  num_optionsNumber of document options
                  Number of document options
                  optionsDocument options
                  Document options
                  last_document1 if this is the last document
                  1 if this is the last document

                  Return Value

                  -

                  Status of document creation

                  +

                  Status of document creation

                  Discussion

                  -

                  "job_id" is the job ID returned by cupsCreateDestJob. "docname" is the name +

                  "job_id" is the job ID returned by cupsCreateDestJob. "docname" is the name of the document/file being printed, "format" is the MIME media type for the document (see CUPS_FORMAT_xxx constants), and "num_options" and "options" are the options do be applied to the document. "last_document" should be 1 @@ -2498,304 +3745,304 @@ if this is the last document to be submitted in the job. Returns

                  cupsUser

                  -

                  Return the current user's name.

                  +

                  Return the current user's name.

                  const char *cupsUser(void);

                  Return Value

                  -

                  User name

                  +

                  User name

                  Discussion

                  -

                  Note: The current user name is tracked separately for each thread in a +

                  Note: The current user name is tracked separately for each thread in a program. Multi-threaded programs that override the user name with the cupsSetUser function need to do so in each thread for the same user name to be used.

                   CUPS 1.7/macOS 10.9 cupsUserAgent

                  -

                  Return the default HTTP User-Agent string.

                  +

                  Return the default HTTP User-Agent string.

                  const char *cupsUserAgent(void);

                  Return Value

                  -

                  User-Agent string

                  +

                  User-Agent string

                   CUPS 1.7/macOS 10.9 httpAcceptConnection

                  -

                  Accept a new HTTP client connection from the +

                  Accept a new HTTP client connection from the specified listening socket.

                  http_t *httpAcceptConnection(int fd, int blocking);

                  Parameters

                  - + -
                  fdListen socket file descriptor
                  Listen socket file descriptor
                  blocking1 if the connection should be +1 if the connection should be blocking, 0 otherwise

                  Return Value

                  -

                  HTTP connection or NULL

                  +

                  HTTP connection or NULL

                   CUPS 1.5/macOS 10.7 httpAddCredential

                  -

                  Allocates and adds a single credential to an array.

                  +

                  Allocates and adds a single credential to an array.

                  -int httpAddCredential(cups_array_t *credentials, const void *data, size_t datalen);

                  +int httpAddCredential(cups_array_t *credentials, const void *data, size_t datalen);

                  Parameters

                  - + - + - +
                  credentialsCredentials array
                  Credentials array
                  dataPEM-encoded X.509 data
                  PEM-encoded X.509 data
                  datalenLength of data
                  Length of data

                  Return Value

                  -

                  0 on success, -1 on error

                  +

                  0 on success, -1 on error

                  Discussion

                  -

                  Use cupsArrayNew(NULL, NULL) to create a credentials array. +

                  Use cupsArrayNew(NULL, NULL) to create a credentials array.

                   CUPS 1.2/macOS 10.5 httpAddrAny

                  -

                  Check for the "any" address.

                  +

                  Check for the "any" address.

                  int httpAddrAny(const http_addr_t *addr);

                  Parameters

                  - +
                  addrAddress to check
                  Address to check

                  Return Value

                  -

                  1 if "any", 0 otherwise

                  +

                  1 if "any", 0 otherwise

                   CUPS 2.0/OS 10.10 httpAddrClose

                  -

                  Close a socket created by httpAddrConnect or +

                  Close a socket created by httpAddrConnect or httpAddrListen.

                  int httpAddrClose(http_addr_t *addr, int fd);

                  Parameters

                  - + - +
                  addrListen address or NULL
                  Listen address or NULL
                  fdSocket file descriptor
                  Socket file descriptor

                  Return Value

                  -

                  0 on success, -1 on failure

                  +

                  0 on success, -1 on failure

                  Discussion

                  -

                  Pass NULL for sockets created with httpAddrConnect2 and the +

                  Pass NULL for sockets created with httpAddrConnect2 and the listen address for sockets created with httpAddrListen. This function ensures that domain sockets are removed when closed.

                   CUPS 1.7/macOS 10.9 httpAddrConnect2

                  -

                  Connect to any of the addresses in the list with a +

                  Connect to any of the addresses in the list with a timeout and optional cancel.

                  http_addrlist_t *httpAddrConnect2(http_addrlist_t *addrlist, int *sock, int msec, int *cancel);

                  Parameters

                  - + - + - + - +
                  addrlistList of potential addresses
                  List of potential addresses
                  sockSocket
                  Socket
                  msecTimeout in milliseconds
                  Timeout in milliseconds
                  cancelPointer to "cancel" variable
                  Pointer to "cancel" variable

                  Return Value

                  -

                  Connected address or NULL on failure

                  +

                  Connected address or NULL on failure

                   CUPS 1.7/macOS 10.9 httpAddrCopyList

                  -

                  Copy an address list.

                  +

                  Copy an address list.

                  http_addrlist_t *httpAddrCopyList(http_addrlist_t *src);

                  Parameters

                  - +
                  srcSource address list
                  Source address list

                  Return Value

                  -

                  New address list or NULL on error

                  +

                  New address list or NULL on error

                   CUPS 1.2/macOS 10.5 httpAddrEqual

                  -

                  Compare two addresses.

                  +

                  Compare two addresses.

                  int httpAddrEqual(const http_addr_t *addr1, const http_addr_t *addr2);

                  Parameters

                  - + - +
                  addr1First address
                  First address
                  addr2Second address
                  Second address

                  Return Value

                  -

                  1 if equal, 0 if not

                  +

                  1 if equal, 0 if not

                  httpAddrFamily

                  -

                  Get the address family of an address.

                  +

                  Get the address family of an address.

                  int httpAddrFamily(http_addr_t *addr);

                  Parameters

                  - +
                  addrAddress
                  Address

                  Return Value

                  -

                  Address family

                  +

                  Address family

                   CUPS 1.2/macOS 10.5 httpAddrFreeList

                  -

                  Free an address list.

                  +

                  Free an address list.

                  void httpAddrFreeList(http_addrlist_t *addrlist);

                  Parameters

                  - +
                  addrlistAddress list to free
                  Address list to free

                   CUPS 1.2/macOS 10.5 httpAddrGetList

                  -

                  Get a list of addresses for a hostname.

                  +

                  Get a list of addresses for a hostname.

                  http_addrlist_t *httpAddrGetList(const char *hostname, int family, const char *service);

                  Parameters

                  - + - + - +
                  hostnameHostname, IP address, or NULL for passive listen address
                  Hostname, IP address, or NULL for passive listen address
                  familyAddress family or AF_UNSPEC
                  Address family or AF_UNSPEC
                  serviceService name or port number
                  Service name or port number

                  Return Value

                  -

                  List of addresses or NULL

                  +

                  List of addresses or NULL

                   CUPS 1.2/macOS 10.5 httpAddrLength

                  -

                  Return the length of the address in bytes.

                  +

                  Return the length of the address in bytes.

                  int httpAddrLength(const http_addr_t *addr);

                  Parameters

                  - +
                  addrAddress
                  Address

                  Return Value

                  -

                  Length in bytes

                  +

                  Length in bytes

                   CUPS 1.7/macOS 10.9 httpAddrListen

                  -

                  Create a listening socket bound to the specified +

                  Create a listening socket bound to the specified address and port.

                  int httpAddrListen(http_addr_t *addr, int port);

                  Parameters

                  - + - +
                  addrAddress to bind to
                  Address to bind to
                  portPort number to bind to
                  Port number to bind to

                  Return Value

                  -

                  Socket or -1 on error

                  +

                  Socket or -1 on error

                   CUPS 1.2/macOS 10.5 httpAddrLocalhost

                  -

                  Check for the local loopback address.

                  +

                  Check for the local loopback address.

                  int httpAddrLocalhost(const http_addr_t *addr);

                  Parameters

                  - +
                  addrAddress to check
                  Address to check

                  Return Value

                  -

                  1 if local host, 0 otherwise

                  +

                  1 if local host, 0 otherwise

                   CUPS 1.2/macOS 10.5 httpAddrLookup

                  -

                  Lookup the hostname associated with the address.

                  +

                  Lookup the hostname associated with the address.

                  char *httpAddrLookup(const http_addr_t *addr, char *name, int namelen);

                  Parameters

                  - + - + - +
                  addrAddress to lookup
                  Address to lookup
                  nameHost name buffer
                  Host name buffer
                  namelenSize of name buffer
                  Size of name buffer

                  Return Value

                  -

                  Host name

                  +

                  Host name

                   CUPS 1.7/macOS 10.9 httpAddrPort

                  -

                  Get the port number associated with an address.

                  +

                  Get the port number associated with an address.

                  int httpAddrPort(http_addr_t *addr);

                  Parameters

                  - +
                  addrAddress
                  Address

                  Return Value

                  -

                  Port number

                  +

                  Port number

                   CUPS 1.2/macOS 10.5 httpAddrString

                  -

                  Convert an address to a numeric string.

                  +

                  Convert an address to a numeric string.

                  char *httpAddrString(const http_addr_t *addr, char *s, int slen);

                  Parameters

                  - + - + - +
                  addrAddress to convert
                  Address to convert
                  sString buffer
                  String buffer
                  slenLength of string
                  Length of string

                  Return Value

                  -

                  Numeric address string

                  +

                  Numeric address string

                   CUPS 1.2/macOS 10.5 httpAssembleURI

                  -

                  Assemble a uniform resource identifier from its +

                  Assemble a uniform resource identifier from its components.

                  http_uri_status_t httpAssembleURI(http_uri_coding_t encoding, char *uri, int urilen, const char *scheme, const char *username, const char *host, int port, const char *resource);

                  Parameters

                  - + - + - + - + - + - + - + - +
                  encodingEncoding flags
                  Encoding flags
                  uriURI buffer
                  URI buffer
                  urilenSize of URI buffer
                  Size of URI buffer
                  schemeScheme name
                  Scheme name
                  usernameUsername
                  Username
                  hostHostname or address
                  Hostname or address
                  portPort number
                  Port number
                  resourceResource
                  Resource

                  Return Value

                  -

                  URI status

                  +

                  URI status

                  Discussion

                  -

                  This function escapes reserved characters in the URI depending on the +

                  This function escapes reserved characters in the URI depending on the value of the "encoding" argument. You should use this function in place of traditional string functions whenever you need to create a URI string.

                   CUPS 1.2/macOS 10.5 httpAssembleURIf

                  -

                  Assemble a uniform resource identifier from its +

                  Assemble a uniform resource identifier from its components with a formatted resource.

                  http_uri_status_t httpAssembleURIf(http_uri_coding_t encoding, char *uri, int urilen, const char *scheme, const char *username, const char *host, int port, const char *resourcef, ...);

                  Parameters

                  - + - + - + - + - + - + - + - + - +
                  encodingEncoding flags
                  Encoding flags
                  uriURI buffer
                  URI buffer
                  urilenSize of URI buffer
                  Size of URI buffer
                  schemeScheme name
                  Scheme name
                  usernameUsername
                  Username
                  hostHostname or address
                  Hostname or address
                  portPort number
                  Port number
                  resourcefPrintf-style resource
                  Printf-style resource
                  ...Additional arguments as needed
                  Additional arguments as needed

                  Return Value

                  -

                  URI status

                  +

                  URI status

                  Discussion

                  -

                  This function creates a formatted version of the resource string +

                  This function creates a formatted version of the resource string argument "resourcef" and escapes reserved characters in the URI depending on the value of the "encoding" argument. You should use this function in place of traditional string functions whenever @@ -2803,28 +4050,28 @@ you need to create a URI string.

                   CUPS 1.7/macOS 10.9 httpAssembleUUID

                  -

                  Assemble a name-based UUID URN conforming to RFC 4122.

                  +

                  Assemble a name-based UUID URN conforming to RFC 4122.

                  char *httpAssembleUUID(const char *server, int port, const char *name, int number, char *buffer, size_t bufsize);

                  Parameters

                  - + - + - + - + - + - +
                  serverServer name
                  Server name
                  portPort number
                  Port number
                  nameObject name or NULL
                  Object name or NULL
                  numberObject number or 0
                  Object number or 0
                  bufferString buffer
                  String buffer
                  bufsizeSize of buffer
                  Size of buffer

                  Return Value

                  -

                  UUID string

                  +

                  UUID string

                  Discussion

                  -

                  This function creates a unique 128-bit identifying number using the server +

                  This function creates a unique 128-bit identifying number using the server name, port number, random data, and optionally an object name and/or object number. The result is formatted as a UUID URN as defined in RFC 4122.

                  @@ -2832,315 +4079,315 @@ The buffer needs to be at least 46 bytes in size.

                  httpBlocking

                  -

                  Set blocking/non-blocking behavior on a connection.

                  +

                  Set blocking/non-blocking behavior on a connection.

                  void httpBlocking(http_t *http, int b);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  b1 = blocking, 0 = non-blocking
                  1 = blocking, 0 = non-blocking

                  httpCheck

                  -

                  Check to see if there is a pending response from the server.

                  +

                  Check to see if there is a pending response from the server.

                  int httpCheck(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  0 = no data, 1 = data available

                  +

                  0 = no data, 1 = data available

                   CUPS 1.1.19/macOS 10.3 httpClearCookie

                  -

                  Clear the cookie value(s).

                  +

                  Clear the cookie value(s).

                  void httpClearCookie(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  httpClearFields

                  -

                  Clear HTTP request fields.

                  +

                  Clear HTTP request fields.

                  void httpClearFields(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  httpClose

                  -

                  Close an HTTP connection.

                  +

                  Close an HTTP connection.

                  void httpClose(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                   CUPS 2.0/OS 10.10 httpCompareCredentials

                  -

                  Compare two sets of X.509 credentials.

                  +

                  Compare two sets of X.509 credentials.

                  -int httpCompareCredentials(cups_array_t *cred1, cups_array_t *cred2);

                  +int httpCompareCredentials(cups_array_t *cred1, cups_array_t *cred2);

                  Parameters

                  - + - +
                  cred1First set of X.509 credentials
                  First set of X.509 credentials
                  cred2Second set of X.509 credentials
                  Second set of X.509 credentials

                  Return Value

                  -

                  1 if they match, 0 if they do not

                  +

                  1 if they match, 0 if they do not

                   CUPS 1.7/macOS 10.9 httpConnect2

                  -

                  Connect to a HTTP server.

                  +

                  Connect to a HTTP server.

                  http_t *httpConnect2(const char *host, int port, http_addrlist_t *addrlist, int family, http_encryption_t encryption, int blocking, int msec, int *cancel);

                  Parameters

                  - + - + - + - + - + - + - + - +
                  hostHost to connect to
                  Host to connect to
                  portPort number
                  Port number
                  addrlistList of addresses or NULL to lookup
                  List of addresses or NULL to lookup
                  familyAddress family to use or AF_UNSPEC for any
                  Address family to use or AF_UNSPEC for any
                  encryptionType of encryption to use
                  Type of encryption to use
                  blocking1 for blocking connection, 0 for non-blocking
                  1 for blocking connection, 0 for non-blocking
                  msecConnection timeout in milliseconds, 0 means don't connect
                  Connection timeout in milliseconds, 0 means don't connect
                  cancelPointer to "cancel" variable
                  Pointer to "cancel" variable

                  Return Value

                  -

                  New HTTP connection

                  +

                  New HTTP connection

                   CUPS 1.5/macOS 10.7 httpCopyCredentials

                  -

                  Copy the credentials associated with the peer in +

                  Copy the credentials associated with the peer in an encrypted connection.

                  -int httpCopyCredentials(http_t *http, cups_array_t **credentials);

                  +int httpCopyCredentials(http_t *http, cups_array_t **credentials);

                  Parameters

                  - + - +
                  httpConnection to server
                  Connection to server
                  credentialsArray of credentials
                  Array of credentials

                  Return Value

                  -

                  Status of call (0 = success)

                  +

                  Status of call (0 = success)

                   CUPS 2.0/macOS 10.10 httpCredentialsAreValidForName

                  -

                  Return whether the credentials are valid for the given name.

                  +

                  Return whether the credentials are valid for the given name.

                  -int httpCredentialsAreValidForName(cups_array_t *credentials, const char *common_name);

                  +int httpCredentialsAreValidForName(cups_array_t *credentials, const char *common_name);

                  Parameters

                  - + - +
                  credentialsCredentials
                  Credentials
                  common_nameName to check
                  Name to check

                  Return Value

                  -

                  1 if valid, 0 otherwise

                  +

                  1 if valid, 0 otherwise

                   CUPS 2.0/macOS 10.10 httpCredentialsGetExpiration

                  -

                  Return the expiration date of the credentials.

                  +

                  Return the expiration date of the credentials.

                  -time_t httpCredentialsGetExpiration(cups_array_t *credentials);

                  +time_t httpCredentialsGetExpiration(cups_array_t *credentials);

                  Parameters

                  - +
                  credentialsCredentials
                  Credentials

                  Return Value

                  -

                  Expiration date of credentials

                  +

                  Expiration date of credentials

                   CUPS 2.0/macOS 10.10 httpCredentialsGetTrust

                  -

                  Return the trust of credentials.

                  +

                  Return the trust of credentials.

                  -http_trust_t httpCredentialsGetTrust(cups_array_t *credentials, const char *common_name);

                  +http_trust_t httpCredentialsGetTrust(cups_array_t *credentials, const char *common_name);

                  Parameters

                  - + - +
                  credentialsCredentials
                  Credentials
                  common_nameCommon name for trust lookup
                  Common name for trust lookup

                  Return Value

                  -

                  Level of trust

                  +

                  Level of trust

                   CUPS 2.0/macOS 10.10 httpCredentialsString

                  -

                  Return a string representing the credentials.

                  +

                  Return a string representing the credentials.

                  -size_t httpCredentialsString(cups_array_t *credentials, char *buffer, size_t bufsize);

                  +size_t httpCredentialsString(cups_array_t *credentials, char *buffer, size_t bufsize);

                  Parameters

                  - + - + - +
                  credentialsCredentials
                  Credentials
                  bufferBuffer or NULL
                  Buffer or NULL
                  bufsizeSize of buffer
                  Size of buffer

                  Return Value

                  -

                  Total size of credentials string

                  +

                  Total size of credentials string

                   CUPS 1.1.21/macOS 10.4 httpDecode64_2

                  -

                  Base64-decode a string.

                  +

                  Base64-decode a string.

                  char *httpDecode64_2(char *out, int *outlen, const char *in);

                  Parameters

                  - + - + - +
                  outString to write to
                  String to write to
                  outlenSize of output string
                  Size of output string
                  inString to read from
                  String to read from

                  Return Value

                  -

                  Decoded string

                  +

                  Decoded string

                  Discussion

                  -

                  The caller must initialize "outlen" to the maximum size of the decoded +

                  The caller must initialize "outlen" to the maximum size of the decoded string before calling httpDecode64_2. On return "outlen" contains the decoded length of the string.

                  httpDelete

                  -

                  Send a DELETE request to the server.

                  +

                  Send a DELETE request to the server.

                  int httpDelete(http_t *http, const char *uri);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  uriURI to delete
                  URI to delete

                  Return Value

                  -

                  Status of call (0 = success)

                  +

                  Status of call (0 = success)

                   CUPS 1.1.21/macOS 10.4 httpEncode64_2

                  -

                  Base64-encode a string.

                  +

                  Base64-encode a string.

                  char *httpEncode64_2(char *out, int outlen, const char *in, int inlen);

                  Parameters

                  - + - + - + - +
                  outString to write to
                  String to write to
                  outlenMaximum size of output string
                  Maximum size of output string
                  inString to read from
                  String to read from
                  inlenSize of input string
                  Size of input string

                  Return Value

                  -

                  Encoded string

                  +

                  Encoded string

                  httpEncryption

                  -

                  Set the required encryption on the link.

                  +

                  Set the required encryption on the link.

                  int httpEncryption(http_t *http, http_encryption_t e);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  eNew encryption preference
                  New encryption preference

                  Return Value

                  -

                  -1 on error, 0 on success

                  +

                  -1 on error, 0 on success

                  httpError

                  -

                  Get the last error on a connection.

                  +

                  Get the last error on a connection.

                  int httpError(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Error code (errno) value

                  +

                  Error code (errno) value

                  httpFieldValue

                  -

                  Return the HTTP field enumeration value for a field +

                  Return the HTTP field enumeration value for a field name.

                  http_field_t httpFieldValue(const char *name);

                  Parameters

                  - +
                  nameString name
                  String name

                  Return Value

                  -

                  Field index

                  +

                  Field index

                  httpFlush

                  -

                  Flush data read from a HTTP connection.

                  +

                  Flush data read from a HTTP connection.

                  void httpFlush(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                   CUPS 1.2/macOS 10.5 httpFlushWrite

                  -

                  Flush data written to a HTTP connection.

                  +

                  Flush data written to a HTTP connection.

                  int httpFlushWrite(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Bytes written or -1 on error

                  +

                  Bytes written or -1 on error

                  httpFreeCredentials

                  -

                  Free an array of credentials.

                  +

                  Free an array of credentials.

                  -void httpFreeCredentials(cups_array_t *credentials);

                  +void httpFreeCredentials(cups_array_t *credentials);

                  Parameters

                  - +
                  credentialsArray of credentials
                  Array of credentials

                  httpGet

                  -

                  Send a GET request to the server.

                  +

                  Send a GET request to the server.

                  int httpGet(http_t *http, const char *uri);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  uriURI to get
                  URI to get

                  Return Value

                  -

                  Status of call (0 = success)

                  +

                  Status of call (0 = success)

                   CUPS 2.0/OS 10.10 httpGetActivity

                  -

                  Get the most recent activity for a connection.

                  +

                  Get the most recent activity for a connection.

                  time_t httpGetActivity(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Time of last read or write

                  +

                  Time of last read or write

                  Discussion

                  -

                  The return value is the time in seconds of the last read or write. +

                  The return value is the time in seconds of the last read or write.

                   CUPS 2.0/OS 10.10 httpGetAddress

                  -

                  Get the address of the connected peer of a connection.

                  +

                  Get the address of the connected peer of a connection.

                  http_addr_t *httpGetAddress(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Connected address or NULL

                  +

                  Connected address or NULL

                  Discussion

                  -

                  For connections created with httpConnect2, the address is for the +

                  For connections created with httpConnect2, the address is for the server. For connections created with httpAccept, the address is for the client.

                  @@ -3148,166 +4395,166 @@ Returns NULL if the socket is currently unconnected.

                   CUPS 1.3/macOS 10.5 httpGetAuthString

                  -

                  Get the current authorization string.

                  +

                  Get the current authorization string.

                  char *httpGetAuthString(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Authorization string

                  +

                  Authorization string

                  Discussion

                  -

                  The authorization string is set by cupsDoAuthentication and +

                  The authorization string is set by cupsDoAuthentication and httpSetAuthString. Use httpGetAuthString to retrieve the string to use with httpSetField for the HTTP_FIELD_AUTHORIZATION value.

                   CUPS 1.2/macOS 10.5 httpGetBlocking

                  -

                  Get the blocking/non-block state of a connection.

                  +

                  Get the blocking/non-block state of a connection.

                  int httpGetBlocking(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  1 if blocking, 0 if non-blocking

                  +

                  1 if blocking, 0 if non-blocking

                   CUPS 1.7/macOS 10.9 httpGetContentEncoding

                  -

                  Get a common content encoding, if any, between +

                  Get a common content encoding, if any, between the client and server.

                  const char *httpGetContentEncoding(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Content-Coding value or +

                  Content-Coding value or NULL for the identity coding.

                  Discussion

                  -

                  This function uses the value of the Accepts-Encoding HTTP header and must be +

                  This function uses the value of the Accepts-Encoding HTTP header and must be called after receiving a response from the server or a request from the client. The value returned can be use in subsequent requests (for clients) or in the response (for servers) in order to compress the content stream.

                   CUPS 1.1.19/macOS 10.3 httpGetCookie

                  -

                  Get any cookie data from the response.

                  +

                  Get any cookie data from the response.

                  const char *httpGetCookie(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Cookie data or NULL

                  +

                  Cookie data or NULL

                   CUPS 1.2/macOS 10.5 httpGetDateString2

                  -

                  Get a formatted date/time string from a time value.

                  +

                  Get a formatted date/time string from a time value.

                  const char *httpGetDateString2(time_t t, char *s, int slen);

                  Parameters

                  - + - + - +
                  tTime in seconds
                  Time in seconds
                  sString buffer
                  String buffer
                  slenSize of string buffer
                  Size of string buffer

                  Return Value

                  -

                  Date/time string

                  +

                  Date/time string

                  httpGetDateTime

                  -

                  Get a time value from a formatted date/time string.

                  +

                  Get a time value from a formatted date/time string.

                  time_t httpGetDateTime(const char *s);

                  Parameters

                  - +
                  sDate/time string
                  Date/time string

                  Return Value

                  -

                  Time in seconds

                  +

                  Time in seconds

                   CUPS 2.0/OS 10.10 httpGetEncryption

                  -

                  Get the current encryption mode of a connection.

                  +

                  Get the current encryption mode of a connection.

                  http_encryption_t httpGetEncryption(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Current encryption mode

                  +

                  Current encryption mode

                  Discussion

                  -

                  This function returns the encryption mode for the connection. Use the +

                  This function returns the encryption mode for the connection. Use the httpIsEncrypted function to determine whether a TLS session has been established.

                   CUPS 1.7/macOS 10.9 httpGetExpect

                  -

                  Get the value of the Expect header, if any.

                  +

                  Get the value of the Expect header, if any.

                  http_status_t httpGetExpect(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Expect: status, if any

                  +

                  Expect: status, if any

                  Discussion

                  -

                  Returns HTTP_STATUS_NONE if there is no Expect header, otherwise +

                  Returns HTTP_STATUS_NONE if there is no Expect header, otherwise returns the expected HTTP status code, typically HTTP_STATUS_CONTINUE.

                   CUPS 1.2/macOS 10.5 httpGetFd

                  -

                  Get the file descriptor associated with a connection.

                  +

                  Get the file descriptor associated with a connection.

                  int httpGetFd(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  File descriptor or -1 if none

                  +

                  File descriptor or -1 if none

                  httpGetField

                  -

                  Get a field value from a request/response.

                  +

                  Get a field value from a request/response.

                  const char *httpGetField(http_t *http, http_field_t field);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  fieldField to get
                  Field to get

                  Return Value

                  -

                  Field value

                  +

                  Field value

                   CUPS 1.2/macOS 10.5 httpGetHostname

                  -

                  Get the FQDN for the connection or local system.

                  +

                  Get the FQDN for the connection or local system.

                  const char *httpGetHostname(http_t *http, char *s, int slen);

                  Parameters

                  - + - + - +
                  httpHTTP connection or NULL
                  HTTP connection or NULL
                  sString buffer for name
                  String buffer for name
                  slenSize of buffer
                  Size of buffer

                  Return Value

                  -

                  FQDN for connection or system

                  +

                  FQDN for connection or system

                  Discussion

                  -

                  When "http" points to a connected socket, return the hostname or +

                  When "http" points to a connected socket, return the hostname or address that was used in the call to httpConnect() or httpConnectEncrypt(), or the address of the client for the connection from httpAcceptConnection(). Otherwise, return the FQDN for the local system using both gethostname() @@ -3315,233 +4562,233 @@ and gethostbyname() to get the local hostname with domain.

                   CUPS 2.0/OS 10.10 httpGetKeepAlive

                  -

                  Get the current Keep-Alive state of the connection.

                  +

                  Get the current Keep-Alive state of the connection.

                  http_keepalive_t httpGetKeepAlive(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Keep-Alive state

                  +

                  Keep-Alive state

                   CUPS 1.2/macOS 10.5 httpGetLength2

                  -

                  Get the amount of data remaining from the +

                  Get the amount of data remaining from the content-length or transfer-encoding fields.

                  off_t httpGetLength2(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Content length

                  +

                  Content length

                  Discussion

                  -

                  This function returns the complete content length, even for +

                  This function returns the complete content length, even for content larger than 2^31 - 1.

                   CUPS 2.0/OS 10.10 httpGetPending

                  -

                  Get the number of bytes that are buffered for writing.

                  +

                  Get the number of bytes that are buffered for writing.

                  size_t httpGetPending(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Number of bytes buffered

                  +

                  Number of bytes buffered

                   CUPS 2.0/OS 10.10 httpGetReady

                  -

                  Get the number of bytes that can be read without blocking.

                  +

                  Get the number of bytes that can be read without blocking.

                  size_t httpGetReady(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Number of bytes available

                  +

                  Number of bytes available

                   CUPS 2.0/OS 10.10 httpGetRemaining

                  -

                  Get the number of remaining bytes in the message +

                  Get the number of remaining bytes in the message body or current chunk.

                  size_t httpGetRemaining(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Remaining bytes

                  +

                  Remaining bytes

                  Discussion

                  -

                  The httpIsChunked function can be used to determine whether the +

                  The httpIsChunked function can be used to determine whether the message body is chunked or fixed-length.

                  httpGetState

                  -

                  Get the current state of the HTTP request.

                  +

                  Get the current state of the HTTP request.

                  http_state_t httpGetState(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  HTTP state

                  +

                  HTTP state

                   CUPS 1.2/macOS 10.5 httpGetStatus

                  -

                  Get the status of the last HTTP request.

                  +

                  Get the status of the last HTTP request.

                  http_status_t httpGetStatus(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  HTTP status

                  +

                  HTTP status

                   CUPS 1.2/macOS 10.5 httpGetSubField2

                  -

                  Get a sub-field value.

                  +

                  Get a sub-field value.

                  char *httpGetSubField2(http_t *http, http_field_t field, const char *name, char *value, int valuelen);

                  Parameters

                  - + - + - + - + - +
                  httpHTTP connection
                  HTTP connection
                  fieldField index
                  Field index
                  nameName of sub-field
                  Name of sub-field
                  valueValue string
                  Value string
                  valuelenSize of value buffer
                  Size of value buffer

                  Return Value

                  -

                  Value or NULL

                  +

                  Value or NULL

                  httpGetVersion

                  -

                  Get the HTTP version at the other end.

                  +

                  Get the HTTP version at the other end.

                  http_version_t httpGetVersion(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Version number

                  +

                  Version number

                  httpGets

                  -

                  Get a line of text from a HTTP connection.

                  +

                  Get a line of text from a HTTP connection.

                  char *httpGets(char *line, int length, http_t *http);

                  Parameters

                  - + - + - +
                  lineLine to read into
                  Line to read into
                  lengthMax length of buffer
                  Max length of buffer
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  Line or NULL

                  +

                  Line or NULL

                  httpHead

                  -

                  Send a HEAD request to the server.

                  +

                  Send a HEAD request to the server.

                  int httpHead(http_t *http, const char *uri);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  uriURI for head
                  URI for head

                  Return Value

                  -

                  Status of call (0 = success)

                  +

                  Status of call (0 = success)

                  httpInitialize

                  -

                  Initialize the HTTP interface library and set the +

                  Initialize the HTTP interface library and set the default HTTP proxy (if any).

                  void httpInitialize(void);

                   CUPS 2.0/OS 10.10 httpIsChunked

                  -

                  Report whether a message body is chunked.

                  +

                  Report whether a message body is chunked.

                  int httpIsChunked(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  1 if chunked, 0 if not

                  +

                  1 if chunked, 0 if not

                  Discussion

                  -

                  This function returns non-zero if the message body is composed of +

                  This function returns non-zero if the message body is composed of variable-length chunks.

                   CUPS 2.0/OS 10.10 httpIsEncrypted

                  -

                  Report whether a connection is encrypted.

                  +

                  Report whether a connection is encrypted.

                  int httpIsEncrypted(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  1 if encrypted, 0 if not

                  +

                  1 if encrypted, 0 if not

                  Discussion

                  -

                  This function returns non-zero if the connection is currently encrypted. +

                  This function returns non-zero if the connection is currently encrypted.

                   CUPS 2.0/OS 10.10 httpLoadCredentials

                  -

                  Load X.509 credentials from a keychain file.

                  +

                  Load X.509 credentials from a keychain file.

                  -int httpLoadCredentials(const char *path, cups_array_t **credentials, const char *common_name);

                  +int httpLoadCredentials(const char *path, cups_array_t **credentials, const char *common_name);

                  Parameters

                  - + - + - +
                  pathKeychain path or NULL for default
                  Keychain path or NULL for default
                  credentialsCredentials
                  Credentials
                  common_nameCommon name for credentials
                  Common name for credentials

                  Return Value

                  -

                  0 on success, -1 on error

                  +

                  0 on success, -1 on error

                  httpOptions

                  -

                  Send an OPTIONS request to the server.

                  +

                  Send an OPTIONS request to the server.

                  int httpOptions(http_t *http, const char *uri);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  uriURI for options
                  URI for options

                  Return Value

                  -

                  Status of call (0 = success)

                  +

                  Status of call (0 = success)

                   CUPS 1.7/macOS 10.9 httpPeek

                  -

                  Peek at data from a HTTP connection.

                  +

                  Peek at data from a HTTP connection.

                  ssize_t httpPeek(http_t *http, char *buffer, size_t length);

                  Parameters

                  - + - + - +
                  httpHTTP connection
                  HTTP connection
                  bufferBuffer for data
                  Buffer for data
                  lengthMaximum number of bytes
                  Maximum number of bytes

                  Return Value

                  -

                  Number of bytes copied

                  +

                  Number of bytes copied

                  Discussion

                  -

                  This function copies available data from the given HTTP connection, reading +

                  This function copies available data from the given HTTP connection, reading a buffer as needed. The data is still available for reading using httpRead2.

                  @@ -3549,155 +4796,155 @@ For non-blocking connections the usual timeouts apply.

                  httpPost

                  -

                  Send a POST request to the server.

                  +

                  Send a POST request to the server.

                  int httpPost(http_t *http, const char *uri);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  uriURI for post
                  URI for post

                  Return Value

                  -

                  Status of call (0 = success)

                  +

                  Status of call (0 = success)

                  httpPut

                  -

                  Send a PUT request to the server.

                  +

                  Send a PUT request to the server.

                  int httpPut(http_t *http, const char *uri);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  uriURI to put
                  URI to put

                  Return Value

                  -

                  Status of call (0 = success)

                  +

                  Status of call (0 = success)

                   CUPS 1.2/macOS 10.5 httpRead2

                  -

                  Read data from a HTTP connection.

                  +

                  Read data from a HTTP connection.

                  ssize_t httpRead2(http_t *http, char *buffer, size_t length);

                  Parameters

                  - + - + - +
                  httpHTTP connection
                  HTTP connection
                  bufferBuffer for data
                  Buffer for data
                  lengthMaximum number of bytes
                  Maximum number of bytes

                  Return Value

                  -

                  Number of bytes read

                  +

                  Number of bytes read

                   CUPS 1.7/macOS 10.9 httpReadRequest

                  -

                  Read a HTTP request from a connection.

                  +

                  Read a HTTP request from a connection.

                  http_state_t httpReadRequest(http_t *http, char *uri, size_t urilen);

                  Parameters

                  - + - + - +
                  httpHTTP connection
                  HTTP connection
                  uriURI buffer
                  URI buffer
                  urilenSize of URI buffer
                  Size of URI buffer

                  Return Value

                  -

                  New state of connection

                  +

                  New state of connection

                  httpReconnect2

                  -

                  Reconnect to a HTTP server with timeout and optional +

                  Reconnect to a HTTP server with timeout and optional cancel.

                  int httpReconnect2(http_t *http, int msec, int *cancel);

                  Parameters

                  - + - + - +
                  httpHTTP connection
                  HTTP connection
                  msecTimeout in milliseconds
                  Timeout in milliseconds
                  cancelPointer to "cancel" variable
                  Pointer to "cancel" variable

                  Return Value

                  -

                  0 on success, non-zero on failure

                  +

                  0 on success, non-zero on failure

                   CUPS 2.0/OS 10.10 httpResolveHostname

                  -

                  Resolve the hostname of the HTTP connection +

                  Resolve the hostname of the HTTP connection address.

                  const char *httpResolveHostname(http_t *http, char *buffer, size_t bufsize);

                  Parameters

                  - + - + - +
                  httpHTTP connection
                  HTTP connection
                  bufferHostname buffer
                  Hostname buffer
                  bufsizeSize of buffer
                  Size of buffer

                  Return Value

                  -

                  Resolved hostname or NULL

                  +

                  Resolved hostname or NULL

                   CUPS 2.0/OS 10.10 httpSaveCredentials

                  -

                  Save X.509 credentials to a keychain file.

                  +

                  Save X.509 credentials to a keychain file.

                  -int httpSaveCredentials(const char *path, cups_array_t *credentials, const char *common_name);

                  +int httpSaveCredentials(const char *path, cups_array_t *credentials, const char *common_name);

                  Parameters

                  - + - + - +
                  pathKeychain path or NULL for default
                  Keychain path or NULL for default
                  credentialsCredentials
                  Credentials
                  common_nameCommon name for credentials
                  Common name for credentials

                  Return Value

                  -

                  -1 on error, 0 on success

                  +

                  -1 on error, 0 on success

                   CUPS 1.2/macOS 10.5 httpSeparateURI

                  -

                  Separate a Universal Resource Identifier into its +

                  Separate a Universal Resource Identifier into its components.

                  http_uri_status_t httpSeparateURI(http_uri_coding_t decoding, const char *uri, char *scheme, int schemelen, char *username, int usernamelen, char *host, int hostlen, int *port, char *resource, int resourcelen);

                  Parameters

                  - + - + - + - + - + - + - + - + - + - + - +
                  decodingDecoding flags
                  Decoding flags
                  uriUniversal Resource Identifier
                  Universal Resource Identifier
                  schemeScheme (http, https, etc.)
                  Scheme (http, https, etc.)
                  schemelenSize of scheme buffer
                  Size of scheme buffer
                  usernameUsername
                  Username
                  usernamelenSize of username buffer
                  Size of username buffer
                  hostHostname
                  Hostname
                  hostlenSize of hostname buffer
                  Size of hostname buffer
                  portPort number to use
                  Port number to use
                  resourceResource/filename
                  Resource/filename
                  resourcelenSize of resource buffer
                  Size of resource buffer

                  Return Value

                  -

                  Result of separation

                  +

                  Result of separation

                   CUPS 1.3/macOS 10.5 httpSetAuthString

                  -

                  Set the current authorization string.

                  +

                  Set the current authorization string.

                  void httpSetAuthString(http_t *http, const char *scheme, const char *data);

                  Parameters

                  - + - + - +
                  httpHTTP connection
                  HTTP connection
                  schemeAuth scheme (NULL to clear it)
                  Auth scheme (NULL to clear it)
                  dataAuth data (NULL for none)
                  Auth data (NULL for none)

                  Discussion

                  -

                  This function just stores a copy of the current authorization string in +

                  This function just stores a copy of the current authorization string in the HTTP connection object. You must still call httpSetField to set HTTP_FIELD_AUTHORIZATION prior to issuing a HTTP request using httpGet, httpHead, httpOptions, httpPost, or @@ -3705,237 +4952,237 @@ the HTTP connection object. You must still call h

                   CUPS 1.1.19/macOS 10.3 httpSetCookie

                  -

                  Set the cookie value(s).

                  +

                  Set the cookie value(s).

                  void httpSetCookie(http_t *http, const char *cookie);

                  Parameters

                  - + - +
                  httpConnection
                  Connection
                  cookieCookie string
                  Cookie string

                   CUPS 1.5/macOS 10.7 httpSetCredentials

                  -

                  Set the credentials associated with an encrypted +

                  Set the credentials associated with an encrypted connection.

                  -int httpSetCredentials(http_t *http, cups_array_t *credentials);

                  +int httpSetCredentials(http_t *http, cups_array_t *credentials);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  credentialsArray of credentials
                  Array of credentials

                  Return Value

                  -

                  Status of call (0 = success)

                  +

                  Status of call (0 = success)

                   CUPS 1.7/macOS 10.9 httpSetDefaultField

                  -

                  Set the default value of an HTTP header.

                  +

                  Set the default value of an HTTP header.

                  void httpSetDefaultField(http_t *http, http_field_t field, const char *value);

                  Parameters

                  - + - + - +
                  httpHTTP connection
                  HTTP connection
                  fieldField index
                  Field index
                  valueValue
                  Value

                  Discussion

                  -

                  Currently only HTTP_FIELD_ACCEPT_ENCODING, HTTP_FIELD_SERVER, +

                  Currently only HTTP_FIELD_ACCEPT_ENCODING, HTTP_FIELD_SERVER, and HTTP_FIELD_USER_AGENT can be set.

                   CUPS 1.2/macOS 10.5 httpSetExpect

                  -

                  Set the Expect: header in a request.

                  +

                  Set the Expect: header in a request.

                  void httpSetExpect(http_t *http, http_status_t expect);

                  Parameters

                  - + -
                  httpHTTP connection
                  HTTP connection
                  expectHTTP status to expect +HTTP status to expect (HTTP_STATUS_CONTINUE)

                  Discussion

                  -

                  Currently only HTTP_STATUS_CONTINUE is supported for the "expect" +

                  Currently only HTTP_STATUS_CONTINUE is supported for the "expect" argument.

                  httpSetField

                  -

                  Set the value of an HTTP header.

                  +

                  Set the value of an HTTP header.

                  void httpSetField(http_t *http, http_field_t field, const char *value);

                  Parameters

                  - + - + - +
                  httpHTTP connection
                  HTTP connection
                  fieldField index
                  Field index
                  valueValue
                  Value

                   CUPS 2.0/OS 10.10 httpSetKeepAlive

                  -

                  Set the current Keep-Alive state of a connection.

                  +

                  Set the current Keep-Alive state of a connection.

                  void httpSetKeepAlive(http_t *http, http_keepalive_t keep_alive);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  keep_aliveNew Keep-Alive value
                  New Keep-Alive value

                   CUPS 1.2/macOS 10.5 httpSetLength

                  -

                  Set the content-length and content-encoding.

                  +

                  Set the content-length and content-encoding.

                  void httpSetLength(http_t *http, size_t length);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  lengthLength (0 for chunked)
                  Length (0 for chunked)

                   CUPS 1.5/macOS 10.7 httpSetTimeout

                  -

                  Set read/write timeouts and an optional callback.

                  +

                  Set read/write timeouts and an optional callback.

                  void httpSetTimeout(http_t *http, double timeout, http_timeout_cb_t cb, void *user_data);

                  Parameters

                  - + - - + - +
                  httpHTTP connection
                  HTTP connection
                  timeoutNumber of seconds for timeout, +Number of seconds for timeout, must be greater than 0
                  cbCallback function or NULL
                  Callback function or NULL
                  user_dataUser data pointer
                  User data pointer

                  Discussion

                  -

                  The optional timeout callback receives both the HTTP connection and a user +

                  The optional timeout callback receives both the HTTP connection and a user data pointer and must return 1 to continue or 0 to error (time) out.

                   CUPS 2.0/OS 10.10 httpShutdown

                  -

                  Shutdown one side of an HTTP connection.

                  +

                  Shutdown one side of an HTTP connection.

                  void httpShutdown(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                   CUPS 2.0/OS 10.10 httpStateString

                  -

                  Return the string describing a HTTP state value.

                  +

                  Return the string describing a HTTP state value.

                  const char *httpStateString(http_state_t state);

                  Parameters

                  - +
                  stateHTTP state value
                  HTTP state value

                  Return Value

                  -

                  State string

                  +

                  State string

                  httpStatus

                  -

                  Return a short string describing a HTTP status code.

                  +

                  Return a short string describing a HTTP status code.

                  const char *httpStatus(http_status_t status);

                  Parameters

                  - +
                  statusHTTP status code
                  HTTP status code

                  Return Value

                  -

                  Localized status string

                  +

                  Localized status string

                  Discussion

                  -

                  The returned string is localized to the current POSIX locale and is based +

                  The returned string is localized to the current POSIX locale and is based on the status strings defined in RFC 7231.

                   CUPS 2.0/OS 10.10 httpURIStatusString

                  -

                  Return a string describing a URI status code.

                  +

                  Return a string describing a URI status code.

                  const char *httpURIStatusString(http_uri_status_t status);

                  Parameters

                  - +
                  statusURI status code
                  URI status code

                  Return Value

                  -

                  Localized status string

                  +

                  Localized status string

                  httpUpdate

                  -

                  Update the current HTTP state for incoming data.

                  +

                  Update the current HTTP state for incoming data.

                  http_status_t httpUpdate(http_t *http);

                  Parameters

                  - +
                  httpHTTP connection
                  HTTP connection

                  Return Value

                  -

                  HTTP status

                  +

                  HTTP status

                   CUPS 1.1.19/macOS 10.3 httpWait

                  -

                  Wait for data available on a connection.

                  +

                  Wait for data available on a connection.

                  int httpWait(http_t *http, int msec);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  msecMilliseconds to wait
                  Milliseconds to wait

                  Return Value

                  -

                  1 if data is available, 0 otherwise

                  +

                  1 if data is available, 0 otherwise

                   CUPS 1.2/macOS 10.5 httpWrite2

                  -

                  Write data to a HTTP connection.

                  +

                  Write data to a HTTP connection.

                  ssize_t httpWrite2(http_t *http, const char *buffer, size_t length);

                  Parameters

                  - + - + - +
                  httpHTTP connection
                  HTTP connection
                  bufferBuffer for data
                  Buffer for data
                  lengthNumber of bytes to write
                  Number of bytes to write

                  Return Value

                  -

                  Number of bytes written

                  +

                  Number of bytes written

                   CUPS 1.7/macOS 10.9 httpWriteResponse

                  -

                  Write a HTTP response to a client connection.

                  +

                  Write a HTTP response to a client connection.

                  int httpWriteResponse(http_t *http, http_status_t status);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  statusStatus code
                  Status code

                  Return Value

                  -

                  0 on success, -1 on error

                  +

                  0 on success, -1 on error

                  ippAddBoolean

                  -

                  Add a boolean attribute to an IPP message.

                  +

                  Add a boolean attribute to an IPP message.

                  ipp_attribute_t *ippAddBoolean(ipp_t *ipp, ipp_tag_t group, const char *name, char value);

                  Parameters

                  - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  nameName of attribute
                  Name of attribute
                  valueValue of attribute
                  Value of attribute

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -3944,26 +5191,26 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation (IPP_TAG_OPERATION), printer (IPP_TAG_PRINTER), subscription (IPP_TAG_SUBSCRIPTION), or unsupported (IPP_TAG_UNSUPPORTED_GROUP).

                  ippAddBooleans

                  -

                  Add an array of boolean values.

                  +

                  Add an array of boolean values.

                  ipp_attribute_t *ippAddBooleans(ipp_t *ipp, ipp_tag_t group, const char *name, int num_values, const char *values);

                  Parameters

                  - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  nameName of attribute
                  Name of attribute
                  num_valuesNumber of values
                  Number of values
                  valuesValues
                  Values

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -3972,24 +5219,24 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation (IPP_TAG_OPERATION), printer (IPP_TAG_PRINTER), subscription (IPP_TAG_SUBSCRIPTION), or unsupported (IPP_TAG_UNSUPPORTED_GROUP).

                   CUPS 1.1.19/macOS 10.3 ippAddCollection

                  -

                  Add a collection value.

                  +

                  Add a collection value.

                  ipp_attribute_t *ippAddCollection(ipp_t *ipp, ipp_tag_t group, const char *name, ipp_t *value);

                  Parameters

                  - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  nameName of attribute
                  Name of attribute
                  valueValue
                  Value

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4000,26 +5247,26 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation

                   CUPS 1.1.19/macOS 10.3 ippAddCollections

                  -

                  Add an array of collection values.

                  +

                  Add an array of collection values.

                  ipp_attribute_t *ippAddCollections(ipp_t *ipp, ipp_tag_t group, const char *name, int num_values, const ipp_t **values);

                  Parameters

                  - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  nameName of attribute
                  Name of attribute
                  num_valuesNumber of values
                  Number of values
                  valuesValues
                  Values

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4030,24 +5277,24 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation

                  ippAddDate

                  -

                  Add a dateTime attribute to an IPP message.

                  +

                  Add a dateTime attribute to an IPP message.

                  ipp_attribute_t *ippAddDate(ipp_t *ipp, ipp_tag_t group, const char *name, const ipp_uchar_t *value);

                  Parameters

                  - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  nameName of attribute
                  Name of attribute
                  valueValue
                  Value

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4056,26 +5303,26 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation (IPP_TAG_OPERATION), printer (IPP_TAG_PRINTER), subscription (IPP_TAG_SUBSCRIPTION), or unsupported (IPP_TAG_UNSUPPORTED_GROUP).

                  ippAddInteger

                  -

                  Add a integer attribute to an IPP message.

                  +

                  Add a integer attribute to an IPP message.

                  ipp_attribute_t *ippAddInteger(ipp_t *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, int value);

                  Parameters

                  - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  value_tagType of attribute
                  Type of attribute
                  nameName of attribute
                  Name of attribute
                  valueValue of attribute
                  Value of attribute

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4087,28 +5334,28 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation Supported values include enum (IPP_TAG_ENUM) and integer (IPP_TAG_INTEGER).

                  ippAddIntegers

                  -

                  Add an array of integer values.

                  +

                  Add an array of integer values.

                  ipp_attribute_t *ippAddIntegers(ipp_t *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, int num_values, const int *values);

                  Parameters

                  - + - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  value_tagType of attribute
                  Type of attribute
                  nameName of attribute
                  Name of attribute
                  num_valuesNumber of values
                  Number of values
                  valuesValues
                  Values

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4120,26 +5367,26 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation Supported values include enum (IPP_TAG_ENUM) and integer (IPP_TAG_INTEGER).

                   CUPS 1.2/macOS 10.5 ippAddOctetString

                  -

                  Add an octetString value to an IPP message.

                  +

                  Add an octetString value to an IPP message.

                  ipp_attribute_t *ippAddOctetString(ipp_t *ipp, ipp_tag_t group, const char *name, const void *data, int datalen);

                  Parameters

                  - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  nameName of attribute
                  Name of attribute
                  dataoctetString data
                  octetString data
                  datalenLength of data in bytes
                  Length of data in bytes

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4150,24 +5397,24 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation

                   CUPS 1.6/macOS 10.8 ippAddOutOfBand

                  -

                  Add an out-of-band value to an IPP message.

                  +

                  Add an out-of-band value to an IPP message.

                  ipp_attribute_t *ippAddOutOfBand(ipp_t *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name);

                  Parameters

                  - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  value_tagType of attribute
                  Type of attribute
                  nameName of attribute
                  Name of attribute

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4184,26 +5431,26 @@ admin-define (IPP_TAG_ADMINDEFINE).

                  ippAddRange

                  -

                  Add a range of values to an IPP message.

                  +

                  Add a range of values to an IPP message.

                  ipp_attribute_t *ippAddRange(ipp_t *ipp, ipp_tag_t group, const char *name, int lower, int upper);

                  Parameters

                  - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  nameName of attribute
                  Name of attribute
                  lowerLower value
                  Lower value
                  upperUpper value
                  Upper value

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4214,28 +5461,28 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation
                  The lower parameter must be less than or equal to the upper parameter.

                  ippAddRanges

                  -

                  Add ranges of values to an IPP message.

                  +

                  Add ranges of values to an IPP message.

                  ipp_attribute_t *ippAddRanges(ipp_t *ipp, ipp_tag_t group, const char *name, int num_values, const int *lower, const int *upper);

                  Parameters

                  - + - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  nameName of attribute
                  Name of attribute
                  num_valuesNumber of values
                  Number of values
                  lowerLower values
                  Lower values
                  upperUpper values
                  Upper values

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4244,28 +5491,28 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation (IPP_TAG_OPERATION), printer (IPP_TAG_PRINTER), subscription (IPP_TAG_SUBSCRIPTION), or unsupported (IPP_TAG_UNSUPPORTED_GROUP).

                  ippAddResolution

                  -

                  Add a resolution value to an IPP message.

                  +

                  Add a resolution value to an IPP message.

                  ipp_attribute_t *ippAddResolution(ipp_t *ipp, ipp_tag_t group, const char *name, ipp_res_t units, int xres, int yres);

                  Parameters

                  - + - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  nameName of attribute
                  Name of attribute
                  unitsUnits for resolution
                  Units for resolution
                  xresX resolution
                  X resolution
                  yresY resolution
                  Y resolution

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4274,30 +5521,30 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation (IPP_TAG_OPERATION), printer (IPP_TAG_PRINTER), subscription (IPP_TAG_SUBSCRIPTION), or unsupported (IPP_TAG_UNSUPPORTED_GROUP).

                  ippAddResolutions

                  -

                  Add resolution values to an IPP message.

                  +

                  Add resolution values to an IPP message.

                  ipp_attribute_t *ippAddResolutions(ipp_t *ipp, ipp_tag_t group, const char *name, int num_values, ipp_res_t units, const int *xres, const int *yres);

                  Parameters

                  - + - + - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  nameName of attribute
                  Name of attribute
                  num_valuesNumber of values
                  Number of values
                  unitsUnits for resolution
                  Units for resolution
                  xresX resolutions
                  X resolutions
                  yresY resolutions
                  Y resolutions

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4306,42 +5553,42 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation (IPP_TAG_OPERATION), printer (IPP_TAG_PRINTER), subscription (IPP_TAG_SUBSCRIPTION), or unsupported (IPP_TAG_UNSUPPORTED_GROUP).

                  ippAddSeparator

                  -

                  Add a group separator to an IPP message.

                  +

                  Add a group separator to an IPP message.

                  ipp_attribute_t *ippAddSeparator(ipp_t *ipp);

                  Parameters

                  - +
                  ippIPP message
                  IPP message

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  ippAddString

                  -

                  Add a language-encoded string to an IPP message.

                  +

                  Add a language-encoded string to an IPP message.

                  ipp_attribute_t *ippAddString(ipp_t *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, const char *language, const char *value);

                  Parameters

                  - + - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  value_tagType of attribute
                  Type of attribute
                  nameName of attribute
                  Name of attribute
                  languageLanguage code
                  Language code
                  valueValue
                  Value

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4360,30 +5607,30 @@ Supported string values include charset (IPP_TAG_CHARSET), keyword The language parameter must be non-NULL for nameWithLanguage and textWithLanguage string values and must be NULL for all other string values.

                   CUPS 1.7/macOS 10.9 ippAddStringf

                  -

                  Add a formatted string to an IPP message.

                  +

                  Add a formatted string to an IPP message.

                  ipp_attribute_t *ippAddStringf(ipp_t *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, const char *language, const char *format, ...);

                  Parameters

                  - + - + - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  value_tagType of attribute
                  Type of attribute
                  nameName of attribute
                  Name of attribute
                  languageLanguage code (NULL for default)
                  Language code (NULL for default)
                  formatPrintf-style format string
                  Printf-style format string
                  ...Additional arguments as needed
                  Additional arguments as needed

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4411,30 +5658,30 @@ the corresponding value type.

                   CUPS 1.7/macOS 10.9 ippAddStringfv

                  -

                  Add a formatted string to an IPP message.

                  +

                  Add a formatted string to an IPP message.

                  ipp_attribute_t *ippAddStringfv(ipp_t *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, const char *language, const char *format, va_list ap);

                  Parameters

                  - + - + - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  value_tagType of attribute
                  Type of attribute
                  nameName of attribute
                  Name of attribute
                  languageLanguage code (NULL for default)
                  Language code (NULL for default)
                  formatPrintf-style format string
                  Printf-style format string
                  apAdditional arguments
                  Additional arguments

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4462,30 +5709,30 @@ maximum length of the corresponding value type.

                  ippAddStrings

                  -

                  Add language-encoded strings to an IPP message.

                  +

                  Add language-encoded strings to an IPP message.

                  ipp_attribute_t *ippAddStrings(ipp_t *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, int num_values, const char *language, const char *const *values);

                  Parameters

                  - + - + - + - + - + - + - +
                  ippIPP message
                  IPP message
                  groupIPP group
                  IPP group
                  value_tagType of attribute
                  Type of attribute
                  nameName of attribute
                  Name of attribute
                  num_valuesNumber of values
                  Number of values
                  languageLanguage code (NULL for default)
                  Language code (NULL for default)
                  valuesValues
                  Values

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The group parameter specifies the IPP attribute group tag: none @@ -4504,108 +5751,108 @@ Supported string values include charset (IPP_TAG_CHARSET), keyword The language parameter must be non-NULL for nameWithLanguage and textWithLanguage string values and must be NULL for all other string values.

                   CUPS 1.6/macOS 10.8 ippAttributeString

                  -

                  Convert the attribute's value to a string.

                  +

                  Convert the attribute's value to a string.

                  size_t ippAttributeString(ipp_attribute_t *attr, char *buffer, size_t bufsize);

                  Parameters

                  - + - + - +
                  attrAttribute
                  Attribute
                  bufferString buffer or NULL
                  String buffer or NULL
                  bufsizeSize of string buffer
                  Size of string buffer

                  Return Value

                  -

                  Number of bytes less nul

                  +

                  Number of bytes less nul

                  Discussion

                  -

                  Returns the number of bytes that would be written, not including the +

                  Returns the number of bytes that would be written, not including the trailing nul. The buffer pointer can be NULL to get the required length, just like (v)snprintf.

                   CUPS 1.7/macOS 10.9 ippContainsInteger

                  -

                  Determine whether an attribute contains the +

                  Determine whether an attribute contains the specified value or is within the list of ranges.

                  int ippContainsInteger(ipp_attribute_t *attr, int value);

                  Parameters

                  - + - +
                  attrAttribute
                  Attribute
                  valueInteger/enum value
                  Integer/enum value

                  Return Value

                  -

                  1 on a match, 0 on no match

                  +

                  1 on a match, 0 on no match

                  Discussion

                  -

                  Returns non-zero when the attribute contains either a matching integer or +

                  Returns non-zero when the attribute contains either a matching integer or enum value, or the value falls within one of the rangeOfInteger values for the attribute.

                   CUPS 1.7/macOS 10.9 ippContainsString

                  -

                  Determine whether an attribute contains the +

                  Determine whether an attribute contains the specified string value.

                  int ippContainsString(ipp_attribute_t *attr, const char *value);

                  Parameters

                  - + - +
                  attrAttribute
                  Attribute
                  valueString value
                  String value

                  Return Value

                  -

                  1 on a match, 0 on no match

                  +

                  1 on a match, 0 on no match

                  Discussion

                  -

                  Returns non-zero when the attribute contains a matching charset, keyword, +

                  Returns non-zero when the attribute contains a matching charset, keyword, naturalLanguage, mimeMediaType, name, text, uri, or uriScheme value.

                   CUPS 1.6/macOS 10.8 ippCopyAttribute

                  -

                  Copy an attribute.

                  +

                  Copy an attribute.

                  ipp_attribute_t *ippCopyAttribute(ipp_t *dst, ipp_attribute_t *srcattr, int quickcopy);

                  Parameters

                  - + - + - +
                  dstDestination IPP message
                  Destination IPP message
                  srcattrAttribute to copy
                  Attribute to copy
                  quickcopy1 for a referenced copy, 0 for normal
                  1 for a referenced copy, 0 for normal

                  Return Value

                  -

                  New attribute

                  +

                  New attribute

                  Discussion

                  -

                  The specified attribute, attr, is copied to the destination IPP message. +

                  The specified attribute, attr, is copied to the destination IPP message. When quickcopy is non-zero, a "shallow" reference copy of the attribute is created - this should only be done as long as the original source IPP message will not be freed for the life of the destination.

                   CUPS 1.6/macOS 10.8 ippCopyAttributes

                  -

                  Copy attributes from one IPP message to another.

                  +

                  Copy attributes from one IPP message to another.

                  int ippCopyAttributes(ipp_t *dst, ipp_t *src, int quickcopy, ipp_copycb_t cb, void *context);

                  Parameters

                  - + - + - + - + - +
                  dstDestination IPP message
                  Destination IPP message
                  srcSource IPP message
                  Source IPP message
                  quickcopy1 for a referenced copy, 0 for normal
                  1 for a referenced copy, 0 for normal
                  cbCopy callback or NULL for none
                  Copy callback or NULL for none
                  contextContext pointer
                  Context pointer

                  Return Value

                  -

                  1 on success, 0 on error

                  +

                  1 on success, 0 on error

                  Discussion

                  -

                  Zero or more attributes are copied from the source IPP message, src, to the +

                  Zero or more attributes are copied from the source IPP message, src, to the destination IPP message, dst. When quickcopy is non-zero, a "shallow" reference copy of the attribute is created - this should only be done as long as the original source IPP message will not be freed for the life of the destination.
                  @@ -4617,19 +5864,19 @@ itself.

                   CUPS 1.7/macOS 10.9 ippCreateRequestedArray

                  -

                  Create a CUPS array of attribute names from the +

                  Create a CUPS array of attribute names from the given requested-attributes attribute.

                  -cups_array_t *ippCreateRequestedArray(ipp_t *request);

                  +cups_array_t *ippCreateRequestedArray(ipp_t *request);

                  Parameters

                  - +
                  requestIPP request
                  IPP request

                  Return Value

                  -

                  CUPS array or NULL if all

                  +

                  CUPS array or NULL if all

                  Discussion

                  -

                  This function creates a (sorted) CUPS array of attribute names matching the +

                  This function creates a (sorted) CUPS array of attribute names matching the list of "requested-attribute" values supplied in an IPP request. All IANA- registered values are supported in addition to the CUPS IPP extension attributes.
                  @@ -4644,56 +5891,56 @@ using the cupsArrayDelete function.

                  ippDateToTime

                  -

                  Convert from RFC 2579 Date/Time format to time in +

                  Convert from RFC 2579 Date/Time format to time in seconds.

                  time_t ippDateToTime(const ipp_uchar_t *date);

                  Parameters

                  - +
                  dateRFC 2579 date info
                  RFC 2579 date info

                  Return Value

                  -

                  UNIX time value

                  +

                  UNIX time value

                  ippDelete

                  -

                  Delete an IPP message.

                  +

                  Delete an IPP message.

                  void ippDelete(ipp_t *ipp);

                  Parameters

                  - +
                  ippIPP message
                  IPP message

                   CUPS 1.1.19/macOS 10.3 ippDeleteAttribute

                  -

                  Delete a single attribute in an IPP message.

                  +

                  Delete a single attribute in an IPP message.

                  void ippDeleteAttribute(ipp_t *ipp, ipp_attribute_t *attr);

                  Parameters

                  - + - +
                  ippIPP message
                  IPP message
                  attrAttribute to delete
                  Attribute to delete

                   CUPS 1.6/macOS 10.8 ippDeleteValues

                  -

                  Delete values in an attribute.

                  +

                  Delete values in an attribute.

                  int ippDeleteValues(ipp_t *ipp, ipp_attribute_t **attr, int element, int count);

                  Parameters

                  - + - + - + - +
                  ippIPP message
                  IPP message
                  attrAttribute
                  Attribute
                  elementIndex of first value to delete (0-based)
                  Index of first value to delete (0-based)
                  countNumber of values to delete
                  Number of values to delete

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The element parameter specifies the first value to delete, starting at +

                  The element parameter specifies the first value to delete, starting at 0. It must be less than the number of values returned by ippGetCount.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -4702,403 +5949,403 @@ Deleting all values in an attribute deletes the attribute.

                  ippEnumString

                  -

                  Return a string corresponding to the enum value.

                  +

                  Return a string corresponding to the enum value.

                  const char *ippEnumString(const char *attrname, int enumvalue);

                  Parameters

                  - + - +
                  attrnameAttribute name
                  Attribute name
                  enumvalueEnum value
                  Enum value

                  Return Value

                  -

                  Enum string

                  +

                  Enum string

                  ippEnumValue

                  -

                  Return the value associated with a given enum string.

                  +

                  Return the value associated with a given enum string.

                  int ippEnumValue(const char *attrname, const char *enumstring);

                  Parameters

                  - + - +
                  attrnameAttribute name
                  Attribute name
                  enumstringEnum string
                  Enum string

                  Return Value

                  -

                  Enum value or -1 if unknown

                  +

                  Enum value or -1 if unknown

                  ippErrorString

                  -

                  Return a name for the given status code.

                  +

                  Return a name for the given status code.

                  const char *ippErrorString(ipp_status_t error);

                  Parameters

                  - +
                  errorError status
                  Error status

                  Return Value

                  -

                  Text string

                  +

                  Text string

                   CUPS 1.2/macOS 10.5 ippErrorValue

                  -

                  Return a status code for the given name.

                  +

                  Return a status code for the given name.

                  ipp_status_t ippErrorValue(const char *name);

                  Parameters

                  - +
                  nameName
                  Name

                  Return Value

                  -

                  IPP status code

                  +

                  IPP status code

                  ippFindAttribute

                  -

                  Find a named attribute in a request.

                  +

                  Find a named attribute in a request.

                  ipp_attribute_t *ippFindAttribute(ipp_t *ipp, const char *name, ipp_tag_t type);

                  Parameters

                  - + - + - +
                  ippIPP message
                  IPP message
                  nameName of attribute
                  Name of attribute
                  typeType of attribute
                  Type of attribute

                  Return Value

                  -

                  Matching attribute

                  +

                  Matching attribute

                  Discussion

                  -

                  Starting with CUPS 2.0, the attribute name can contain a hierarchical list +

                  Starting with CUPS 2.0, the attribute name can contain a hierarchical list of attribute and member names separated by slashes, for example "media-col/media-size".

                  ippFindNextAttribute

                  -

                  Find the next named attribute in a request.

                  +

                  Find the next named attribute in a request.

                  ipp_attribute_t *ippFindNextAttribute(ipp_t *ipp, const char *name, ipp_tag_t type);

                  Parameters

                  - + - + - +
                  ippIPP message
                  IPP message
                  nameName of attribute
                  Name of attribute
                  typeType of attribute
                  Type of attribute

                  Return Value

                  -

                  Matching attribute

                  +

                  Matching attribute

                  Discussion

                  -

                  Starting with CUPS 2.0, the attribute name can contain a hierarchical list +

                  Starting with CUPS 2.0, the attribute name can contain a hierarchical list of attribute and member names separated by slashes, for example "media-col/media-size".

                   CUPS 1.6/macOS 10.8 ippFirstAttribute

                  -

                  Return the first attribute in the message.

                  +

                  Return the first attribute in the message.

                  ipp_attribute_t *ippFirstAttribute(ipp_t *ipp);

                  Parameters

                  - +
                  ippIPP message
                  IPP message

                  Return Value

                  -

                  First attribute or NULL if none

                  +

                  First attribute or NULL if none

                   CUPS 1.6/macOS 10.8 ippGetBoolean

                  -

                  Get a boolean value for an attribute.

                  +

                  Get a boolean value for an attribute.

                  int ippGetBoolean(ipp_attribute_t *attr, int element);

                  Parameters

                  - + - +
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)

                  Return Value

                  -

                  Boolean value or 0 on error

                  +

                  Boolean value or 0 on error

                  Discussion

                  -

                  The element parameter specifies which value to get from 0 to +

                  The element parameter specifies which value to get from 0 to ippGetCount(attr) - 1.

                   CUPS 1.6/macOS 10.8 ippGetCollection

                  -

                  Get a collection value for an attribute.

                  +

                  Get a collection value for an attribute.

                  ipp_t *ippGetCollection(ipp_attribute_t *attr, int element);

                  Parameters

                  - + - +
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)

                  Return Value

                  -

                  Collection value or NULL on error

                  +

                  Collection value or NULL on error

                  Discussion

                  -

                  The element parameter specifies which value to get from 0 to +

                  The element parameter specifies which value to get from 0 to ippGetCount(attr) - 1.

                   CUPS 1.6/macOS 10.8 ippGetCount

                  -

                  Get the number of values in an attribute.

                  +

                  Get the number of values in an attribute.

                  int ippGetCount(ipp_attribute_t *attr);

                  Parameters

                  - +
                  attrIPP attribute
                  IPP attribute

                  Return Value

                  -

                  Number of values or 0 on error

                  +

                  Number of values or 0 on error

                   CUPS 1.6/macOS 10.8 ippGetDate

                  -

                  Get a dateTime value for an attribute.

                  +

                  Get a dateTime value for an attribute.

                  const ipp_uchar_t *ippGetDate(ipp_attribute_t *attr, int element);

                  Parameters

                  - + - +
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)

                  Return Value

                  -

                  dateTime value or NULL

                  +

                  dateTime value or NULL

                  Discussion

                  -

                  The element parameter specifies which value to get from 0 to +

                  The element parameter specifies which value to get from 0 to ippGetCount(attr) - 1.

                   CUPS 1.6/macOS 10.8 ippGetGroupTag

                  -

                  Get the group associated with an attribute.

                  +

                  Get the group associated with an attribute.

                  ipp_tag_t ippGetGroupTag(ipp_attribute_t *attr);

                  Parameters

                  - +
                  attrIPP attribute
                  IPP attribute

                  Return Value

                  -

                  Group tag or IPP_TAG_ZERO on error

                  +

                  Group tag or IPP_TAG_ZERO on error

                   CUPS 1.6/macOS 10.8 ippGetInteger

                  -

                  Get the integer/enum value for an attribute.

                  +

                  Get the integer/enum value for an attribute.

                  int ippGetInteger(ipp_attribute_t *attr, int element);

                  Parameters

                  - + - +
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)

                  Return Value

                  -

                  Value or 0 on error

                  +

                  Value or 0 on error

                  Discussion

                  -

                  The element parameter specifies which value to get from 0 to +

                  The element parameter specifies which value to get from 0 to ippGetCount(attr) - 1.

                   CUPS 1.6/macOS 10.8 ippGetName

                  -

                  Get the attribute name.

                  +

                  Get the attribute name.

                  const char *ippGetName(ipp_attribute_t *attr);

                  Parameters

                  - +
                  attrIPP attribute
                  IPP attribute

                  Return Value

                  -

                  Attribute name or NULL for separators

                  +

                  Attribute name or NULL for separators

                   CUPS 1.7/macOS 10.9 ippGetOctetString

                  -

                  Get an octetString value from an IPP attribute.

                  +

                  Get an octetString value from an IPP attribute.

                  void *ippGetOctetString(ipp_attribute_t *attr, int element, int *datalen);

                  Parameters

                  - + - + - +
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  datalenLength of octetString data
                  Length of octetString data

                  Return Value

                  -

                  Pointer to octetString data

                  +

                  Pointer to octetString data

                  Discussion

                  -

                  The element parameter specifies which value to get from 0 to +

                  The element parameter specifies which value to get from 0 to ippGetCount(attr) - 1.

                   CUPS 1.6/macOS 10.8 ippGetOperation

                  -

                  Get the operation ID in an IPP message.

                  +

                  Get the operation ID in an IPP message.

                  ipp_op_t ippGetOperation(ipp_t *ipp);

                  Parameters

                  - +
                  ippIPP request message
                  IPP request message

                  Return Value

                  -

                  Operation ID or 0 on error

                  +

                  Operation ID or 0 on error

                   CUPS 1.6/macOS 10.8 ippGetRange

                  -

                  Get a rangeOfInteger value from an attribute.

                  +

                  Get a rangeOfInteger value from an attribute.

                  int ippGetRange(ipp_attribute_t *attr, int element, int *uppervalue);

                  Parameters

                  - + - + - +
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  uppervalueUpper value of range
                  Upper value of range

                  Return Value

                  -

                  Lower value of range or 0

                  +

                  Lower value of range or 0

                  Discussion

                  -

                  The element parameter specifies which value to get from 0 to +

                  The element parameter specifies which value to get from 0 to ippGetCount(attr) - 1.

                   CUPS 1.6/macOS 10.8 ippGetRequestId

                  -

                  Get the request ID from an IPP message.

                  +

                  Get the request ID from an IPP message.

                  int ippGetRequestId(ipp_t *ipp);

                  Parameters

                  - +
                  ippIPP message
                  IPP message

                  Return Value

                  -

                  Request ID or 0 on error

                  +

                  Request ID or 0 on error

                   CUPS 1.6/macOS 10.8 ippGetResolution

                  -

                  Get a resolution value for an attribute.

                  +

                  Get a resolution value for an attribute.

                  int ippGetResolution(ipp_attribute_t *attr, int element, int *yres, ipp_res_t *units);

                  Parameters

                  - + - + - + - +
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  yresVertical/feed resolution
                  Vertical/feed resolution
                  unitsUnits for resolution
                  Units for resolution

                  Return Value

                  -

                  Horizontal/cross feed resolution or 0

                  +

                  Horizontal/cross feed resolution or 0

                  Discussion

                  -

                  The element parameter specifies which value to get from 0 to +

                  The element parameter specifies which value to get from 0 to ippGetCount(attr) - 1.

                   CUPS 1.6/macOS 10.8 ippGetState

                  -

                  Get the IPP message state.

                  +

                  Get the IPP message state.

                  ipp_state_t ippGetState(ipp_t *ipp);

                  Parameters

                  - +
                  ippIPP message
                  IPP message

                  Return Value

                  -

                  IPP message state value

                  +

                  IPP message state value

                   CUPS 1.6/macOS 10.8 ippGetStatusCode

                  -

                  Get the status code from an IPP response or event message.

                  +

                  Get the status code from an IPP response or event message.

                  ipp_status_t ippGetStatusCode(ipp_t *ipp);

                  Parameters

                  - +
                  ippIPP response or event message
                  IPP response or event message

                  Return Value

                  -

                  Status code in IPP message

                  +

                  Status code in IPP message

                  ippGetString

                  -

                  +

                  const char *ippGetString(ipp_attribute_t *attr, int element, const char **language);

                  Parameters

                  - + - + - +
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  languageLanguage code (NULL for don't care)
                  Language code (NULL for don't care)

                  Return Value

                  -

                  Get the string and optionally the language code for an attribute.

                  -

                  The element parameter specifies which value to get from 0 to +

                  Get the string and optionally the language code for an attribute.

                  +

                  The element parameter specifies which value to get from 0 to ippGetCount(attr) - 1.

                   CUPS 1.6/macOS 10.8 ippGetValueTag

                  -

                  Get the value tag for an attribute.

                  +

                  Get the value tag for an attribute.

                  ipp_tag_t ippGetValueTag(ipp_attribute_t *attr);

                  Parameters

                  - +
                  attrIPP attribute
                  IPP attribute

                  Return Value

                  -

                  Value tag or IPP_TAG_ZERO on error

                  +

                  Value tag or IPP_TAG_ZERO on error

                   CUPS 1.6/macOS 10.8 ippGetVersion

                  -

                  Get the major and minor version number from an IPP message.

                  +

                  Get the major and minor version number from an IPP message.

                  int ippGetVersion(ipp_t *ipp, int *minor);

                  Parameters

                  - + - +
                  ippIPP message
                  IPP message
                  minorMinor version number or NULL for don't care
                  Minor version number or NULL for don't care

                  Return Value

                  -

                  Major version number or 0 on error

                  +

                  Major version number or 0 on error

                  ippLength

                  -

                  Compute the length of an IPP message.

                  +

                  Compute the length of an IPP message.

                  size_t ippLength(ipp_t *ipp);

                  Parameters

                  - +
                  ippIPP message
                  IPP message

                  Return Value

                  -

                  Size of IPP message

                  +

                  Size of IPP message

                  ippNew

                  -

                  Allocate a new IPP message.

                  +

                  Allocate a new IPP message.

                  ipp_t *ippNew(void);

                  Return Value

                  -

                  New IPP message

                  +

                  New IPP message

                   CUPS 1.2/macOS 10.5 ippNewRequest

                  -

                  Allocate a new IPP request message.

                  +

                  Allocate a new IPP request message.

                  ipp_t *ippNewRequest(ipp_op_t op);

                  Parameters

                  - +
                  opOperation code
                  Operation code

                  Return Value

                  -

                  IPP request message

                  +

                  IPP request message

                  Discussion

                  -

                  The new request message is initialized with the "attributes-charset" and +

                  The new request message is initialized with the "attributes-charset" and "attributes-natural-language" attributes added. The "attributes-natural-language" value is derived from the current locale.

                   CUPS 1.7/macOS 10.9 ippNewResponse

                  -

                  Allocate a new IPP response message.

                  +

                  Allocate a new IPP response message.

                  ipp_t *ippNewResponse(ipp_t *request);

                  Parameters

                  - +
                  requestIPP request message
                  IPP request message

                  Return Value

                  -

                  IPP response message

                  +

                  IPP response message

                  Discussion

                  -

                  The new response message is initialized with the same "version-number", +

                  The new response message is initialized with the same "version-number", "request-id", "attributes-charset", and "attributes-natural-language" as the provided request message. If the "attributes-charset" or "attributes-natural-language" attributes are missing from the request, @@ -5107,108 +6354,108 @@ respectively.

                   CUPS 1.6/macOS 10.8 ippNextAttribute

                  -

                  Return the next attribute in the message.

                  +

                  Return the next attribute in the message.

                  ipp_attribute_t *ippNextAttribute(ipp_t *ipp);

                  Parameters

                  - +
                  ippIPP message
                  IPP message

                  Return Value

                  -

                  Next attribute or NULL if none

                  +

                  Next attribute or NULL if none

                   CUPS 1.2/macOS 10.5 ippOpString

                  -

                  Return a name for the given operation id.

                  +

                  Return a name for the given operation id.

                  const char *ippOpString(ipp_op_t op);

                  Parameters

                  - +
                  opOperation ID
                  Operation ID

                  Return Value

                  -

                  Name

                  +

                  Name

                   CUPS 1.2/macOS 10.5 ippOpValue

                  -

                  Return an operation id for the given name.

                  +

                  Return an operation id for the given name.

                  ipp_op_t ippOpValue(const char *name);

                  Parameters

                  - +
                  nameTextual name
                  Textual name

                  Return Value

                  -

                  Operation ID

                  +

                  Operation ID

                  ippPort

                  -

                  Return the default IPP port number.

                  +

                  Return the default IPP port number.

                  int ippPort(void);

                  Return Value

                  -

                  Port number

                  +

                  Port number

                  ippRead

                  -

                  Read data for an IPP message from a HTTP connection.

                  +

                  Read data for an IPP message from a HTTP connection.

                  ipp_state_t ippRead(http_t *http, ipp_t *ipp);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  ippIPP data
                  IPP data

                  Return Value

                  -

                  Current state

                  +

                  Current state

                   CUPS 1.1.19/macOS 10.3 ippReadFile

                  -

                  Read data for an IPP message from a file.

                  +

                  Read data for an IPP message from a file.

                  ipp_state_t ippReadFile(int fd, ipp_t *ipp);

                  Parameters

                  - + - +
                  fdHTTP data
                  HTTP data
                  ippIPP data
                  IPP data

                  Return Value

                  -

                  Current state

                  +

                  Current state

                   CUPS 1.2/macOS 10.5 ippReadIO

                  -

                  Read data for an IPP message.

                  +

                  Read data for an IPP message.

                  ipp_state_t ippReadIO(void *src, ipp_iocb_t cb, int blocking, ipp_t *parent, ipp_t *ipp);

                  Parameters

                  - + - + - + - + - +
                  srcData source
                  Data source
                  cbRead callback function
                  Read callback function
                  blockingUse blocking IO?
                  Use blocking IO?
                  parentParent request, if any
                  Parent request, if any
                  ippIPP data
                  IPP data

                  Return Value

                  -

                  Current state

                  +

                  Current state

                   CUPS 1.6/macOS 10.8 ippSetBoolean

                  -

                  Set a boolean value in an attribute.

                  +

                  Set a boolean value in an attribute.

                  int ippSetBoolean(ipp_t *ipp, ipp_attribute_t **attr, int element, int boolvalue);

                  Parameters

                  - + - + - + - +
                  ippIPP message
                  IPP message
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  boolvalueBoolean value
                  Boolean value

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -5218,24 +6465,24 @@ The element parameter specifies which value to set from 0 to

                   CUPS 1.6/macOS 10.8 ippSetCollection

                  -

                  Set a collection value in an attribute.

                  +

                  Set a collection value in an attribute.

                  int ippSetCollection(ipp_t *ipp, ipp_attribute_t **attr, int element, ipp_t *colvalue);

                  Parameters

                  - + - + - + - +
                  ippIPP message
                  IPP message
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  colvalueCollection value
                  Collection value

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -5245,24 +6492,24 @@ The element parameter specifies which value to set from 0 to

                   CUPS 1.6/macOS 10.8 ippSetDate

                  -

                  Set a dateTime value in an attribute.

                  +

                  Set a dateTime value in an attribute.

                  int ippSetDate(ipp_t *ipp, ipp_attribute_t **attr, int element, const ipp_uchar_t *datevalue);

                  Parameters

                  - + - + - + - +
                  ippIPP message
                  IPP message
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  datevaluedateTime value
                  dateTime value

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -5272,22 +6519,22 @@ The element parameter specifies which value to set from 0 to

                   CUPS 1.6/macOS 10.8 ippSetGroupTag

                  -

                  Set the group tag of an attribute.

                  +

                  Set the group tag of an attribute.

                  int ippSetGroupTag(ipp_t *ipp, ipp_attribute_t **attr, ipp_tag_t group_tag);

                  Parameters

                  - + - + - +
                  ippIPP message
                  IPP message
                  attrAttribute
                  Attribute
                  group_tagGroup tag
                  Group tag

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -5300,24 +6547,24 @@ event notification (IPP_TAG_EVENT_NOTIFICATION), operation

                   CUPS 1.6/macOS 10.8 ippSetInteger

                  -

                  Set an integer or enum value in an attribute.

                  +

                  Set an integer or enum value in an attribute.

                  int ippSetInteger(ipp_t *ipp, ipp_attribute_t **attr, int element, int intvalue);

                  Parameters

                  - + - + - + - +
                  ippIPP message
                  IPP message
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  intvalueInteger/enum value
                  Integer/enum value

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -5327,48 +6574,48 @@ The element parameter specifies which value to set from 0 to

                   CUPS 1.6/macOS 10.8 ippSetName

                  -

                  Set the name of an attribute.

                  +

                  Set the name of an attribute.

                  int ippSetName(ipp_t *ipp, ipp_attribute_t **attr, const char *name);

                  Parameters

                  - + - + - +
                  ippIPP message
                  IPP message
                  attrIPP attribute
                  IPP attribute
                  nameAttribute name
                  Attribute name

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.

                   CUPS 1.7/macOS 10.9 ippSetOctetString

                  -

                  Set an octetString value in an IPP attribute.

                  +

                  Set an octetString value in an IPP attribute.

                  int ippSetOctetString(ipp_t *ipp, ipp_attribute_t **attr, int element, const void *data, int datalen);

                  Parameters

                  - + - + - + - + - +
                  ippIPP message
                  IPP message
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  dataPointer to octetString data
                  Pointer to octetString data
                  datalenLength of octetString data
                  Length of octetString data

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -5378,53 +6625,53 @@ The element parameter specifies which value to set from 0 to

                   CUPS 1.6/macOS 10.8 ippSetOperation

                  -

                  Set the operation ID in an IPP request message.

                  +

                  Set the operation ID in an IPP request message.

                  int ippSetOperation(ipp_t *ipp, ipp_op_t op);

                  Parameters

                  - + - +
                  ippIPP request message
                  IPP request message
                  opOperation ID
                  Operation ID

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  ippSetPort

                  -

                  Set the default port number.

                  +

                  Set the default port number.

                  void ippSetPort(int p);

                  Parameters

                  - +
                  pPort number to use
                  Port number to use

                   CUPS 1.6/macOS 10.8 ippSetRange

                  -

                  Set a rangeOfInteger value in an attribute.

                  +

                  Set a rangeOfInteger value in an attribute.

                  int ippSetRange(ipp_t *ipp, ipp_attribute_t **attr, int element, int lowervalue, int uppervalue);

                  Parameters

                  - + - + - + - + - +
                  ippIPP message
                  IPP message
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  lowervalueLower bound for range
                  Lower bound for range
                  uppervalueUpper bound for range
                  Upper bound for range

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -5434,48 +6681,48 @@ The element parameter specifies which value to set from 0 to

                   CUPS 1.6/macOS 10.8 ippSetRequestId

                  -

                  Set the request ID in an IPP message.

                  +

                  Set the request ID in an IPP message.

                  int ippSetRequestId(ipp_t *ipp, int request_id);

                  Parameters

                  - + - +
                  ippIPP message
                  IPP message
                  request_idRequest ID
                  Request ID

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The request_id parameter must be greater than 0.

                   CUPS 1.6/macOS 10.8 ippSetResolution

                  -

                  Set a resolution value in an attribute.

                  +

                  Set a resolution value in an attribute.

                  int ippSetResolution(ipp_t *ipp, ipp_attribute_t **attr, int element, ipp_res_t unitsvalue, int xresvalue, int yresvalue);

                  Parameters

                  - + - + - + - + - + - +
                  ippIPP message
                  IPP message
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  unitsvalueResolution units
                  Resolution units
                  xresvalueHorizontal/cross feed resolution
                  Horizontal/cross feed resolution
                  yresvalueVertical/feed resolution
                  Vertical/feed resolution

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -5485,55 +6732,55 @@ The element parameter specifies which value to set from 0 to

                   CUPS 1.6/macOS 10.8 ippSetState

                  -

                  Set the current state of the IPP message.

                  +

                  Set the current state of the IPP message.

                  int ippSetState(ipp_t *ipp, ipp_state_t state);

                  Parameters

                  - + - +
                  ippIPP message
                  IPP message
                  stateIPP state value
                  IPP state value

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                   CUPS 1.6/macOS 10.8 ippSetStatusCode

                  -

                  Set the status code in an IPP response or event message.

                  +

                  Set the status code in an IPP response or event message.

                  int ippSetStatusCode(ipp_t *ipp, ipp_status_t status);

                  Parameters

                  - + - +
                  ippIPP response or event message
                  IPP response or event message
                  statusStatus code
                  Status code

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                   CUPS 1.6/macOS 10.8 ippSetString

                  -

                  Set a string value in an attribute.

                  +

                  Set a string value in an attribute.

                  int ippSetString(ipp_t *ipp, ipp_attribute_t **attr, int element, const char *strvalue);

                  Parameters

                  - + - + - + - +
                  ippIPP message
                  IPP message
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  strvalueString value
                  String value

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -5543,26 +6790,26 @@ The element parameter specifies which value to set from 0 to

                   CUPS 1.7/macOS 10.9 ippSetStringf

                  -

                  Set a formatted string value of an attribute.

                  +

                  Set a formatted string value of an attribute.

                  int ippSetStringf(ipp_t *ipp, ipp_attribute_t **attr, int element, const char *format, ...);

                  Parameters

                  - + - + - + - + - +
                  ippIPP message
                  IPP message
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  formatPrintf-style format string
                  Printf-style format string
                  ...Additional arguments as needed
                  Additional arguments as needed

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -5577,26 +6824,26 @@ the corresponding value type.

                   CUPS 1.7/macOS 10.9 ippSetStringfv

                  -

                  Set a formatted string value of an attribute.

                  +

                  Set a formatted string value of an attribute.

                  int ippSetStringfv(ipp_t *ipp, ipp_attribute_t **attr, int element, const char *format, va_list ap);

                  Parameters

                  - + - + - + - + - +
                  ippIPP message
                  IPP message
                  attrIPP attribute
                  IPP attribute
                  elementValue number (0-based)
                  Value number (0-based)
                  formatPrintf-style format string
                  Printf-style format string
                  apPointer to additional arguments
                  Pointer to additional arguments

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -5611,22 +6858,22 @@ the corresponding value type.

                   CUPS 1.6/macOS 10.8 ippSetValueTag

                  -

                  Set the value tag of an attribute.

                  +

                  Set the value tag of an attribute.

                  int ippSetValueTag(ipp_t *ipp, ipp_attribute_t **attr, ipp_tag_t value_tag);

                  Parameters

                  - + - + - +
                  ippIPP message
                  IPP message
                  attrIPP attribute
                  IPP attribute
                  value_tagValue tag
                  Value tag

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The attr parameter may be modified as a result of setting the value.
                  @@ -5645,331 +6892,454 @@ code for the current locale.

                   CUPS 1.6/macOS 10.8 ippSetVersion

                  -

                  Set the version number in an IPP message.

                  +

                  Set the version number in an IPP message.

                  int ippSetVersion(ipp_t *ipp, int major, int minor);

                  Parameters

                  - + - + - +
                  ippIPP message
                  IPP message
                  majorMajor version number (major.minor)
                  Major version number (major.minor)
                  minorMinor version number (major.minor)
                  Minor version number (major.minor)

                  Return Value

                  -

                  1 on success, 0 on failure

                  +

                  1 on success, 0 on failure

                  Discussion

                  -

                  The ipp parameter refers to an IPP message previously created using +

                  The ipp parameter refers to an IPP message previously created using the ippNew, ippNewRequest, or ippNewResponse functions.

                  The valid version numbers are currently 1.0, 1.1, 2.0, 2.1, and 2.2.

                   CUPS 2.0/OS 10.10 ippStateString

                  -

                  Return the name corresponding to a state value.

                  +

                  Return the name corresponding to a state value.

                  const char *ippStateString(ipp_state_t state);

                  Parameters

                  - +
                  stateState value
                  State value

                  Return Value

                  -

                  State name

                  +

                  State name

                   CUPS 1.4/macOS 10.6 ippTagString

                  -

                  Return the tag name corresponding to a tag value.

                  +

                  Return the tag name corresponding to a tag value.

                  const char *ippTagString(ipp_tag_t tag);

                  Parameters

                  - +
                  tagTag value
                  Tag value

                  Return Value

                  -

                  Tag name

                  +

                  Tag name

                  Discussion

                  -

                  The returned names are defined in RFC 8011 and the IANA IPP Registry. +

                  The returned names are defined in RFC 8011 and the IANA IPP Registry.

                   CUPS 1.4/macOS 10.6 ippTagValue

                  -

                  Return the tag value corresponding to a tag name.

                  +

                  Return the tag value corresponding to a tag name.

                  ipp_tag_t ippTagValue(const char *name);

                  Parameters

                  - +
                  nameTag name
                  Tag name

                  Return Value

                  -

                  Tag value

                  +

                  Tag value

                  Discussion

                  -

                  The tag names are defined in RFC 8011 and the IANA IPP Registry. +

                  The tag names are defined in RFC 8011 and the IANA IPP Registry.

                  ippTimeToDate

                  -

                  Convert from time in seconds to RFC 2579 format.

                  +

                  Convert from time in seconds to RFC 2579 format.

                  const ipp_uchar_t *ippTimeToDate(time_t t);

                  Parameters

                  - +
                  tTime in seconds
                  Time in seconds

                  Return Value

                  -

                  RFC-2579 date/time data

                  +

                  RFC-2579 date/time data

                   CUPS 1.7/macOS 10.9 ippValidateAttribute

                  -

                  Validate the contents of an attribute.

                  +

                  Validate the contents of an attribute.

                  int ippValidateAttribute(ipp_attribute_t *attr);

                  Parameters

                  - +
                  attrAttribute
                  Attribute

                  Return Value

                  -

                  1 if valid, 0 otherwise

                  +

                  1 if valid, 0 otherwise

                  Discussion

                  -

                  This function validates the contents of an attribute based on the name and +

                  This function validates the contents of an attribute based on the name and value tag. 1 is returned if the attribute is valid, 0 otherwise. On failure, cupsLastErrorString is set to a human-readable message.

                   CUPS 1.7/macOS 10.9 ippValidateAttributes

                  -

                  Validate all attributes in an IPP message.

                  +

                  Validate all attributes in an IPP message.

                  int ippValidateAttributes(ipp_t *ipp);

                  Parameters

                  - +
                  ippIPP message
                  IPP message

                  Return Value

                  -

                  1 if valid, 0 otherwise

                  +

                  1 if valid, 0 otherwise

                  Discussion

                  -

                  This function validates the contents of the IPP message, including each +

                  This function validates the contents of the IPP message, including each attribute. Like ippValidateAttribute, cupsLastErrorString is set to a human-readable message on failure.

                  ippWrite

                  -

                  Write data for an IPP message to a HTTP connection.

                  +

                  Write data for an IPP message to a HTTP connection.

                  ipp_state_t ippWrite(http_t *http, ipp_t *ipp);

                  Parameters

                  - + - +
                  httpHTTP connection
                  HTTP connection
                  ippIPP data
                  IPP data

                  Return Value

                  -

                  Current state

                  +

                  Current state

                   CUPS 1.1.19/macOS 10.3 ippWriteFile

                  -

                  Write data for an IPP message to a file.

                  +

                  Write data for an IPP message to a file.

                  ipp_state_t ippWriteFile(int fd, ipp_t *ipp);

                  Parameters

                  - + - +
                  fdHTTP data
                  HTTP data
                  ippIPP data
                  IPP data

                  Return Value

                  -

                  Current state

                  +

                  Current state

                   CUPS 1.2/macOS 10.5 ippWriteIO

                  -

                  Write data for an IPP message.

                  +

                  Write data for an IPP message.

                  ipp_state_t ippWriteIO(void *dst, ipp_iocb_t cb, int blocking, ipp_t *parent, ipp_t *ipp);

                  Parameters

                  - + - + - + - + - +
                  dstDestination
                  Destination
                  cbWrite callback function
                  Write callback function
                  blockingUse blocking IO?
                  Use blocking IO?
                  parentParent IPP message
                  Parent IPP message
                  ippIPP data
                  IPP data

                  Return Value

                  -

                  Current state

                  -

                  Data Types

                  -

                   CUPS 1.5/macOS 10.7 cups_client_cert_cb_t

                  -

                  Client credentials callback +

                  Current state

                  +

                  Data Types

                  +

                  cups_acopy_func_t

                  +

                  Array element copy function

                  +

                  +typedef void *(*)(void *element, void *data)cups_acopy_func_t; +

                  +

                  cups_adv_t

                  +

                  AdvanceMedia attribute values

                  +

                  +typedef enum cups_adv_e cups_adv_t; +

                  +

                  cups_afree_func_t

                  +

                  Array element free function

                  +

                  +typedef void(*)(void *element, void *data)cups_afree_func_t; +

                  +

                  cups_ahash_func_t

                  +

                  Array hash function

                  +

                  +typedef int(*)(void *element, void *data)cups_ahash_func_t; +

                  +

                  cups_array_func_t

                  +

                  Array comparison function

                  +

                  +typedef int(*)(void *first, void *second, void *data)cups_array_func_t; +

                  +

                  cups_array_t

                  +

                  CUPS array type

                  +

                  +typedef struct _cups_array_s cups_array_t; +

                  +

                  cups_bool_t

                  +

                  Boolean type

                  +

                  +typedef enum cups_bool_e cups_bool_t; +

                  +

                   CUPS 1.5/macOS 10.7 cups_client_cert_cb_t

                  +

                  Client credentials callback +

                  +

                  +typedef int(*)(http_t *http, void *tls, cups_array_t *distinguished_names, void *user_data)cups_client_cert_cb_t; +

                  +

                  cups_cspace_t

                  +

                  cupsColorSpace attribute values

                  +

                  +typedef enum cups_cspace_e cups_cspace_t;

                  -

                  -typedef int(*)(http_t *http, void *tls, cups_array_t *distinguished_names, void *user_data)cups_client_cert_cb_t; +

                  cups_cut_t

                  +

                  CutMedia attribute values

                  +

                  +typedef enum cups_cut_e cups_cut_t; +

                  +

                  cups_dentry_t

                  +

                  Directory entry type

                  +

                  +typedef struct cups_dentry_s cups_dentry_t;

                  -

                   CUPS 1.6/macOS 10.8 cups_dest_cb_t

                  -

                  Destination enumeration callback +

                   CUPS 1.6/macOS 10.8 cups_dest_cb_t

                  +

                  Destination enumeration callback

                  -

                  +

                  typedef int(*)(void *user_data, unsigned flags, cups_dest_t *dest)cups_dest_cb_t;

                  -

                  cups_dest_t

                  -

                  Destination

                  -

                  +

                  cups_dest_t

                  +

                  Destination

                  +

                  typedef struct cups_dest_s cups_dest_t;

                  -

                   CUPS 1.6/macOS 10.8 cups_dinfo_t

                  -

                  Destination capability and status +

                   CUPS 1.6/macOS 10.8 cups_dinfo_t

                  +

                  Destination capability and status information

                  -

                  +

                  typedef struct _cups_dinfo_s cups_dinfo_t;

                  -

                  cups_job_t

                  -

                  Job

                  -

                  +

                  cups_dir_t

                  +

                  Directory type

                  +

                  +typedef struct _cups_dir_s cups_dir_t; +

                  +

                  cups_edge_t

                  +

                  LeadingEdge attribute values

                  +

                  +typedef enum cups_edge_e cups_edge_t; +

                  +

                  cups_file_t

                  +

                  CUPS file type

                  +

                  +typedef struct _cups_file_s cups_file_t; +

                  +

                  cups_job_t

                  +

                  Job

                  +

                  typedef struct cups_job_s cups_job_t;

                  -

                  cups_option_t

                  -

                  Printer Options

                  -

                  +

                  cups_jog_t

                  +

                  Jog attribute values

                  +

                  +typedef enum cups_jog_e cups_jog_t; +

                  +

                  cups_mode_t

                  +

                  cupsRasterOpen modes

                  +

                  +typedef enum cups_mode_e cups_mode_t; +

                  +

                  cups_option_t

                  +

                  Printer Options

                  +

                  typedef struct cups_option_s cups_option_t;

                  -

                   CUPS 1.4/macOS 10.6 cups_password_cb2_t

                  -

                  New password callback +

                  cups_order_t

                  +

                  cupsColorOrder attribute values

                  +

                  +typedef enum cups_order_e cups_order_t; +

                  +

                  cups_orient_t

                  +

                  Orientation attribute values

                  +

                  +typedef enum cups_orient_e cups_orient_t; +

                  +

                   CUPS 1.2/macOS 10.5 cups_page_header2_t

                  +

                  Version 2 page header

                  +

                  +typedef struct cups_page_header2_s cups_page_header2_t; +

                  +

                   DEPRECATED cups_page_header_t

                  +

                  Version 1 page header

                  +

                  +typedef struct cups_page_header_s cups_page_header_t; +

                  +

                   CUPS 1.4/macOS 10.6 cups_password_cb2_t

                  +

                  New password callback

                  -

                  +

                  typedef const char *(*)(const char *prompt, http_t *http, const char *method, const char *resource, void *user_data)cups_password_cb2_t;

                  -

                  cups_ptype_t

                  -

                  Printer type/capability bits

                  -

                  +

                  cups_ptype_t

                  +

                  Printer type/capability bits

                  +

                  typedef unsigned cups_ptype_t;

                  -

                   CUPS 1.5/macOS 10.7 cups_server_cert_cb_t

                  -

                  Server credentials callback +

                  cups_raster_iocb_t

                  +

                  cupsRasterOpenIO callback function

                  +

                  +typedef ssize_t(*)(void *ctx, unsigned char *buffer, size_t length) cups_raster_iocb_t; +

                  +

                  cups_raster_t

                  +

                  Raster stream data

                  +

                  +typedef struct _cups_raster_s cups_raster_t; +

                  +

                   CUPS 1.5/macOS 10.7 cups_server_cert_cb_t

                  +

                  Server credentials callback

                  -

                  -typedef int(*)(http_t *http, void *tls, cups_array_t *certs, void *user_data)cups_server_cert_cb_t; +

                  +typedef int(*)(http_t *http, void *tls, cups_array_t *certs, void *user_data)cups_server_cert_cb_t;

                  -

                   CUPS 1.6/macOS 10.8 cups_size_t

                  -

                  Media Size

                  -

                  +

                   CUPS 1.6/macOS 10.8 cups_size_t

                  +

                  Media Size

                  +

                  typedef struct cups_size_s cups_size_t;

                  -

                   CUPS 1.2/macOS 10.5 http_addr_t

                  -

                  Socket address union, which +

                   CUPS 1.2/macOS 10.5 http_addr_t

                  +

                  Socket address union, which makes using IPv6 and other address types easier and more portable.

                  -

                  +

                  typedef union _http_addr_u / http_addr_t;

                  -

                  http_encoding_t

                  -

                  HTTP transfer encoding values

                  -

                  +

                  http_encoding_t

                  +

                  HTTP transfer encoding values

                  +

                  typedef enum http_encoding_e http_encoding_t;

                  -

                  http_encryption_t

                  -

                  HTTP encryption values

                  -

                  +

                  http_encryption_t

                  +

                  HTTP encryption values

                  +

                  typedef enum http_encryption_e http_encryption_t;

                  -

                  http_field_t

                  -

                  HTTP field names

                  -

                  +

                  http_field_t

                  +

                  HTTP field names

                  +

                  typedef enum http_field_e http_field_t;

                  -

                  http_keepalive_t

                  -

                  HTTP keep-alive values

                  -

                  +

                  http_keepalive_t

                  +

                  HTTP keep-alive values

                  +

                  typedef enum http_keepalive_e http_keepalive_t;

                  -

                  http_state_t

                  -

                  HTTP state values; states +

                  http_state_t

                  +

                  HTTP state values; states are server-oriented...

                  -

                  +

                  typedef enum http_state_e http_state_t;

                  -

                  http_t

                  -

                  HTTP connection type

                  -

                  +

                  http_t

                  +

                  HTTP connection type

                  +

                  typedef struct _http_s http_t;

                  -

                   CUPS 1.5/macOS 10.7 http_timeout_cb_t

                  -

                  HTTP timeout callback

                  -

                  +

                   CUPS 1.5/macOS 10.7 http_timeout_cb_t

                  +

                  HTTP timeout callback

                  +

                  typedef int(*)(http_t *http, void *user_data)http_timeout_cb_t;

                  -

                   CUPS 2.0/OS 10.10 http_trust_t

                  -

                  Level of trust for credentials

                  -

                  +

                   CUPS 2.0/OS 10.10 http_trust_t

                  +

                  Level of trust for credentials

                  +

                  typedef enum http_trust_e http_trust_t;

                  -

                  http_uri_coding_t

                  -

                  URI en/decode flags

                  -

                  +

                  http_uri_coding_t

                  +

                  URI en/decode flags

                  +

                  typedef enum http_uri_coding_e http_uri_coding_t;

                  -

                   CUPS 1.2 http_uri_status_t

                  -

                  URI separation status

                  -

                  +

                   CUPS 1.2 http_uri_status_t

                  +

                  URI separation status

                  +

                  typedef enum http_uri_status_e http_uri_status_t;

                  -

                  ipp_attribute_t

                  -

                  IPP attribute

                  -

                  +

                  ipp_attribute_t

                  +

                  IPP attribute

                  +

                  typedef struct _ipp_attribute_s ipp_attribute_t;

                  -

                   CUPS 1.6/macOS 10.8 ipp_copycb_t

                  -

                  ippCopyAttributes callback function

                  -

                  +

                   CUPS 1.6/macOS 10.8 ipp_copycb_t

                  +

                  ippCopyAttributes callback function

                  +

                  typedef int(*)(void *context, ipp_t *dst, ipp_attribute_t *attr)ipp_copycb_t;

                  -

                   CUPS 1.2/macOS 10.5 ipp_iocb_t

                  -

                  ippReadIO/ippWriteIO callback function

                  -

                  +

                   CUPS 1.2/macOS 10.5 ipp_iocb_t

                  +

                  ippReadIO/ippWriteIO callback function

                  +

                  typedef ssize_t(*)(void *context, ipp_uchar_t *buffer, size_t bytes) ipp_iocb_t;

                  -

                  ipp_orient_t

                  -

                  Orientation values

                  -

                  +

                  ipp_orient_t

                  +

                  Orientation values

                  +

                  typedef enum ipp_orient_e ipp_orient_t;

                  -

                  ipp_pstate_t

                  -

                  Printer state values

                  -

                  +

                  ipp_pstate_t

                  +

                  Printer state values

                  +

                  typedef enum ipp_pstate_e ipp_pstate_t;

                  -

                  ipp_quality_t

                  -

                  Print quality values

                  -

                  +

                  ipp_quality_t

                  +

                  Print quality values

                  +

                  typedef enum ipp_quality_e ipp_quality_t;

                  -

                  ipp_res_t

                  -

                  Resolution units

                  -

                  +

                  ipp_res_t

                  +

                  Resolution units

                  +

                  typedef enum ipp_res_e ipp_res_t;

                  -

                  ipp_rstate_t

                  -

                  resource-state values

                  -

                  +

                  ipp_rstate_t

                  +

                  resource-state values

                  +

                  typedef enum ipp_rstate_e ipp_rstate_t;

                  -

                  ipp_sstate_t

                  -

                  system-state values

                  -

                  +

                  ipp_sstate_t

                  +

                  system-state values

                  +

                  typedef enum ipp_sstate_e ipp_sstate_t;

                  -

                  ipp_state_t

                  -

                  ipp_t state values

                  -

                  +

                  ipp_state_t

                  +

                  ipp_t state values

                  +

                  typedef enum ipp_state_e ipp_state_t;

                  -

                  ipp_t

                  -

                  IPP request/response data

                  -

                  +

                  ipp_t

                  +

                  IPP request/response data

                  +

                  typedef struct _ipp_s ipp_t;

                  -

                  Structures

                  +

                  pwg_media_t

                  +

                  Common media size data

                  +

                  +typedef struct pwg_media_s pwg_media_t; +

                  +

                  Structures

                  +

                  cups_dentry_s

                  +

                  Directory entry type

                  +

                  struct cups_dentry_s {
                  +    struct stat fileinfo;
                  +    char filename[260];
                  +};

                  +

                  Members

                  + + + + + +
                  fileinfo File information
                  filename[260] File name

                  cups_dest_s

                  -

                  Destination

                  +

                  Destination

                  struct cups_dest_s {
                      char *name, *instance;
                      int is_default;
                  @@ -5979,16 +7349,16 @@ typedef struct _ipp_s ipp_t;

                  Members

                  - + - + - + - +
                  instance Local instance name or NULL
                  Local instance name or NULL
                  is_default Is this printer the default?
                  Is this printer the default?
                  num_options Number of options
                  Number of options
                  options Options
                  Options

                  cups_job_s

                  -

                  Job

                  +

                  Job

                  struct cups_job_s {
                      time_t completed_time;
                      time_t creation_time;
                  @@ -6005,30 +7375,30 @@ typedef struct _ipp_s ipp_t;

                  Members

                  - + - + - + - + - + - + - + - + - + - + - +
                  completed_time Time the job was completed
                  Time the job was completed
                  creation_time Time the job was created
                  Time the job was created
                  dest Printer or class name
                  Printer or class name
                  format Document format
                  Document format
                  id The job ID
                  The job ID
                  priority Priority (1-100)
                  Priority (1-100)
                  processing_time Time the job was processed
                  Time the job was processed
                  size Size in kilobytes
                  Size in kilobytes
                  state Job state
                  Job state
                  title Title/job name
                  Title/job name
                  user User that submitted the job
                  User that submitted the job

                  cups_option_s

                  -

                  Printer Options

                  +

                  Printer Options

                  struct cups_option_s {
                      char *name;
                      char *value;
                  @@ -6036,12 +7406,293 @@ typedef struct _ipp_s ipp_t;

                  Members

                  - + - + +
                  name Name of option
                  Name of option
                  value Value of option
                  Value of option
                  +

                   CUPS 1.2/macOS 10.5 cups_page_header2_s

                  +

                  Version 2 page header

                  +

                  struct cups_page_header2_s {
                  +    unsigned AdvanceDistance;
                  +    cups_adv_t AdvanceMedia;
                  +    cups_bool_t Collate;
                  +    cups_cut_t CutMedia;
                  +    cups_bool_t Duplex;
                  +    unsigned HWResolution[2];
                  +    unsigned ImagingBoundingBox[4];
                  +    cups_bool_t InsertSheet;
                  +    cups_jog_t Jog;
                  +    cups_edge_t LeadingEdge;
                  +    cups_bool_t ManualFeed;
                  +    unsigned Margins[2];
                  +    char MediaClass[64];
                  +    char MediaColor[64];
                  +    unsigned MediaPosition;
                  +    char MediaType[64];
                  +    unsigned MediaWeight;
                  +    cups_bool_t MirrorPrint;
                  +    cups_bool_t NegativePrint;
                  +    unsigned NumCopies;
                  +    cups_orient_t Orientation;
                  +    cups_bool_t OutputFaceUp;
                  +    char OutputType[64];
                  +    unsigned PageSize[2];
                  +    cups_bool_t Separations;
                  +    cups_bool_t TraySwitch;
                  +    cups_bool_t Tumble;
                  +    unsigned cupsBitsPerColor;
                  +    unsigned cupsBitsPerPixel;
                  +    float cupsBorderlessScalingFactor;
                  +    unsigned cupsBytesPerLine;
                  +    cups_order_t cupsColorOrder;
                  +    cups_cspace_t cupsColorSpace;
                  +    unsigned cupsCompression;
                  +    unsigned cupsHeight;
                  +    float cupsImagingBBox[4];
                  +    unsigned cupsInteger[16];
                  +    char cupsMarkerType[64];
                  +    unsigned cupsMediaType;
                  +    unsigned cupsNumColors;
                  +    char cupsPageSizeName[64];
                  +    float cupsPageSize[2];
                  +    float cupsReal[16];
                  +    char cupsRenderingIntent[64];
                  +    unsigned cupsRowCount;
                  +    unsigned cupsRowFeed;
                  +    unsigned cupsRowStep;
                  +    char cupsString[16][64];
                  +    unsigned cupsWidth;
                  +};

                  +

                  Members

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  AdvanceDistance AdvanceDistance value in points
                  AdvanceMedia AdvanceMedia value (cups_adv_t)
                  Collate Collated copies value
                  CutMedia CutMedia value (cups_cut_t)
                  Duplex Duplexed (double-sided) value
                  HWResolution[2] Resolution in dots-per-inch
                  ImagingBoundingBox[4] Pixel region that is painted (points, left, bottom, right, top)
                  InsertSheet InsertSheet value
                  Jog Jog value (cups_jog_t)
                  LeadingEdge LeadingEdge value (cups_edge_t)
                  ManualFeed ManualFeed value
                  Margins[2] Lower-lefthand margins in points
                  MediaClass[64] MediaClass string
                  MediaColor[64] MediaColor string
                  MediaPosition MediaPosition value
                  MediaType[64] MediaType string
                  MediaWeight MediaWeight value in grams/m^2
                  MirrorPrint MirrorPrint value
                  NegativePrint NegativePrint value
                  NumCopies Number of copies to produce
                  Orientation Orientation value (cups_orient_t)
                  OutputFaceUp OutputFaceUp value
                  OutputType[64] OutputType string
                  PageSize[2] Width and length of page in points
                  Separations Separations value
                  TraySwitch TraySwitch value
                  Tumble Tumble value
                  cupsBitsPerColor Number of bits for each color
                  cupsBitsPerPixel Number of bits for each pixel
                  cupsBorderlessScalingFactor  CUPS 1.2/macOS 10.5 Scaling that was applied to page data
                  cupsBytesPerLine Number of bytes per line
                  cupsColorOrder Order of colors
                  cupsColorSpace True colorspace
                  cupsCompression Device compression to use
                  cupsHeight Height of page image in pixels
                  cupsImagingBBox[4]  CUPS 1.2/macOS 10.5 Floating point ImagingBoundingBox +(scaling factor not applied, left, +bottom, right, top)
                  cupsInteger[16]  CUPS 1.2/macOS 10.5 User-defined integer values
                  cupsMarkerType[64]  CUPS 1.2/macOS 10.5 Ink/toner type
                  cupsMediaType Media type code
                  cupsNumColors  CUPS 1.2/macOS 10.5 Number of color compoents
                  cupsPageSizeName[64]  CUPS 1.2/macOS 10.5 PageSize name
                  cupsPageSize[2]  CUPS 1.2/macOS 10.5 Floating point PageSize (scaling * +factor not applied)
                  cupsReal[16]  CUPS 1.2/macOS 10.5 User-defined floating-point values
                  cupsRenderingIntent[64]  CUPS 1.2/macOS 10.5 Color rendering intent
                  cupsRowCount Rows per band
                  cupsRowFeed Feed between bands
                  cupsRowStep Spacing between lines
                  cupsString[16][64]  CUPS 1.2/macOS 10.5 User-defined string values
                  cupsWidth Width of page image in pixels
                  +

                   DEPRECATED cups_page_header_s

                  +

                  Version 1 page header

                  +

                  struct cups_page_header_s {
                  +    unsigned AdvanceDistance;
                  +    cups_adv_t AdvanceMedia;
                  +    cups_bool_t Collate;
                  +    cups_cut_t CutMedia;
                  +    cups_bool_t Duplex;
                  +    unsigned HWResolution[2];
                  +    unsigned ImagingBoundingBox[4];
                  +    cups_bool_t InsertSheet;
                  +    cups_jog_t Jog;
                  +    cups_edge_t LeadingEdge;
                  +    cups_bool_t ManualFeed;
                  +    unsigned Margins[2];
                  +    char MediaClass[64];
                  +    char MediaColor[64];
                  +    unsigned MediaPosition;
                  +    char MediaType[64];
                  +    unsigned MediaWeight;
                  +    cups_bool_t MirrorPrint;
                  +    cups_bool_t NegativePrint;
                  +    unsigned NumCopies;
                  +    cups_orient_t Orientation;
                  +    cups_bool_t OutputFaceUp;
                  +    char OutputType[64];
                  +    unsigned PageSize[2];
                  +    cups_bool_t Separations;
                  +    cups_bool_t TraySwitch;
                  +    cups_bool_t Tumble;
                  +    unsigned cupsBitsPerColor;
                  +    unsigned cupsBitsPerPixel;
                  +    unsigned cupsBytesPerLine;
                  +    cups_order_t cupsColorOrder;
                  +    cups_cspace_t cupsColorSpace;
                  +    unsigned cupsCompression;
                  +    unsigned cupsHeight;
                  +    unsigned cupsMediaType;
                  +    unsigned cupsRowCount;
                  +    unsigned cupsRowFeed;
                  +    unsigned cupsRowStep;
                  +    unsigned cupsWidth;
                  +};

                  +

                  Members

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  AdvanceDistance AdvanceDistance value in points
                  AdvanceMedia AdvanceMedia value (cups_adv_t)
                  Collate Collated copies value
                  CutMedia CutMedia value (cups_cut_t)
                  Duplex Duplexed (double-sided) value
                  HWResolution[2] Resolution in dots-per-inch
                  ImagingBoundingBox[4] Pixel region that is painted (points, left, bottom, right, top)
                  InsertSheet InsertSheet value
                  Jog Jog value (cups_jog_t)
                  LeadingEdge LeadingEdge value (cups_edge_t)
                  ManualFeed ManualFeed value
                  Margins[2] Lower-lefthand margins in points
                  MediaClass[64] MediaClass string
                  MediaColor[64] MediaColor string
                  MediaPosition MediaPosition value
                  MediaType[64] MediaType string
                  MediaWeight MediaWeight value in grams/m^2
                  MirrorPrint MirrorPrint value
                  NegativePrint NegativePrint value
                  NumCopies Number of copies to produce
                  Orientation Orientation value (cups_orient_t)
                  OutputFaceUp OutputFaceUp value
                  OutputType[64] OutputType string
                  PageSize[2] Width and length of page in points
                  Separations Separations value
                  TraySwitch TraySwitch value
                  Tumble Tumble value
                  cupsBitsPerColor Number of bits for each color
                  cupsBitsPerPixel Number of bits for each pixel
                  cupsBytesPerLine Number of bytes per line
                  cupsColorOrder Order of colors
                  cupsColorSpace True colorspace
                  cupsCompression Device compression to use
                  cupsHeight Height of page image in pixels
                  cupsMediaType Media type code
                  cupsRowCount Rows per band
                  cupsRowFeed Feed between bands
                  cupsRowStep Spacing between lines
                  cupsWidth Width of page image in pixels

                   CUPS 1.6/macOS 10.8 cups_size_s

                  -

                  Media Size

                  +

                  Media Size

                  struct cups_size_s {
                      char media[128];
                      int width, length, bottom, left, right, top;
                  @@ -6049,556 +7700,696 @@ typedef struct _ipp_s ipp_t;

                  Members

                  - + -
                  media[128] Media name to use
                  Media name to use
                  top Top margin in hundredths of +Top margin in hundredths of millimeters
                  -

                  Constants

                  -

                  cups_ptype_e

                  -

                  Printer type/capability bit +

                  pwg_media_s

                  +

                  Common media size data

                  +

                  struct pwg_media_s {
                  +    int width, length;
                  +    const char *pwg, *legacy, *ppd;
                  +};

                  +

                  Members

                  + + + + + +
                  length Length in 2540ths
                  ppd Standard Adobe PPD name
                  +

                  Constants

                  +

                  cups_adv_e

                  +

                  AdvanceMedia attribute values

                  +

                  Constants

                  + + + + + + +
                  CUPS_ADVANCE_FILE Advance the roll after this file
                  CUPS_ADVANCE_JOB Advance the roll after this job
                  CUPS_ADVANCE_NONE Never advance the roll
                  CUPS_ADVANCE_PAGE Advance the roll after this page
                  CUPS_ADVANCE_SET Advance the roll after this set
                  +

                  cups_bool_e

                  +

                  Boolean type

                  +

                  Constants

                  + + + +
                  CUPS_FALSE Logical false
                  CUPS_TRUE Logical true
                  +

                  cups_cspace_e

                  +

                  cupsColorSpace attribute values

                  +

                  Constants

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  CUPS_CSPACE_ADOBERGB  CUPS 1.4.5 Red, green, blue (Adobe RGB)
                  CUPS_CSPACE_CIELab  CUPS 1.1.19/macOS 10.3 CIE Lab
                  CUPS_CSPACE_CIEXYZ  CUPS 1.1.19/macOS 10.3 CIE XYZ
                  CUPS_CSPACE_CMY Cyan, magenta, yellow (DeviceCMY)
                  CUPS_CSPACE_CMYK Cyan, magenta, yellow, black (DeviceCMYK)
                  CUPS_CSPACE_DEVICE1  CUPS 1.4.5 DeviceN, 1 color
                  CUPS_CSPACE_DEVICE2  CUPS 1.4.5 DeviceN, 2 colors
                  CUPS_CSPACE_DEVICE3  CUPS 1.4.5 DeviceN, 3 colors
                  CUPS_CSPACE_DEVICE4  CUPS 1.4.5 DeviceN, 4 colors
                  CUPS_CSPACE_DEVICE5  CUPS 1.4.5 DeviceN, 5 colors
                  CUPS_CSPACE_DEVICE6  CUPS 1.4.5 DeviceN, 6 colors
                  CUPS_CSPACE_DEVICE7  CUPS 1.4.5 DeviceN, 7 colors
                  CUPS_CSPACE_DEVICE8  CUPS 1.4.5 DeviceN, 8 colors
                  CUPS_CSPACE_DEVICE9  CUPS 1.4.5 DeviceN, 9 colors
                  CUPS_CSPACE_DEVICEA  CUPS 1.4.5 DeviceN, 10 colors
                  CUPS_CSPACE_DEVICEB  CUPS 1.4.5 DeviceN, 11 colors
                  CUPS_CSPACE_DEVICEC  CUPS 1.4.5 DeviceN, 12 colors
                  CUPS_CSPACE_DEVICED  CUPS 1.4.5 DeviceN, 13 colors
                  CUPS_CSPACE_DEVICEE  CUPS 1.4.5 DeviceN, 14 colors
                  CUPS_CSPACE_DEVICEF  CUPS 1.4.5 DeviceN, 15 colors
                  CUPS_CSPACE_GMCK  DEPRECATED Gold, magenta, yellow, black
                  CUPS_CSPACE_GMCS  DEPRECATED Gold, magenta, yellow, silver
                  CUPS_CSPACE_GOLD  DEPRECATED Gold foil
                  CUPS_CSPACE_ICC1  CUPS 1.1.19/macOS 10.3 ICC-based, 1 color
                  CUPS_CSPACE_ICC2  CUPS 1.1.19/macOS 10.3 ICC-based, 2 colors
                  CUPS_CSPACE_ICC3  CUPS 1.1.19/macOS 10.3 ICC-based, 3 colors
                  CUPS_CSPACE_ICC4  CUPS 1.1.19/macOS 10.3 ICC-based, 4 colors
                  CUPS_CSPACE_ICC5  CUPS 1.1.19/macOS 10.3 ICC-based, 5 colors
                  CUPS_CSPACE_ICC6  CUPS 1.1.19/macOS 10.3 ICC-based, 6 colors
                  CUPS_CSPACE_ICC7  CUPS 1.1.19/macOS 10.3 ICC-based, 7 colors
                  CUPS_CSPACE_ICC8  CUPS 1.1.19/macOS 10.3 ICC-based, 8 colors
                  CUPS_CSPACE_ICC9  CUPS 1.1.19/macOS 10.3 ICC-based, 9 colors
                  CUPS_CSPACE_ICCA  CUPS 1.1.19/macOS 10.3 ICC-based, 10 colors
                  CUPS_CSPACE_ICCB  CUPS 1.1.19/macOS 10.3 ICC-based, 11 colors
                  CUPS_CSPACE_ICCC  CUPS 1.1.19/macOS 10.3 ICC-based, 12 colors
                  CUPS_CSPACE_ICCD  CUPS 1.1.19/macOS 10.3 ICC-based, 13 colors
                  CUPS_CSPACE_ICCE  CUPS 1.1.19/macOS 10.3 ICC-based, 14 colors
                  CUPS_CSPACE_ICCF  CUPS 1.1.19/macOS 10.3 ICC-based, 15 colors
                  CUPS_CSPACE_K Black (DeviceK)
                  CUPS_CSPACE_KCMY  DEPRECATED Black, cyan, magenta, yellow
                  CUPS_CSPACE_KCMYcm  DEPRECATED Black, cyan, magenta, yellow, light-cyan, light-magenta
                  CUPS_CSPACE_RGB Red, green, blue (DeviceRGB, sRGB by default)
                  CUPS_CSPACE_RGBA Red, green, blue, alpha (DeviceRGB, sRGB by default)
                  CUPS_CSPACE_RGBW  CUPS 1.2/macOS 10.5 Red, green, blue, white (DeviceRGB, sRGB by default)
                  CUPS_CSPACE_SILVER  DEPRECATED Silver foil
                  CUPS_CSPACE_SRGB  CUPS 1.4.5 Red, green, blue (sRGB)
                  CUPS_CSPACE_SW  CUPS 1.4.5 Luminance (gamma 2.2)
                  CUPS_CSPACE_W Luminance (DeviceGray, gamma 2.2 by default)
                  CUPS_CSPACE_WHITE  DEPRECATED White ink (as black)
                  CUPS_CSPACE_YMC  DEPRECATED Yellow, magenta, cyan
                  CUPS_CSPACE_YMCK  DEPRECATED Yellow, magenta, cyan, black
                  +

                  cups_cut_e

                  +

                  CutMedia attribute values

                  +

                  Constants

                  + + + + + + +
                  CUPS_CUT_FILE Cut the roll after this file
                  CUPS_CUT_JOB Cut the roll after this job
                  CUPS_CUT_NONE Never cut the roll
                  CUPS_CUT_PAGE Cut the roll after this page
                  CUPS_CUT_SET Cut the roll after this set
                  +

                  cups_edge_e

                  +

                  LeadingEdge attribute values

                  +

                  Constants

                  + + + + + +
                  CUPS_EDGE_BOTTOM Leading edge is the bottom of the page
                  CUPS_EDGE_LEFT Leading edge is the left of the page
                  CUPS_EDGE_RIGHT Leading edge is the right of the page
                  CUPS_EDGE_TOP Leading edge is the top of the page
                  +

                  cups_jog_e

                  +

                  Jog attribute values

                  +

                  Constants

                  + + + + + +
                  CUPS_JOG_FILE Move pages after this file
                  CUPS_JOG_JOB Move pages after this job
                  CUPS_JOG_NONE Never move pages
                  CUPS_JOG_SET Move pages after this set
                  +

                  cups_mode_e

                  +

                  cupsRasterOpen modes

                  +

                  Constants

                  + + + + + +
                  CUPS_RASTER_READ Open stream for reading
                  CUPS_RASTER_WRITE Open stream for writing
                  CUPS_RASTER_WRITE_COMPRESSED  CUPS 1.3/macOS 10.5 Open stream for compressed writing
                  CUPS_RASTER_WRITE_PWG  CUPS 1.5/macOS 10.7 Open stream for compressed writing in PWG Raster mode
                  +

                  cups_order_e

                  +

                  cupsColorOrder attribute values

                  +

                  Constants

                  + + + + +
                  CUPS_ORDER_BANDED CCC MMM YYY KKK ...
                  CUPS_ORDER_CHUNKED CMYK CMYK CMYK ...
                  CUPS_ORDER_PLANAR CCC ... MMM ... YYY ... KKK ...
                  +

                  cups_orient_e

                  +

                  Orientation attribute values

                  +

                  Constants

                  + + + + + +
                  CUPS_ORIENT_0 Don't rotate the page
                  CUPS_ORIENT_180 Turn the page upside down
                  CUPS_ORIENT_270 Rotate the page clockwise
                  CUPS_ORIENT_90 Rotate the page counter-clockwise
                  +

                  cups_ptype_e

                  +

                  Printer type/capability bit constants

                  -

                  Constants

                  - - + + + + + + +
                  CUPS_PRINTER_AUTHENTICATED  CUPS 1.2/macOS 10.5  Printer requires authentication +

                  Constants

                  + + - - - - - - + + + + + - - - - - - - - - - + + + + + + + + + - - - - - - - -
                  CUPS_PRINTER_AUTHENTICATED  CUPS 1.2/macOS 10.5 Printer requires authentication
                  CUPS_PRINTER_BIND Can bind output
                  CUPS_PRINTER_BW Can do B&W printing
                  CUPS_PRINTER_CLASS Printer class
                  CUPS_PRINTER_COLLATE Can quickly collate copies
                  CUPS_PRINTER_COLOR Can do color printing
                  CUPS_PRINTER_COMMANDS  CUPS 1.2/macOS 10.5  Printer supports maintenance commands +
                  CUPS_PRINTER_BIND Can bind output
                  CUPS_PRINTER_BW Can do B&W printing
                  CUPS_PRINTER_CLASS Printer class
                  CUPS_PRINTER_COLLATE Can quickly collate copies
                  CUPS_PRINTER_COLOR Can do color printing
                  CUPS_PRINTER_COMMANDS  CUPS 1.2/macOS 10.5 Printer supports maintenance commands
                  CUPS_PRINTER_COPIES Can do copies in hardware
                  CUPS_PRINTER_COVER Can cover output
                  CUPS_PRINTER_DEFAULT Default printer on network
                  CUPS_PRINTER_DISCOVERED  CUPS 1.2/macOS 10.5  Printer was discovered
                  CUPS_PRINTER_DUPLEX Can do two-sided printing
                  CUPS_PRINTER_FAX Fax queue
                  CUPS_PRINTER_LARGE Can print on D/E/A1/A0-size media
                  CUPS_PRINTER_LOCAL Local printer or class
                  CUPS_PRINTER_MEDIUM Can print on Tabloid/B/C/A3/A2-size media
                  CUPS_PRINTER_NOT_SHARED  CUPS 1.2/macOS 10.5  Printer is not shared +
                  CUPS_PRINTER_COPIES Can do copies in hardware
                  CUPS_PRINTER_COVER Can cover output
                  CUPS_PRINTER_DEFAULT Default printer on network
                  CUPS_PRINTER_DISCOVERED  CUPS 1.2/macOS 10.5 Printer was discovered
                  CUPS_PRINTER_DUPLEX Can do two-sided printing
                  CUPS_PRINTER_FAX Fax queue
                  CUPS_PRINTER_LARGE Can print on D/E/A1/A0-size media
                  CUPS_PRINTER_LOCAL Local printer or class
                  CUPS_PRINTER_MEDIUM Can print on Tabloid/B/C/A3/A2-size media
                  CUPS_PRINTER_NOT_SHARED  CUPS 1.2/macOS 10.5 Printer is not shared
                  CUPS_PRINTER_PUNCH Can punch output
                  CUPS_PRINTER_REJECTING Printer is rejecting jobs
                  CUPS_PRINTER_REMOTE Remote printer or class
                  CUPS_PRINTER_SMALL Can print on Letter/Legal/A4-size media
                  CUPS_PRINTER_SORT Can sort output
                  CUPS_PRINTER_STAPLE Can staple output
                  CUPS_PRINTER_VARIABLE Can print on rolls and custom-size media
                  -

                  http_encoding_e

                  -

                  HTTP transfer encoding values

                  -

                  Constants

                  - - - - -
                  HTTP_ENCODING_CHUNKED Data is chunked
                  HTTP_ENCODING_FIELDS Sending HTTP fields
                  HTTP_ENCODING_LENGTH Data is sent with Content-Length
                  -

                  http_encryption_e

                  -

                  HTTP encryption values

                  -

                  Constants

                  - - - - - -
                  HTTP_ENCRYPTION_ALWAYS Always encrypt (SSL)
                  HTTP_ENCRYPTION_IF_REQUESTED Encrypt if requested (TLS upgrade)
                  HTTP_ENCRYPTION_NEVER Never encrypt
                  HTTP_ENCRYPTION_REQUIRED Encryption is required (TLS upgrade)
                  -

                  http_field_e

                  -

                  HTTP field names

                  -

                  Constants

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  HTTP_FIELD_ACCEPT_ENCODING  CUPS 1.7/macOS 10.9  Accepting-Encoding field
                  HTTP_FIELD_ACCEPT_LANGUAGE Accept-Language field
                  HTTP_FIELD_ACCEPT_RANGES Accept-Ranges field
                  HTTP_FIELD_ALLOW  CUPS 1.7/macOS 10.9  Allow field
                  HTTP_FIELD_AUTHENTICATION_INFO  CUPS 2.2.9)  Authentication-Info field (
                  HTTP_FIELD_AUTHORIZATION Authorization field
                  HTTP_FIELD_CONNECTION Connection field
                  HTTP_FIELD_CONTENT_ENCODING Content-Encoding field
                  HTTP_FIELD_CONTENT_LANGUAGE Content-Language field
                  HTTP_FIELD_CONTENT_LENGTH Content-Length field
                  HTTP_FIELD_CONTENT_LOCATION Content-Location field
                  HTTP_FIELD_CONTENT_MD5 Content-MD5 field
                  HTTP_FIELD_CONTENT_RANGE Content-Range field
                  HTTP_FIELD_CONTENT_TYPE Content-Type field
                  HTTP_FIELD_CONTENT_VERSION Content-Version field
                  HTTP_FIELD_DATE Date field
                  HTTP_FIELD_HOST Host field
                  HTTP_FIELD_IF_MODIFIED_SINCE If-Modified-Since field
                  HTTP_FIELD_IF_UNMODIFIED_SINCE If-Unmodified-Since field
                  HTTP_FIELD_KEEP_ALIVE Keep-Alive field
                  HTTP_FIELD_LAST_MODIFIED Last-Modified field
                  HTTP_FIELD_LINK Link field
                  HTTP_FIELD_LOCATION Location field
                  HTTP_FIELD_MAX Maximum field index
                  HTTP_FIELD_RANGE Range field
                  HTTP_FIELD_REFERER Referer field
                  HTTP_FIELD_RETRY_AFTER Retry-After field
                  HTTP_FIELD_SERVER  CUPS 1.7/macOS 10.9  Server field
                  HTTP_FIELD_TRANSFER_ENCODING Transfer-Encoding field
                  HTTP_FIELD_UNKNOWN Unknown field
                  HTTP_FIELD_UPGRADE Upgrade field
                  HTTP_FIELD_USER_AGENT User-Agent field
                  HTTP_FIELD_WWW_AUTHENTICATE WWW-Authenticate field
                  -

                  http_keepalive_e

                  -

                  HTTP keep-alive values

                  -

                  Constants

                  - - - -
                  HTTP_KEEPALIVE_OFF No keep alive support
                  HTTP_KEEPALIVE_ON Use keep alive
                  -

                  http_state_e

                  -

                  HTTP state values; states +

                  CUPS_PRINTER_PUNCH Can punch output
                  CUPS_PRINTER_REJECTING Printer is rejecting jobs
                  CUPS_PRINTER_REMOTE Remote printer or class
                  CUPS_PRINTER_SMALL Can print on Letter/Legal/A4-size media
                  CUPS_PRINTER_SORT Can sort output
                  CUPS_PRINTER_STAPLE Can staple output
                  CUPS_PRINTER_VARIABLE Can print on rolls and custom-size media
                  +

                  http_encoding_e

                  +

                  HTTP transfer encoding values

                  +

                  Constants

                  + + + + +
                  HTTP_ENCODING_CHUNKED Data is chunked
                  HTTP_ENCODING_FIELDS Sending HTTP fields
                  HTTP_ENCODING_LENGTH Data is sent with Content-Length
                  +

                  http_encryption_e

                  +

                  HTTP encryption values

                  +

                  Constants

                  + + + + + +
                  HTTP_ENCRYPTION_ALWAYS Always encrypt (SSL)
                  HTTP_ENCRYPTION_IF_REQUESTED Encrypt if requested (TLS upgrade)
                  HTTP_ENCRYPTION_NEVER Never encrypt
                  HTTP_ENCRYPTION_REQUIRED Encryption is required (TLS upgrade)
                  +

                  http_field_e

                  +

                  HTTP field names

                  +

                  Constants

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  HTTP_FIELD_ACCEPT_ENCODING  CUPS 1.7/macOS 10.9 Accepting-Encoding field
                  HTTP_FIELD_ACCEPT_LANGUAGE Accept-Language field
                  HTTP_FIELD_ACCEPT_RANGES Accept-Ranges field
                  HTTP_FIELD_ALLOW  CUPS 1.7/macOS 10.9 Allow field
                  HTTP_FIELD_AUTHENTICATION_INFO  CUPS 2.2.9) Authentication-Info field (
                  HTTP_FIELD_AUTHORIZATION Authorization field
                  HTTP_FIELD_CONNECTION Connection field
                  HTTP_FIELD_CONTENT_ENCODING Content-Encoding field
                  HTTP_FIELD_CONTENT_LANGUAGE Content-Language field
                  HTTP_FIELD_CONTENT_LENGTH Content-Length field
                  HTTP_FIELD_CONTENT_LOCATION Content-Location field
                  HTTP_FIELD_CONTENT_MD5 Content-MD5 field
                  HTTP_FIELD_CONTENT_RANGE Content-Range field
                  HTTP_FIELD_CONTENT_TYPE Content-Type field
                  HTTP_FIELD_CONTENT_VERSION Content-Version field
                  HTTP_FIELD_DATE Date field
                  HTTP_FIELD_HOST Host field
                  HTTP_FIELD_IF_MODIFIED_SINCE If-Modified-Since field
                  HTTP_FIELD_IF_UNMODIFIED_SINCE If-Unmodified-Since field
                  HTTP_FIELD_KEEP_ALIVE Keep-Alive field
                  HTTP_FIELD_LAST_MODIFIED Last-Modified field
                  HTTP_FIELD_LINK Link field
                  HTTP_FIELD_LOCATION Location field
                  HTTP_FIELD_MAX Maximum field index
                  HTTP_FIELD_RANGE Range field
                  HTTP_FIELD_REFERER Referer field
                  HTTP_FIELD_RETRY_AFTER Retry-After field
                  HTTP_FIELD_SERVER  CUPS 1.7/macOS 10.9 Server field
                  HTTP_FIELD_TRANSFER_ENCODING Transfer-Encoding field
                  HTTP_FIELD_UNKNOWN Unknown field
                  HTTP_FIELD_UPGRADE Upgrade field
                  HTTP_FIELD_USER_AGENT User-Agent field
                  HTTP_FIELD_WWW_AUTHENTICATE WWW-Authenticate field
                  +

                  http_keepalive_e

                  +

                  HTTP keep-alive values

                  +

                  Constants

                  + + + +
                  HTTP_KEEPALIVE_OFF No keep alive support
                  HTTP_KEEPALIVE_ON Use keep alive
                  +

                  http_state_e

                  +

                  HTTP state values; states are server-oriented...

                  -

                  Constants

                  - - - - - - - - - - - - - - - - - - -
                  HTTP_STATE_CONNECT CONNECT command, waiting for blank line
                  HTTP_STATE_DELETE DELETE command, waiting for blank line
                  HTTP_STATE_ERROR Error on socket
                  HTTP_STATE_GET GET command, waiting for blank line
                  HTTP_STATE_GET_SEND GET command, sending data
                  HTTP_STATE_HEAD HEAD command, waiting for blank line
                  HTTP_STATE_OPTIONS OPTIONS command, waiting for blank line
                  HTTP_STATE_POST POST command, waiting for blank line
                  HTTP_STATE_POST_RECV POST command, receiving data
                  HTTP_STATE_POST_SEND POST command, sending data
                  HTTP_STATE_PUT PUT command, waiting for blank line
                  HTTP_STATE_PUT_RECV PUT command, receiving data
                  HTTP_STATE_STATUS Command complete, sending status
                  HTTP_STATE_TRACE TRACE command, waiting for blank line
                  HTTP_STATE_UNKNOWN_METHOD  CUPS 1.7/macOS 10.9  Unknown request method, waiting for blank line
                  HTTP_STATE_UNKNOWN_VERSION  CUPS 1.7/macOS 10.9  Unknown request method, waiting for blank line
                  HTTP_STATE_WAITING Waiting for command
                  -

                  http_status_e

                  -

                  HTTP status codes

                  -

                  Constants

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  HTTP_STATUS_ACCEPTED DELETE command was successful
                  HTTP_STATUS_BAD_GATEWAY Bad gateway
                  HTTP_STATUS_BAD_REQUEST Bad request
                  HTTP_STATUS_CONFLICT Request is self-conflicting
                  HTTP_STATUS_CONTINUE Everything OK, keep going...
                  HTTP_STATUS_CREATED PUT command was successful
                  HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED  CUPS 1.4  User canceled authorization
                  HTTP_STATUS_CUPS_PKI_ERROR  CUPS 1.5/macOS 10.7  Error negotiating a secure connection
                  HTTP_STATUS_ERROR An error response from httpXxxx()
                  HTTP_STATUS_EXPECTATION_FAILED The expectation given in an Expect header field was not met
                  HTTP_STATUS_FORBIDDEN Forbidden to access this URI
                  HTTP_STATUS_FOUND Document was found at a different URI
                  HTTP_STATUS_GATEWAY_TIMEOUT Gateway connection timed out
                  HTTP_STATUS_GONE Server has gone away
                  HTTP_STATUS_LENGTH_REQUIRED A content length or encoding is required
                  HTTP_STATUS_METHOD_NOT_ALLOWED Method is not allowed
                  HTTP_STATUS_MOVED_PERMANENTLY Document has moved permanently
                  HTTP_STATUS_MULTIPLE_CHOICES Multiple files match request
                  HTTP_STATUS_NONE  CUPS 1.7/macOS 10.9  No Expect value
                  HTTP_STATUS_NOT_ACCEPTABLE Not Acceptable
                  HTTP_STATUS_NOT_AUTHORITATIVE Information isn't authoritative
                  HTTP_STATUS_NOT_FOUND URI was not found
                  HTTP_STATUS_NOT_IMPLEMENTED Feature not implemented
                  HTTP_STATUS_NOT_MODIFIED File not modified
                  HTTP_STATUS_NOT_SUPPORTED HTTP version not supported
                  HTTP_STATUS_NO_CONTENT Successful command, no new data
                  HTTP_STATUS_OK OPTIONS/GET/HEAD/POST/TRACE command was successful
                  HTTP_STATUS_PARTIAL_CONTENT Only a partial file was received/sent
                  HTTP_STATUS_PAYMENT_REQUIRED Payment required
                  HTTP_STATUS_PRECONDITION Precondition failed
                  HTTP_STATUS_PROXY_AUTHENTICATION Proxy Authentication is Required
                  HTTP_STATUS_REQUESTED_RANGE The requested range is not satisfiable
                  HTTP_STATUS_REQUEST_TIMEOUT Request timed out
                  HTTP_STATUS_REQUEST_TOO_LARGE Request entity too large
                  HTTP_STATUS_RESET_CONTENT Content was reset/recreated
                  HTTP_STATUS_SEE_OTHER See this other link
                  HTTP_STATUS_SERVER_ERROR Internal server error
                  HTTP_STATUS_SERVICE_UNAVAILABLE Service is unavailable
                  HTTP_STATUS_SWITCHING_PROTOCOLS HTTP upgrade to TLS/SSL
                  HTTP_STATUS_TEMPORARY_REDIRECT Temporary redirection
                  HTTP_STATUS_UNAUTHORIZED Unauthorized to access host
                  HTTP_STATUS_UNSUPPORTED_MEDIATYPE The requested media type is unsupported
                  HTTP_STATUS_UPGRADE_REQUIRED Upgrade to SSL/TLS required
                  HTTP_STATUS_URI_TOO_LONG URI too long
                  HTTP_STATUS_USE_PROXY Must use a proxy to access this URI
                  -

                   CUPS 2.0/OS 10.10 http_trust_e

                  -

                  Level of trust for credentials

                  -

                  Constants

                  - - - - - - - -
                  HTTP_TRUST_CHANGED Credentials have changed
                  HTTP_TRUST_EXPIRED Credentials are expired
                  HTTP_TRUST_INVALID Credentials are invalid
                  HTTP_TRUST_OK Credentials are OK/trusted
                  HTTP_TRUST_RENEWED Credentials have been renewed
                  HTTP_TRUST_UNKNOWN Credentials are unknown/new
                  -

                  http_uri_coding_e

                  -

                  URI en/decode flags

                  -

                  Constants

                  - - - - - - - - - -
                  HTTP_URI_CODING_ALL En/decode everything
                  HTTP_URI_CODING_HOSTNAME En/decode the hostname portion
                  HTTP_URI_CODING_MOST En/decode all but the query
                  HTTP_URI_CODING_NONE Don't en/decode anything
                  HTTP_URI_CODING_QUERY En/decode the query portion
                  HTTP_URI_CODING_RESOURCE En/decode the resource portion
                  HTTP_URI_CODING_RFC6874 Use RFC 6874 address format
                  HTTP_URI_CODING_USERNAME En/decode the username portion
                  -

                   CUPS 1.2 http_uri_status_e

                  -

                  URI separation status

                  -

                  Constants

                  - - - - - - - - - - - - - -
                  HTTP_URI_STATUS_BAD_ARGUMENTS Bad arguments to function (error)
                  HTTP_URI_STATUS_BAD_HOSTNAME Bad hostname in URI (error)
                  HTTP_URI_STATUS_BAD_PORT Bad port number in URI (error)
                  HTTP_URI_STATUS_BAD_RESOURCE Bad resource in URI (error)
                  HTTP_URI_STATUS_BAD_SCHEME Bad scheme in URI (error)
                  HTTP_URI_STATUS_BAD_URI Bad/empty URI (error)
                  HTTP_URI_STATUS_BAD_USERNAME Bad username in URI (error)
                  HTTP_URI_STATUS_MISSING_RESOURCE Missing resource in URI (warning)
                  HTTP_URI_STATUS_MISSING_SCHEME Missing scheme in URI (warning)
                  HTTP_URI_STATUS_OK URI decoded OK
                  HTTP_URI_STATUS_OVERFLOW URI buffer for httpAssembleURI is too small
                  HTTP_URI_STATUS_UNKNOWN_SCHEME Unknown scheme in URI (warning)
                  -

                  ipp_finishings_e

                  -

                  Finishings values

                  -

                  Constants

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  IPP_FINISHINGS_BALE Bale (any type)
                  IPP_FINISHINGS_BIND Bind
                  IPP_FINISHINGS_BIND_BOTTOM Bind on bottom
                  IPP_FINISHINGS_BIND_LEFT Bind on left
                  IPP_FINISHINGS_BIND_RIGHT Bind on right
                  IPP_FINISHINGS_BIND_TOP Bind on top
                  IPP_FINISHINGS_BOOKLET_MAKER Fold to make booklet
                  IPP_FINISHINGS_COAT Apply protective liquid or powder coating
                  IPP_FINISHINGS_COVER Add cover
                  IPP_FINISHINGS_EDGE_STITCH Stitch along any side
                  IPP_FINISHINGS_EDGE_STITCH_BOTTOM Stitch along bottom edge
                  IPP_FINISHINGS_EDGE_STITCH_LEFT Stitch along left side
                  IPP_FINISHINGS_EDGE_STITCH_RIGHT Stitch along right side
                  IPP_FINISHINGS_EDGE_STITCH_TOP Stitch along top edge
                  IPP_FINISHINGS_FOLD Fold (any type)
                  IPP_FINISHINGS_FOLD_ACCORDION Accordion-fold the paper vertically into four sections
                  IPP_FINISHINGS_FOLD_DOUBLE_GATE Fold the top and bottom quarters of the paper towards the midline, then fold in half vertically
                  IPP_FINISHINGS_FOLD_ENGINEERING_Z Fold the paper vertically into two small sections and one larger, forming an elongated Z
                  IPP_FINISHINGS_FOLD_GATE Fold the top and bottom quarters of the paper towards the midline
                  IPP_FINISHINGS_FOLD_HALF Fold the paper in half vertically
                  IPP_FINISHINGS_FOLD_HALF_Z Fold the paper in half horizontally, then Z-fold the paper vertically
                  IPP_FINISHINGS_FOLD_LEFT_GATE Fold the top quarter of the paper towards the midline
                  IPP_FINISHINGS_FOLD_LETTER Fold the paper into three sections vertically; sometimes also known as a C fold
                  IPP_FINISHINGS_FOLD_PARALLEL Fold the paper in half vertically two times, yielding four sections
                  IPP_FINISHINGS_FOLD_POSTER Fold the paper in half horizontally and vertically; sometimes also called a cross fold
                  IPP_FINISHINGS_FOLD_RIGHT_GATE Fold the bottom quarter of the paper towards the midline
                  IPP_FINISHINGS_FOLD_Z Fold the paper vertically into three sections, forming a Z
                  IPP_FINISHINGS_JOG_OFFSET Offset for binding (any type)
                  IPP_FINISHINGS_LAMINATE Apply protective (solid) material
                  IPP_FINISHINGS_NONE No finishing
                  IPP_FINISHINGS_PUNCH Punch (any location/count)
                  IPP_FINISHINGS_PUNCH_BOTTOM_LEFT Punch 1 hole bottom left
                  IPP_FINISHINGS_PUNCH_BOTTOM_RIGHT Punch 1 hole bottom right
                  IPP_FINISHINGS_PUNCH_DUAL_BOTTOM Punch 2 holes bottom edge
                  IPP_FINISHINGS_PUNCH_DUAL_LEFT Punch 2 holes left side
                  IPP_FINISHINGS_PUNCH_DUAL_RIGHT Punch 2 holes right side
                  IPP_FINISHINGS_PUNCH_DUAL_TOP Punch 2 holes top edge
                  IPP_FINISHINGS_PUNCH_MULTIPLE_BOTTOM Punch multiple holes bottom edge
                  IPP_FINISHINGS_PUNCH_MULTIPLE_LEFT Punch multiple holes left side
                  IPP_FINISHINGS_PUNCH_MULTIPLE_RIGHT Punch multiple holes right side
                  IPP_FINISHINGS_PUNCH_MULTIPLE_TOP Punch multiple holes top edge
                  IPP_FINISHINGS_PUNCH_QUAD_BOTTOM Punch 4 holes bottom edge
                  IPP_FINISHINGS_PUNCH_QUAD_LEFT Punch 4 holes left side
                  IPP_FINISHINGS_PUNCH_QUAD_RIGHT Punch 4 holes right side
                  IPP_FINISHINGS_PUNCH_QUAD_TOP Punch 4 holes top edge
                  IPP_FINISHINGS_PUNCH_TOP_LEFT Punch 1 hole top left
                  IPP_FINISHINGS_PUNCH_TOP_RIGHT Punch 1 hole top right
                  IPP_FINISHINGS_PUNCH_TRIPLE_BOTTOM Punch 3 holes bottom edge
                  IPP_FINISHINGS_PUNCH_TRIPLE_LEFT Punch 3 holes left side
                  IPP_FINISHINGS_PUNCH_TRIPLE_RIGHT Punch 3 holes right side
                  IPP_FINISHINGS_PUNCH_TRIPLE_TOP Punch 3 holes top edge
                  IPP_FINISHINGS_SADDLE_STITCH Staple interior
                  IPP_FINISHINGS_STAPLE Staple (any location/method)
                  IPP_FINISHINGS_STAPLE_BOTTOM_LEFT Staple bottom left corner
                  IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT Staple bottom right corner
                  IPP_FINISHINGS_STAPLE_DUAL_BOTTOM Two staples on bottom
                  IPP_FINISHINGS_STAPLE_DUAL_LEFT Two staples on left
                  IPP_FINISHINGS_STAPLE_DUAL_RIGHT Two staples on right
                  IPP_FINISHINGS_STAPLE_DUAL_TOP Two staples on top
                  IPP_FINISHINGS_STAPLE_TOP_LEFT Staple top left corner
                  IPP_FINISHINGS_STAPLE_TOP_RIGHT Staple top right corner
                  IPP_FINISHINGS_STAPLE_TRIPLE_BOTTOM Three staples on bottom
                  IPP_FINISHINGS_STAPLE_TRIPLE_LEFT Three staples on left
                  IPP_FINISHINGS_STAPLE_TRIPLE_RIGHT Three staples on right
                  IPP_FINISHINGS_STAPLE_TRIPLE_TOP Three staples on top
                  IPP_FINISHINGS_TRIM Trim (any type)
                  IPP_FINISHINGS_TRIM_AFTER_COPIES Trim output after each copy
                  IPP_FINISHINGS_TRIM_AFTER_DOCUMENTS Trim output after each document
                  IPP_FINISHINGS_TRIM_AFTER_JOB Trim output after job
                  IPP_FINISHINGS_TRIM_AFTER_PAGES Trim output after each page
                  -

                  ipp_jstate_e

                  -

                  Job states

                  -

                  Constants

                  - - - - - - - - -
                  IPP_JSTATE_ABORTED Job has aborted due to error
                  IPP_JSTATE_CANCELED Job has been canceled
                  IPP_JSTATE_COMPLETED Job has completed successfully
                  IPP_JSTATE_HELD Job is held for printing
                  IPP_JSTATE_PENDING Job is waiting to be printed
                  IPP_JSTATE_PROCESSING Job is currently printing
                  IPP_JSTATE_STOPPED Job has been stopped
                  -

                  ipp_op_e

                  -

                  IPP operations

                  -

                  Constants

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  IPP_OP_ALLOCATE_PRINTER_RESOURCES Allocate-Printer-Resources: Use resources for a printer.
                  IPP_OP_CANCEL_CURRENT_JOB Cancel-Current-Job: Cancel the current job
                  IPP_OP_CANCEL_JOB Cancel-Job: Cancel a job
                  IPP_OP_CANCEL_JOBS Cancel-Jobs: Cancel all jobs (administrative)
                  IPP_OP_CANCEL_MY_JOBS Cancel-My-Jobs: Cancel a user's jobs
                  IPP_OP_CANCEL_RESOURCE Cancel-Resource: Uninstall a resource.
                  IPP_OP_CANCEL_SUBSCRIPTION  CUPS 1.2/macOS 10.5  Cancel-Subscription: Cancel a subscription
                  IPP_OP_CLOSE_JOB Close-Job: Close a job and start printing
                  IPP_OP_CREATE_JOB Create-Job: Create an empty print job
                  IPP_OP_CREATE_JOB_SUBSCRIPTIONS  CUPS 1.2/macOS 10.5  Create-Job-Subscriptions: Create one of more job subscriptions
                  IPP_OP_CREATE_PRINTER Create-Printer: Create a new service.
                  IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS  CUPS 1.2/macOS 10.5  Create-Printer-Subscriptions: Create one or more printer subscriptions
                  IPP_OP_CREATE_RESOURCE Create-Resource: Create a new (empty) resource.
                  IPP_OP_CREATE_RESOURCE_SUBSCRIPTIONS Create-Resource-Subscriptions: Create event subscriptions for a resource.
                  IPP_OP_CREATE_SYSTEM_SUBSCRIPTIONS Create-System-Subscriptions: Create event subscriptions for a system.
                  IPP_OP_CUPS_ADD_MODIFY_CLASS CUPS-Add-Modify-Class: Add or modify a class
                  IPP_OP_CUPS_ADD_MODIFY_PRINTER CUPS-Add-Modify-Printer: Add or modify a printer
                  IPP_OP_CUPS_AUTHENTICATE_JOB  CUPS 1.2/macOS 10.5  CUPS-Authenticate-Job: Authenticate a job
                  IPP_OP_CUPS_CREATE_LOCAL_PRINTER  CUPS 2.2  CUPS-Create-Local-Printer: Create a local (temporary) printer
                  IPP_OP_CUPS_DELETE_CLASS CUPS-Delete-Class: Delete a class
                  IPP_OP_CUPS_DELETE_PRINTER CUPS-Delete-Printer: Delete a printer
                  IPP_OP_CUPS_GET_DEFAULT CUPS-Get-Default: Get the default printer
                  IPP_OP_CUPS_GET_DEVICES  DEPRECATED  CUPS-Get-Devices: Get a list of supported devices
                  IPP_OP_CUPS_GET_DOCUMENT  CUPS 1.4/macOS 10.6  CUPS-Get-Document: Get a document file
                  IPP_OP_CUPS_GET_PPD  DEPRECATED  CUPS-Get-PPD: Get a PPD file
                  IPP_OP_CUPS_GET_PPDS  DEPRECATED  CUPS-Get-PPDs: Get a list of supported drivers
                  IPP_OP_CUPS_GET_PRINTERS CUPS-Get-Printers: Get a list of printers and/or classes
                  IPP_OP_CUPS_INVALID Invalid operation name for ippOpValue
                  IPP_OP_CUPS_MOVE_JOB CUPS-Move-Job: Move a job to a different printer
                  IPP_OP_CUPS_SET_DEFAULT CUPS-Set-Default: Set the default printer
                  IPP_OP_DEALLOCATE_PRINTER_RESOURCES Deallocate-Printer-Resources: Stop using resources for a printer.
                  IPP_OP_DELETE_PRINTER Delete-Printer: Delete an existing service.
                  IPP_OP_DISABLE_ALL_PRINTERS Disable-All-Printers: Stop accepting new jobs on all services.
                  IPP_OP_DISABLE_PRINTER Disable-Printer: Reject new jobs for a printer
                  IPP_OP_ENABLE_ALL_PRINTERS Enable-All-Printers: Start accepting new jobs on all services.
                  IPP_OP_ENABLE_PRINTER Enable-Printer: Accept new jobs for a printer
                  IPP_OP_GET_JOBS Get-Jobs: Get a list of jobs
                  IPP_OP_GET_JOB_ATTRIBUTES Get-Job-Attribute: Get information about a job
                  IPP_OP_GET_NOTIFICATIONS  CUPS 1.2/macOS 10.5  Get-Notifications: Get notification events
                  IPP_OP_GET_PRINTERS Get-Printers: Get a list of services.
                  IPP_OP_GET_PRINTER_ATTRIBUTES Get-Printer-Attributes: Get information about a printer
                  IPP_OP_GET_PRINTER_SUPPORTED_VALUES Get-Printer-Supported-Values: Get supported values
                  IPP_OP_GET_SUBSCRIPTIONS  CUPS 1.2/macOS 10.5  Get-Subscriptions: Get list of subscriptions
                  IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES  CUPS 1.2/macOS 10.5  Get-Subscription-Attributes: Get subscription information
                  IPP_OP_GET_SYSTEM_ATTRIBUTES Get-System-Attributes: Get system object attributes.
                  IPP_OP_GET_SYSTEM_SUPPORTED_VALUES Get-System-Supported-Values: Get supported values for system object attributes.
                  IPP_OP_HOLD_JOB Hold-Job: Hold a job for printing
                  IPP_OP_HOLD_NEW_JOBS Hold-New-Jobs: Hold new jobs
                  IPP_OP_IDENTIFY_PRINTER Identify-Printer: Make the printer beep, flash, or display a message for identification
                  IPP_OP_INSTALL_RESOURCE Install-Resource: Install a resource.
                  IPP_OP_PAUSE_ALL_PRINTERS Pause-All-Printers: Stop all services immediately.
                  IPP_OP_PAUSE_ALL_PRINTERS_AFTER_CURRENT_JOB Pause-All-Printers-After-Current-Job: Stop all services after processing the current jobs.
                  IPP_OP_PAUSE_PRINTER Pause-Printer: Stop a printer
                  IPP_OP_PAUSE_PRINTER_AFTER_CURRENT_JOB Pause-Printer-After-Current-Job: Stop printer after the current job
                  IPP_OP_PRINT_JOB Print-Job: Print a single file
                  IPP_OP_PROMOTE_JOB Promote-Job: Promote a job to print sooner
                  IPP_OP_REGISTER_OUTPUT_DEVICE Register-Output-Device: Register a remote service.
                  IPP_OP_RELEASE_HELD_NEW_JOBS Release-Held-New-Jobs: Release new jobs that were previously held
                  IPP_OP_RELEASE_JOB Release-Job: Release a job for printing
                  IPP_OP_RENEW_SUBSCRIPTION  CUPS 1.2/macOS 10.5  Renew-Subscription: Renew a printer subscription
                  IPP_OP_RESTART_JOB  DEPRECATED  Restart-Job: Reprint a job
                  IPP_OP_RESTART_SYSTEM Restart-System: Restart all services.
                  IPP_OP_RESUME_ALL_PRINTERS Resume-All-Printers: Start job processing on all services.
                  IPP_OP_RESUME_JOB Resume-Job: Resume the current job
                  IPP_OP_RESUME_PRINTER Resume-Printer: Start a printer
                  IPP_OP_SCHEDULE_JOB_AFTER Schedule-Job-After: Schedule a job to print after another
                  IPP_OP_SEND_DOCUMENT Send-Document: Add a file to a job
                  IPP_OP_SEND_RESOURCE_DATA Send-Resource-Data: Upload the data for a resource.
                  IPP_OP_SET_JOB_ATTRIBUTES Set-Job-Attributes: Set job values
                  IPP_OP_SET_PRINTER_ATTRIBUTES Set-Printer-Attributes: Set printer values
                  IPP_OP_SET_RESOURCE_ATTRIBUTES Set-Resource-Attributes: Set resource object attributes.
                  IPP_OP_SET_SYSTEM_ATTRIBUTES Set-System-Attributes: Set system object attributes.
                  IPP_OP_SHUTDOWN_ALL_PRINTERS Shutdown-All-Printers: Shutdown all services.
                  IPP_OP_SHUTDOWN_ONE_PRINTER Shutdown-One-Printer: Shutdown a service.
                  IPP_OP_STARTUP_ALL_PRINTERS Startup-All-Printers: Startup all services.
                  IPP_OP_STARTUP_ONE_PRINTER Startup-One-Printer: Start a service.
                  IPP_OP_SUSPEND_CURRENT_JOB Suspend-Current-Job: Suspend the current job
                  IPP_OP_VALIDATE_JOB Validate-Job: Validate job values prior to submission
                  -

                  ipp_orient_e

                  -

                  Orientation values

                  -

                  Constants

                  - - - - - - -
                  IPP_ORIENT_LANDSCAPE 90 degrees counter-clockwise
                  IPP_ORIENT_NONE No rotation
                  IPP_ORIENT_PORTRAIT No rotation
                  IPP_ORIENT_REVERSE_LANDSCAPE 90 degrees clockwise
                  IPP_ORIENT_REVERSE_PORTRAIT 180 degrees
                  -

                  ipp_pstate_e

                  -

                  Printer state values

                  -

                  Constants

                  - - - - -
                  IPP_PSTATE_IDLE Printer is idle
                  IPP_PSTATE_PROCESSING Printer is working
                  IPP_PSTATE_STOPPED Printer is stopped
                  -

                  ipp_quality_e

                  -

                  Print quality values

                  -

                  Constants

                  - - - - -
                  IPP_QUALITY_DRAFT Draft quality
                  IPP_QUALITY_HIGH High quality
                  IPP_QUALITY_NORMAL Normal quality
                  -

                  ipp_res_e

                  -

                  Resolution units

                  -

                  Constants

                  - - - -
                  IPP_RES_PER_CM Pixels per centimeter
                  IPP_RES_PER_INCH Pixels per inch
                  -

                  ipp_rstate_e

                  -

                  resource-state values

                  -

                  Constants

                  - - - - - - -
                  IPP_RSTATE_ABORTED Resource has been aborted and is pending deletion.
                  IPP_RSTATE_AVAILABLE Resource is available for installation.
                  IPP_RSTATE_CANCELED Resource has been canceled and is pending deletion.
                  IPP_RSTATE_INSTALLED Resource is installed.
                  IPP_RSTATE_PENDING Resource is created but has no data yet.
                  -

                  ipp_sstate_e

                  -

                  system-state values

                  -

                  Constants

                  - - - - -
                  IPP_SSTATE_IDLE At least one printer is idle and none are processing a job.
                  IPP_SSTATE_PROCESSING At least one printer is processing a job.
                  IPP_SSTATE_STOPPED All printers are stopped.
                  -

                  ipp_state_e

                  -

                  ipp_t state values

                  -

                  Constants

                  - - - - - - -
                  IPP_STATE_ATTRIBUTE One or more attributes need to be sent/received
                  IPP_STATE_DATA IPP request data needs to be sent/received
                  IPP_STATE_ERROR An error occurred
                  IPP_STATE_HEADER The request header needs to be sent/received
                  IPP_STATE_IDLE Nothing is happening/request completed
                  -

                  ipp_status_e

                  -

                  IPP status code values

                  -

                  Constants

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  IPP_STATUS_CUPS_INVALID Invalid status name for ippErrorValue
                  IPP_STATUS_ERROR_ACCOUNT_AUTHORIZATION_FAILED client-error-account-authorization-failed
                  IPP_STATUS_ERROR_ACCOUNT_CLOSED client-error-account-closed
                  IPP_STATUS_ERROR_ACCOUNT_INFO_NEEDED client-error-account-info-needed
                  IPP_STATUS_ERROR_ACCOUNT_LIMIT_REACHED client-error-account-limit-reached
                  IPP_STATUS_ERROR_ATTRIBUTES_NOT_SETTABLE client-error-attributes-not-settable
                  IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES client-error-attributes-or-values-not-supported
                  IPP_STATUS_ERROR_BAD_REQUEST client-error-bad-request
                  IPP_STATUS_ERROR_BUSY server-error-busy
                  IPP_STATUS_ERROR_CHARSET client-error-charset-not-supported
                  IPP_STATUS_ERROR_COMPRESSION_ERROR client-error-compression-error
                  IPP_STATUS_ERROR_COMPRESSION_NOT_SUPPORTED client-error-compression-not-supported
                  IPP_STATUS_ERROR_CONFLICTING client-error-conflicting-attributes
                  IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED  DEPRECATED  cups-error-account-authorization-failed
                  IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED cups-error-account-closed @deprecate@
                  IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED  DEPRECATED  cups-error-account-info-needed
                  IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED  DEPRECATED  cups-error-account-limit-reached
                  IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED  CUPS 1.5/macOS 10.7  cups-authentication-canceled - Authentication canceled by user
                  IPP_STATUS_ERROR_CUPS_PKI  CUPS 1.5/macOS 10.7  cups-pki-error - Error negotiating a secure connection
                  IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED  CUPS 1.5/macOS 10.7  cups-upgrade-required - TLS upgrade required
                  IPP_STATUS_ERROR_DEVICE server-error-device-error
                  IPP_STATUS_ERROR_DOCUMENT_ACCESS client-error-document-access-error
                  IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR client-error-document-format-error
                  IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED client-error-document-format-not-supported
                  IPP_STATUS_ERROR_DOCUMENT_PASSWORD client-error-document-password-error
                  IPP_STATUS_ERROR_DOCUMENT_PERMISSION client-error-document-permission-error
                  IPP_STATUS_ERROR_DOCUMENT_SECURITY client-error-document-security-error
                  IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE client-error-document-unprintable-error
                  IPP_STATUS_ERROR_FORBIDDEN client-error-forbidden
                  IPP_STATUS_ERROR_GONE client-error-gone
                  IPP_STATUS_ERROR_IGNORED_ALL_SUBSCRIPTIONS client-error-ignored-all-subscriptions
                  IPP_STATUS_ERROR_INTERNAL server-error-internal-error
                  IPP_STATUS_ERROR_JOB_CANCELED server-error-job-canceled
                  IPP_STATUS_ERROR_MULTIPLE_JOBS_NOT_SUPPORTED server-error-multiple-document-jobs-not-supported
                  IPP_STATUS_ERROR_NOT_ACCEPTING_JOBS server-error-not-accepting-jobs
                  IPP_STATUS_ERROR_NOT_AUTHENTICATED client-error-not-authenticated
                  IPP_STATUS_ERROR_NOT_AUTHORIZED client-error-not-authorized
                  IPP_STATUS_ERROR_NOT_FETCHABLE client-error-not-fetchable
                  IPP_STATUS_ERROR_NOT_FOUND client-error-not-found
                  IPP_STATUS_ERROR_NOT_POSSIBLE client-error-not-possible
                  IPP_STATUS_ERROR_OPERATION_NOT_SUPPORTED server-error-operation-not-supported
                  IPP_STATUS_ERROR_PRINTER_IS_DEACTIVATED server-error-printer-is-deactivated
                  IPP_STATUS_ERROR_REQUEST_ENTITY client-error-request-entity-too-large
                  IPP_STATUS_ERROR_REQUEST_VALUE client-error-request-value-too-long
                  IPP_STATUS_ERROR_SERVICE_UNAVAILABLE server-error-service-unavailable
                  IPP_STATUS_ERROR_TEMPORARY server-error-temporary-error
                  IPP_STATUS_ERROR_TIMEOUT client-error-timeout
                  IPP_STATUS_ERROR_TOO_MANY_DOCUMENTS server-error-too-many-documents
                  IPP_STATUS_ERROR_TOO_MANY_JOBS server-error-too-many-jobs
                  IPP_STATUS_ERROR_TOO_MANY_SUBSCRIPTIONS client-error-too-many-subscriptions
                  IPP_STATUS_ERROR_URI_SCHEME client-error-uri-scheme-not-supported
                  IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED server-error-version-not-supported
                  IPP_STATUS_OK successful-ok
                  IPP_STATUS_OK_CONFLICTING successful-ok-conflicting-attributes
                  IPP_STATUS_OK_EVENTS_COMPLETE successful-ok-events-complete
                  IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED successful-ok-ignored-or-substituted-attributes
                  IPP_STATUS_OK_IGNORED_SUBSCRIPTIONS successful-ok-ignored-subscriptions
                  IPP_STATUS_OK_TOO_MANY_EVENTS successful-ok-too-many-events
                  -

                  ipp_tag_e

                  -

                  Value and group tag values for attributes

                  -

                  Constants

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  IPP_TAG_ADMINDEFINE Admin-defined value
                  IPP_TAG_BOOLEAN Boolean value
                  IPP_TAG_CHARSET Character set value
                  IPP_TAG_CUPS_INVALID Invalid tag name for ippTagValue
                  IPP_TAG_DATE Date/time value
                  IPP_TAG_DEFAULT Default value
                  IPP_TAG_DELETEATTR Delete-attribute value
                  IPP_TAG_DOCUMENT Document group
                  IPP_TAG_END End-of-attributes
                  IPP_TAG_ENUM Enumeration value
                  IPP_TAG_EVENT_NOTIFICATION Event group
                  IPP_TAG_INTEGER Integer value
                  IPP_TAG_JOB Job group
                  IPP_TAG_KEYWORD Keyword value
                  IPP_TAG_LANGUAGE Language value
                  IPP_TAG_MIMETYPE MIME media type value
                  IPP_TAG_NAME Name value
                  IPP_TAG_NAMELANG Name-with-language value
                  IPP_TAG_NOTSETTABLE Not-settable value
                  IPP_TAG_NOVALUE No-value value
                  IPP_TAG_OPERATION Operation group
                  IPP_TAG_PRINTER Printer group
                  IPP_TAG_RANGE Range value
                  IPP_TAG_RESOLUTION Resolution value
                  IPP_TAG_RESOURCE Resource group
                  IPP_TAG_STRING Octet string value
                  IPP_TAG_SUBSCRIPTION Subscription group
                  IPP_TAG_SYSTEM System group
                  IPP_TAG_TEXT Text value
                  IPP_TAG_TEXTLANG Text-with-language value
                  IPP_TAG_UNKNOWN Unknown value
                  IPP_TAG_UNSUPPORTED_GROUP Unsupported attributes group
                  IPP_TAG_UNSUPPORTED_VALUE Unsupported value
                  IPP_TAG_URI URI value
                  IPP_TAG_URISCHEME URI scheme value
                  IPP_TAG_ZERO Zero tag - used for separators
                  -
- +

Constants

+ + + + + + + + + + + + + + + + + + +
HTTP_STATE_CONNECT CONNECT command, waiting for blank line
HTTP_STATE_DELETE DELETE command, waiting for blank line
HTTP_STATE_ERROR Error on socket
HTTP_STATE_GET GET command, waiting for blank line
HTTP_STATE_GET_SEND GET command, sending data
HTTP_STATE_HEAD HEAD command, waiting for blank line
HTTP_STATE_OPTIONS OPTIONS command, waiting for blank line
HTTP_STATE_POST POST command, waiting for blank line
HTTP_STATE_POST_RECV POST command, receiving data
HTTP_STATE_POST_SEND POST command, sending data
HTTP_STATE_PUT PUT command, waiting for blank line
HTTP_STATE_PUT_RECV PUT command, receiving data
HTTP_STATE_STATUS Command complete, sending status
HTTP_STATE_TRACE TRACE command, waiting for blank line
HTTP_STATE_UNKNOWN_METHOD  CUPS 1.7/macOS 10.9 Unknown request method, waiting for blank line
HTTP_STATE_UNKNOWN_VERSION  CUPS 1.7/macOS 10.9 Unknown request method, waiting for blank line
HTTP_STATE_WAITING Waiting for command
+

http_status_e

+

HTTP status codes

+

Constants

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTTP_STATUS_ACCEPTED DELETE command was successful
HTTP_STATUS_BAD_GATEWAY Bad gateway
HTTP_STATUS_BAD_REQUEST Bad request
HTTP_STATUS_CONFLICT Request is self-conflicting
HTTP_STATUS_CONTINUE Everything OK, keep going...
HTTP_STATUS_CREATED PUT command was successful
HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED  CUPS 1.4 User canceled authorization
HTTP_STATUS_CUPS_PKI_ERROR  CUPS 1.5/macOS 10.7 Error negotiating a secure connection
HTTP_STATUS_ERROR An error response from httpXxxx()
HTTP_STATUS_EXPECTATION_FAILED The expectation given in an Expect header field was not met
HTTP_STATUS_FORBIDDEN Forbidden to access this URI
HTTP_STATUS_FOUND Document was found at a different URI
HTTP_STATUS_GATEWAY_TIMEOUT Gateway connection timed out
HTTP_STATUS_GONE Server has gone away
HTTP_STATUS_LENGTH_REQUIRED A content length or encoding is required
HTTP_STATUS_METHOD_NOT_ALLOWED Method is not allowed
HTTP_STATUS_MOVED_PERMANENTLY Document has moved permanently
HTTP_STATUS_MULTIPLE_CHOICES Multiple files match request
HTTP_STATUS_NONE  CUPS 1.7/macOS 10.9 No Expect value
HTTP_STATUS_NOT_ACCEPTABLE Not Acceptable
HTTP_STATUS_NOT_AUTHORITATIVE Information isn't authoritative
HTTP_STATUS_NOT_FOUND URI was not found
HTTP_STATUS_NOT_IMPLEMENTED Feature not implemented
HTTP_STATUS_NOT_MODIFIED File not modified
HTTP_STATUS_NOT_SUPPORTED HTTP version not supported
HTTP_STATUS_NO_CONTENT Successful command, no new data
HTTP_STATUS_OK OPTIONS/GET/HEAD/POST/TRACE command was successful
HTTP_STATUS_PARTIAL_CONTENT Only a partial file was received/sent
HTTP_STATUS_PAYMENT_REQUIRED Payment required
HTTP_STATUS_PRECONDITION Precondition failed
HTTP_STATUS_PROXY_AUTHENTICATION Proxy Authentication is Required
HTTP_STATUS_REQUESTED_RANGE The requested range is not satisfiable
HTTP_STATUS_REQUEST_TIMEOUT Request timed out
HTTP_STATUS_REQUEST_TOO_LARGE Request entity too large
HTTP_STATUS_RESET_CONTENT Content was reset/recreated
HTTP_STATUS_SEE_OTHER See this other link
HTTP_STATUS_SERVER_ERROR Internal server error
HTTP_STATUS_SERVICE_UNAVAILABLE Service is unavailable
HTTP_STATUS_SWITCHING_PROTOCOLS HTTP upgrade to TLS/SSL
HTTP_STATUS_TEMPORARY_REDIRECT Temporary redirection
HTTP_STATUS_UNAUTHORIZED Unauthorized to access host
HTTP_STATUS_UNSUPPORTED_MEDIATYPE The requested media type is unsupported
HTTP_STATUS_UPGRADE_REQUIRED Upgrade to SSL/TLS required
HTTP_STATUS_URI_TOO_LONG URI too long
HTTP_STATUS_USE_PROXY Must use a proxy to access this URI
+

 CUPS 2.0/OS 10.10 http_trust_e

+

Level of trust for credentials

+

Constants

+ + + + + + + +
HTTP_TRUST_CHANGED Credentials have changed
HTTP_TRUST_EXPIRED Credentials are expired
HTTP_TRUST_INVALID Credentials are invalid
HTTP_TRUST_OK Credentials are OK/trusted
HTTP_TRUST_RENEWED Credentials have been renewed
HTTP_TRUST_UNKNOWN Credentials are unknown/new
+

http_uri_coding_e

+

URI en/decode flags

+

Constants

+ + + + + + + + + +
HTTP_URI_CODING_ALL En/decode everything
HTTP_URI_CODING_HOSTNAME En/decode the hostname portion
HTTP_URI_CODING_MOST En/decode all but the query
HTTP_URI_CODING_NONE Don't en/decode anything
HTTP_URI_CODING_QUERY En/decode the query portion
HTTP_URI_CODING_RESOURCE En/decode the resource portion
HTTP_URI_CODING_RFC6874 Use RFC 6874 address format
HTTP_URI_CODING_USERNAME En/decode the username portion
+

 CUPS 1.2 http_uri_status_e

+

URI separation status

+

Constants

+ + + + + + + + + + + + + +
HTTP_URI_STATUS_BAD_ARGUMENTS Bad arguments to function (error)
HTTP_URI_STATUS_BAD_HOSTNAME Bad hostname in URI (error)
HTTP_URI_STATUS_BAD_PORT Bad port number in URI (error)
HTTP_URI_STATUS_BAD_RESOURCE Bad resource in URI (error)
HTTP_URI_STATUS_BAD_SCHEME Bad scheme in URI (error)
HTTP_URI_STATUS_BAD_URI Bad/empty URI (error)
HTTP_URI_STATUS_BAD_USERNAME Bad username in URI (error)
HTTP_URI_STATUS_MISSING_RESOURCE Missing resource in URI (warning)
HTTP_URI_STATUS_MISSING_SCHEME Missing scheme in URI (warning)
HTTP_URI_STATUS_OK URI decoded OK
HTTP_URI_STATUS_OVERFLOW URI buffer for httpAssembleURI is too small
HTTP_URI_STATUS_UNKNOWN_SCHEME Unknown scheme in URI (warning)
+

ipp_finishings_e

+

Finishings values

+

Constants

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IPP_FINISHINGS_BALE Bale (any type)
IPP_FINISHINGS_BIND Bind
IPP_FINISHINGS_BIND_BOTTOM Bind on bottom
IPP_FINISHINGS_BIND_LEFT Bind on left
IPP_FINISHINGS_BIND_RIGHT Bind on right
IPP_FINISHINGS_BIND_TOP Bind on top
IPP_FINISHINGS_BOOKLET_MAKER Fold to make booklet
IPP_FINISHINGS_COAT Apply protective liquid or powder coating
IPP_FINISHINGS_COVER Add cover
IPP_FINISHINGS_EDGE_STITCH Stitch along any side
IPP_FINISHINGS_EDGE_STITCH_BOTTOM Stitch along bottom edge
IPP_FINISHINGS_EDGE_STITCH_LEFT Stitch along left side
IPP_FINISHINGS_EDGE_STITCH_RIGHT Stitch along right side
IPP_FINISHINGS_EDGE_STITCH_TOP Stitch along top edge
IPP_FINISHINGS_FOLD Fold (any type)
IPP_FINISHINGS_FOLD_ACCORDION Accordion-fold the paper vertically into four sections
IPP_FINISHINGS_FOLD_DOUBLE_GATE Fold the top and bottom quarters of the paper towards the midline, then fold in half vertically
IPP_FINISHINGS_FOLD_ENGINEERING_Z Fold the paper vertically into two small sections and one larger, forming an elongated Z
IPP_FINISHINGS_FOLD_GATE Fold the top and bottom quarters of the paper towards the midline
IPP_FINISHINGS_FOLD_HALF Fold the paper in half vertically
IPP_FINISHINGS_FOLD_HALF_Z Fold the paper in half horizontally, then Z-fold the paper vertically
IPP_FINISHINGS_FOLD_LEFT_GATE Fold the top quarter of the paper towards the midline
IPP_FINISHINGS_FOLD_LETTER Fold the paper into three sections vertically; sometimes also known as a C fold
IPP_FINISHINGS_FOLD_PARALLEL Fold the paper in half vertically two times, yielding four sections
IPP_FINISHINGS_FOLD_POSTER Fold the paper in half horizontally and vertically; sometimes also called a cross fold
IPP_FINISHINGS_FOLD_RIGHT_GATE Fold the bottom quarter of the paper towards the midline
IPP_FINISHINGS_FOLD_Z Fold the paper vertically into three sections, forming a Z
IPP_FINISHINGS_JOG_OFFSET Offset for binding (any type)
IPP_FINISHINGS_LAMINATE Apply protective (solid) material
IPP_FINISHINGS_NONE No finishing
IPP_FINISHINGS_PUNCH Punch (any location/count)
IPP_FINISHINGS_PUNCH_BOTTOM_LEFT Punch 1 hole bottom left
IPP_FINISHINGS_PUNCH_BOTTOM_RIGHT Punch 1 hole bottom right
IPP_FINISHINGS_PUNCH_DUAL_BOTTOM Punch 2 holes bottom edge
IPP_FINISHINGS_PUNCH_DUAL_LEFT Punch 2 holes left side
IPP_FINISHINGS_PUNCH_DUAL_RIGHT Punch 2 holes right side
IPP_FINISHINGS_PUNCH_DUAL_TOP Punch 2 holes top edge
IPP_FINISHINGS_PUNCH_MULTIPLE_BOTTOM Punch multiple holes bottom edge
IPP_FINISHINGS_PUNCH_MULTIPLE_LEFT Punch multiple holes left side
IPP_FINISHINGS_PUNCH_MULTIPLE_RIGHT Punch multiple holes right side
IPP_FINISHINGS_PUNCH_MULTIPLE_TOP Punch multiple holes top edge
IPP_FINISHINGS_PUNCH_QUAD_BOTTOM Punch 4 holes bottom edge
IPP_FINISHINGS_PUNCH_QUAD_LEFT Punch 4 holes left side
IPP_FINISHINGS_PUNCH_QUAD_RIGHT Punch 4 holes right side
IPP_FINISHINGS_PUNCH_QUAD_TOP Punch 4 holes top edge
IPP_FINISHINGS_PUNCH_TOP_LEFT Punch 1 hole top left
IPP_FINISHINGS_PUNCH_TOP_RIGHT Punch 1 hole top right
IPP_FINISHINGS_PUNCH_TRIPLE_BOTTOM Punch 3 holes bottom edge
IPP_FINISHINGS_PUNCH_TRIPLE_LEFT Punch 3 holes left side
IPP_FINISHINGS_PUNCH_TRIPLE_RIGHT Punch 3 holes right side
IPP_FINISHINGS_PUNCH_TRIPLE_TOP Punch 3 holes top edge
IPP_FINISHINGS_SADDLE_STITCH Staple interior
IPP_FINISHINGS_STAPLE Staple (any location/method)
IPP_FINISHINGS_STAPLE_BOTTOM_LEFT Staple bottom left corner
IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT Staple bottom right corner
IPP_FINISHINGS_STAPLE_DUAL_BOTTOM Two staples on bottom
IPP_FINISHINGS_STAPLE_DUAL_LEFT Two staples on left
IPP_FINISHINGS_STAPLE_DUAL_RIGHT Two staples on right
IPP_FINISHINGS_STAPLE_DUAL_TOP Two staples on top
IPP_FINISHINGS_STAPLE_TOP_LEFT Staple top left corner
IPP_FINISHINGS_STAPLE_TOP_RIGHT Staple top right corner
IPP_FINISHINGS_STAPLE_TRIPLE_BOTTOM Three staples on bottom
IPP_FINISHINGS_STAPLE_TRIPLE_LEFT Three staples on left
IPP_FINISHINGS_STAPLE_TRIPLE_RIGHT Three staples on right
IPP_FINISHINGS_STAPLE_TRIPLE_TOP Three staples on top
IPP_FINISHINGS_TRIM Trim (any type)
IPP_FINISHINGS_TRIM_AFTER_COPIES Trim output after each copy
IPP_FINISHINGS_TRIM_AFTER_DOCUMENTS Trim output after each document
IPP_FINISHINGS_TRIM_AFTER_JOB Trim output after job
IPP_FINISHINGS_TRIM_AFTER_PAGES Trim output after each page
+

ipp_jstate_e

+

Job states

+

Constants

+ + + + + + + + +
IPP_JSTATE_ABORTED Job has aborted due to error
IPP_JSTATE_CANCELED Job has been canceled
IPP_JSTATE_COMPLETED Job has completed successfully
IPP_JSTATE_HELD Job is held for printing
IPP_JSTATE_PENDING Job is waiting to be printed
IPP_JSTATE_PROCESSING Job is currently printing
IPP_JSTATE_STOPPED Job has been stopped
+

ipp_op_e

+

IPP operations

+

Constants

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IPP_OP_ALLOCATE_PRINTER_RESOURCES Allocate-Printer-Resources: Use resources for a printer.
IPP_OP_CANCEL_CURRENT_JOB Cancel-Current-Job: Cancel the current job
IPP_OP_CANCEL_JOB Cancel-Job: Cancel a job
IPP_OP_CANCEL_JOBS Cancel-Jobs: Cancel all jobs (administrative)
IPP_OP_CANCEL_MY_JOBS Cancel-My-Jobs: Cancel a user's jobs
IPP_OP_CANCEL_RESOURCE Cancel-Resource: Uninstall a resource.
IPP_OP_CANCEL_SUBSCRIPTION  CUPS 1.2/macOS 10.5 Cancel-Subscription: Cancel a subscription
IPP_OP_CLOSE_JOB Close-Job: Close a job and start printing
IPP_OP_CREATE_JOB Create-Job: Create an empty print job
IPP_OP_CREATE_JOB_SUBSCRIPTIONS  CUPS 1.2/macOS 10.5 Create-Job-Subscriptions: Create one of more job subscriptions
IPP_OP_CREATE_PRINTER Create-Printer: Create a new service.
IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS  CUPS 1.2/macOS 10.5 Create-Printer-Subscriptions: Create one or more printer subscriptions
IPP_OP_CREATE_RESOURCE Create-Resource: Create a new (empty) resource.
IPP_OP_CREATE_RESOURCE_SUBSCRIPTIONS Create-Resource-Subscriptions: Create event subscriptions for a resource.
IPP_OP_CREATE_SYSTEM_SUBSCRIPTIONS Create-System-Subscriptions: Create event subscriptions for a system.
IPP_OP_CUPS_ADD_MODIFY_CLASS CUPS-Add-Modify-Class: Add or modify a class
IPP_OP_CUPS_ADD_MODIFY_PRINTER CUPS-Add-Modify-Printer: Add or modify a printer
IPP_OP_CUPS_AUTHENTICATE_JOB  CUPS 1.2/macOS 10.5 CUPS-Authenticate-Job: Authenticate a job
IPP_OP_CUPS_CREATE_LOCAL_PRINTER  CUPS 2.2 CUPS-Create-Local-Printer: Create a local (temporary) printer
IPP_OP_CUPS_DELETE_CLASS CUPS-Delete-Class: Delete a class
IPP_OP_CUPS_DELETE_PRINTER CUPS-Delete-Printer: Delete a printer
IPP_OP_CUPS_GET_DEFAULT CUPS-Get-Default: Get the default printer
IPP_OP_CUPS_GET_DEVICES  DEPRECATED CUPS-Get-Devices: Get a list of supported devices
IPP_OP_CUPS_GET_DOCUMENT  CUPS 1.4/macOS 10.6 CUPS-Get-Document: Get a document file
IPP_OP_CUPS_GET_PPD  DEPRECATED CUPS-Get-PPD: Get a PPD file
IPP_OP_CUPS_GET_PPDS  DEPRECATED CUPS-Get-PPDs: Get a list of supported drivers
IPP_OP_CUPS_GET_PRINTERS CUPS-Get-Printers: Get a list of printers and/or classes
IPP_OP_CUPS_INVALID Invalid operation name for ippOpValue
IPP_OP_CUPS_MOVE_JOB CUPS-Move-Job: Move a job to a different printer
IPP_OP_CUPS_SET_DEFAULT CUPS-Set-Default: Set the default printer
IPP_OP_DEALLOCATE_PRINTER_RESOURCES Deallocate-Printer-Resources: Stop using resources for a printer.
IPP_OP_DELETE_PRINTER Delete-Printer: Delete an existing service.
IPP_OP_DISABLE_ALL_PRINTERS Disable-All-Printers: Stop accepting new jobs on all services.
IPP_OP_DISABLE_PRINTER Disable-Printer: Reject new jobs for a printer
IPP_OP_ENABLE_ALL_PRINTERS Enable-All-Printers: Start accepting new jobs on all services.
IPP_OP_ENABLE_PRINTER Enable-Printer: Accept new jobs for a printer
IPP_OP_GET_JOBS Get-Jobs: Get a list of jobs
IPP_OP_GET_JOB_ATTRIBUTES Get-Job-Attribute: Get information about a job
IPP_OP_GET_NOTIFICATIONS  CUPS 1.2/macOS 10.5 Get-Notifications: Get notification events
IPP_OP_GET_PRINTERS Get-Printers: Get a list of services.
IPP_OP_GET_PRINTER_ATTRIBUTES Get-Printer-Attributes: Get information about a printer
IPP_OP_GET_PRINTER_SUPPORTED_VALUES Get-Printer-Supported-Values: Get supported values
IPP_OP_GET_SUBSCRIPTIONS  CUPS 1.2/macOS 10.5 Get-Subscriptions: Get list of subscriptions
IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES  CUPS 1.2/macOS 10.5 Get-Subscription-Attributes: Get subscription information
IPP_OP_GET_SYSTEM_ATTRIBUTES Get-System-Attributes: Get system object attributes.
IPP_OP_GET_SYSTEM_SUPPORTED_VALUES Get-System-Supported-Values: Get supported values for system object attributes.
IPP_OP_HOLD_JOB Hold-Job: Hold a job for printing
IPP_OP_HOLD_NEW_JOBS Hold-New-Jobs: Hold new jobs
IPP_OP_IDENTIFY_PRINTER Identify-Printer: Make the printer beep, flash, or display a message for identification
IPP_OP_INSTALL_RESOURCE Install-Resource: Install a resource.
IPP_OP_PAUSE_ALL_PRINTERS Pause-All-Printers: Stop all services immediately.
IPP_OP_PAUSE_ALL_PRINTERS_AFTER_CURRENT_JOB Pause-All-Printers-After-Current-Job: Stop all services after processing the current jobs.
IPP_OP_PAUSE_PRINTER Pause-Printer: Stop a printer
IPP_OP_PAUSE_PRINTER_AFTER_CURRENT_JOB Pause-Printer-After-Current-Job: Stop printer after the current job
IPP_OP_PRINT_JOB Print-Job: Print a single file
IPP_OP_PROMOTE_JOB Promote-Job: Promote a job to print sooner
IPP_OP_REGISTER_OUTPUT_DEVICE Register-Output-Device: Register a remote service.
IPP_OP_RELEASE_HELD_NEW_JOBS Release-Held-New-Jobs: Release new jobs that were previously held
IPP_OP_RELEASE_JOB Release-Job: Release a job for printing
IPP_OP_RENEW_SUBSCRIPTION  CUPS 1.2/macOS 10.5 Renew-Subscription: Renew a printer subscription
IPP_OP_RESTART_JOB  DEPRECATED Restart-Job: Reprint a job
IPP_OP_RESTART_SYSTEM Restart-System: Restart all services.
IPP_OP_RESUME_ALL_PRINTERS Resume-All-Printers: Start job processing on all services.
IPP_OP_RESUME_JOB Resume-Job: Resume the current job
IPP_OP_RESUME_PRINTER Resume-Printer: Start a printer
IPP_OP_SCHEDULE_JOB_AFTER Schedule-Job-After: Schedule a job to print after another
IPP_OP_SEND_DOCUMENT Send-Document: Add a file to a job
IPP_OP_SEND_RESOURCE_DATA Send-Resource-Data: Upload the data for a resource.
IPP_OP_SET_JOB_ATTRIBUTES Set-Job-Attributes: Set job values
IPP_OP_SET_PRINTER_ATTRIBUTES Set-Printer-Attributes: Set printer values
IPP_OP_SET_RESOURCE_ATTRIBUTES Set-Resource-Attributes: Set resource object attributes.
IPP_OP_SET_SYSTEM_ATTRIBUTES Set-System-Attributes: Set system object attributes.
IPP_OP_SHUTDOWN_ALL_PRINTERS Shutdown-All-Printers: Shutdown all services.
IPP_OP_SHUTDOWN_ONE_PRINTER Shutdown-One-Printer: Shutdown a service.
IPP_OP_STARTUP_ALL_PRINTERS Startup-All-Printers: Startup all services.
IPP_OP_STARTUP_ONE_PRINTER Startup-One-Printer: Start a service.
IPP_OP_SUSPEND_CURRENT_JOB Suspend-Current-Job: Suspend the current job
IPP_OP_VALIDATE_JOB Validate-Job: Validate job values prior to submission
+

ipp_orient_e

+

Orientation values

+

Constants

+ + + + + + +
IPP_ORIENT_LANDSCAPE 90 degrees counter-clockwise
IPP_ORIENT_NONE No rotation
IPP_ORIENT_PORTRAIT No rotation
IPP_ORIENT_REVERSE_LANDSCAPE 90 degrees clockwise
IPP_ORIENT_REVERSE_PORTRAIT 180 degrees
+

ipp_pstate_e

+

Printer state values

+

Constants

+ + + + +
IPP_PSTATE_IDLE Printer is idle
IPP_PSTATE_PROCESSING Printer is working
IPP_PSTATE_STOPPED Printer is stopped
+

ipp_quality_e

+

Print quality values

+

Constants

+ + + + +
IPP_QUALITY_DRAFT Draft quality
IPP_QUALITY_HIGH High quality
IPP_QUALITY_NORMAL Normal quality
+

ipp_res_e

+

Resolution units

+

Constants

+ + + +
IPP_RES_PER_CM Pixels per centimeter
IPP_RES_PER_INCH Pixels per inch
+

ipp_rstate_e

+

resource-state values

+

Constants

+ + + + + + +
IPP_RSTATE_ABORTED Resource has been aborted and is pending deletion.
IPP_RSTATE_AVAILABLE Resource is available for installation.
IPP_RSTATE_CANCELED Resource has been canceled and is pending deletion.
IPP_RSTATE_INSTALLED Resource is installed.
IPP_RSTATE_PENDING Resource is created but has no data yet.
+

ipp_sstate_e

+

system-state values

+

Constants

+ + + + +
IPP_SSTATE_IDLE At least one printer is idle and none are processing a job.
IPP_SSTATE_PROCESSING At least one printer is processing a job.
IPP_SSTATE_STOPPED All printers are stopped.
+

ipp_state_e

+

ipp_t state values

+

Constants

+ + + + + + +
IPP_STATE_ATTRIBUTE One or more attributes need to be sent/received
IPP_STATE_DATA IPP request data needs to be sent/received
IPP_STATE_ERROR An error occurred
IPP_STATE_HEADER The request header needs to be sent/received
IPP_STATE_IDLE Nothing is happening/request completed
+

ipp_status_e

+

IPP status code values

+

Constants

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IPP_STATUS_CUPS_INVALID Invalid status name for ippErrorValue
IPP_STATUS_ERROR_ACCOUNT_AUTHORIZATION_FAILED client-error-account-authorization-failed
IPP_STATUS_ERROR_ACCOUNT_CLOSED client-error-account-closed
IPP_STATUS_ERROR_ACCOUNT_INFO_NEEDED client-error-account-info-needed
IPP_STATUS_ERROR_ACCOUNT_LIMIT_REACHED client-error-account-limit-reached
IPP_STATUS_ERROR_ATTRIBUTES_NOT_SETTABLE client-error-attributes-not-settable
IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES client-error-attributes-or-values-not-supported
IPP_STATUS_ERROR_BAD_REQUEST client-error-bad-request
IPP_STATUS_ERROR_BUSY server-error-busy
IPP_STATUS_ERROR_CHARSET client-error-charset-not-supported
IPP_STATUS_ERROR_COMPRESSION_ERROR client-error-compression-error
IPP_STATUS_ERROR_COMPRESSION_NOT_SUPPORTED client-error-compression-not-supported
IPP_STATUS_ERROR_CONFLICTING client-error-conflicting-attributes
IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED  DEPRECATED cups-error-account-authorization-failed
IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED cups-error-account-closed @deprecate@
IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED  DEPRECATED cups-error-account-info-needed
IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED  DEPRECATED cups-error-account-limit-reached
IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED  CUPS 1.5/macOS 10.7 cups-authentication-canceled - Authentication canceled by user
IPP_STATUS_ERROR_CUPS_PKI  CUPS 1.5/macOS 10.7 cups-pki-error - Error negotiating a secure connection
IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED  CUPS 1.5/macOS 10.7 cups-upgrade-required - TLS upgrade required
IPP_STATUS_ERROR_DEVICE server-error-device-error
IPP_STATUS_ERROR_DOCUMENT_ACCESS client-error-document-access-error
IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR client-error-document-format-error
IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED client-error-document-format-not-supported
IPP_STATUS_ERROR_DOCUMENT_PASSWORD client-error-document-password-error
IPP_STATUS_ERROR_DOCUMENT_PERMISSION client-error-document-permission-error
IPP_STATUS_ERROR_DOCUMENT_SECURITY client-error-document-security-error
IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE client-error-document-unprintable-error
IPP_STATUS_ERROR_FORBIDDEN client-error-forbidden
IPP_STATUS_ERROR_GONE client-error-gone
IPP_STATUS_ERROR_IGNORED_ALL_SUBSCRIPTIONS client-error-ignored-all-subscriptions
IPP_STATUS_ERROR_INTERNAL server-error-internal-error
IPP_STATUS_ERROR_JOB_CANCELED server-error-job-canceled
IPP_STATUS_ERROR_MULTIPLE_JOBS_NOT_SUPPORTED server-error-multiple-document-jobs-not-supported
IPP_STATUS_ERROR_NOT_ACCEPTING_JOBS server-error-not-accepting-jobs
IPP_STATUS_ERROR_NOT_AUTHENTICATED client-error-not-authenticated
IPP_STATUS_ERROR_NOT_AUTHORIZED client-error-not-authorized
IPP_STATUS_ERROR_NOT_FETCHABLE client-error-not-fetchable
IPP_STATUS_ERROR_NOT_FOUND client-error-not-found
IPP_STATUS_ERROR_NOT_POSSIBLE client-error-not-possible
IPP_STATUS_ERROR_OPERATION_NOT_SUPPORTED server-error-operation-not-supported
IPP_STATUS_ERROR_PRINTER_IS_DEACTIVATED server-error-printer-is-deactivated
IPP_STATUS_ERROR_REQUEST_ENTITY client-error-request-entity-too-large
IPP_STATUS_ERROR_REQUEST_VALUE client-error-request-value-too-long
IPP_STATUS_ERROR_SERVICE_UNAVAILABLE server-error-service-unavailable
IPP_STATUS_ERROR_TEMPORARY server-error-temporary-error
IPP_STATUS_ERROR_TIMEOUT client-error-timeout
IPP_STATUS_ERROR_TOO_MANY_DOCUMENTS server-error-too-many-documents
IPP_STATUS_ERROR_TOO_MANY_JOBS server-error-too-many-jobs
IPP_STATUS_ERROR_TOO_MANY_SUBSCRIPTIONS client-error-too-many-subscriptions
IPP_STATUS_ERROR_URI_SCHEME client-error-uri-scheme-not-supported
IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED server-error-version-not-supported
IPP_STATUS_OK successful-ok
IPP_STATUS_OK_CONFLICTING successful-ok-conflicting-attributes
IPP_STATUS_OK_EVENTS_COMPLETE successful-ok-events-complete
IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED successful-ok-ignored-or-substituted-attributes
IPP_STATUS_OK_IGNORED_SUBSCRIPTIONS successful-ok-ignored-subscriptions
IPP_STATUS_OK_TOO_MANY_EVENTS successful-ok-too-many-events
+

ipp_tag_e

+

Value and group tag values for attributes

+

Constants

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IPP_TAG_ADMINDEFINE Admin-defined value
IPP_TAG_BOOLEAN Boolean value
IPP_TAG_CHARSET Character set value
IPP_TAG_CUPS_INVALID Invalid tag name for ippTagValue
IPP_TAG_DATE Date/time value
IPP_TAG_DEFAULT Default value
IPP_TAG_DELETEATTR Delete-attribute value
IPP_TAG_DOCUMENT Document group
IPP_TAG_END End-of-attributes
IPP_TAG_ENUM Enumeration value
IPP_TAG_EVENT_NOTIFICATION Event group
IPP_TAG_INTEGER Integer value
IPP_TAG_JOB Job group
IPP_TAG_KEYWORD Keyword value
IPP_TAG_LANGUAGE Language value
IPP_TAG_MIMETYPE MIME media type value
IPP_TAG_NAME Name value
IPP_TAG_NAMELANG Name-with-language value
IPP_TAG_NOTSETTABLE Not-settable value
IPP_TAG_NOVALUE No-value value
IPP_TAG_OPERATION Operation group
IPP_TAG_PRINTER Printer group
IPP_TAG_RANGE Range value
IPP_TAG_RESOLUTION Resolution value
IPP_TAG_RESOURCE Resource group
IPP_TAG_STRING Octet string value
IPP_TAG_SUBSCRIPTION Subscription group
IPP_TAG_SYSTEM System group
IPP_TAG_TEXT Text value
IPP_TAG_TEXTLANG Text-with-language value
IPP_TAG_UNKNOWN Unknown value
IPP_TAG_UNSUPPORTED_GROUP Unsupported attributes group
IPP_TAG_UNSUPPORTED_VALUE Unsupported value
IPP_TAG_URI URI value
IPP_TAG_URISCHEME URI scheme value
IPP_TAG_ZERO Zero tag - used for separators
+
+ diff --git a/doc/help/man-backend.html b/doc/help/man-backend.html index 953a26789a..ac17a48d01 100644 --- a/doc/help/man-backend.html +++ b/doc/help/man-backend.html @@ -196,7 +196,7 @@ Printers that do not support IPP can be supported using applications such as
CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cancel.html b/doc/help/man-cancel.html index c02f6f1efe..63a1dbe186 100644 --- a/doc/help/man-cancel.html +++ b/doc/help/man-cancel.html @@ -83,7 +83,7 @@ Administrators wishing to prevent unauthorized cancellation of jobs via the - lpstat(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-classes.conf.html b/doc/help/man-classes.conf.html index f30ec909e9..44ca1a3cc4 100644 --- a/doc/help/man-classes.conf.html +++ b/doc/help/man-classes.conf.html @@ -26,7 +26,7 @@ The name, location, and format of this file are an implementation detail that wi subscriptions.conf(5), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-client.conf.html b/doc/help/man-client.conf.html index 032cd333d8..f07f4d6566 100644 --- a/doc/help/man-client.conf.html +++ b/doc/help/man-client.conf.html @@ -102,7 +102,7 @@ On Linux and other systems using GNU TLS, the /etc/cups/ssl/site.crl file default(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cups-config.html b/doc/help/man-cups-config.html index e8d025f736..563a7e7c55 100644 --- a/doc/help/man-cups-config.html +++ b/doc/help/man-cups-config.html @@ -97,7 +97,7 @@ The following options are deprecated but continue to work for backwards compatib cups(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cups-files.conf.html b/doc/help/man-cups-files.conf.html index a429e0283f..81e128e5ba 100644 --- a/doc/help/man-cups-files.conf.html +++ b/doc/help/man-cups-files.conf.html @@ -214,7 +214,7 @@ CUPS Online Help (http://localhost:631/help<

Copyright

Copyright © 2020 by Michael R Sweet
-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cups-lpd.html b/doc/help/man-cups-lpd.html index 7a725bec1a..59cdb39e4e 100644 --- a/doc/help/man-cups-lpd.html +++ b/doc/help/man-cups-lpd.html @@ -108,7 +108,7 @@ CUPS Online Help (http://localhost:631/help RFC 2569

Copyright

Copyright © 2020 by Michael R Sweet -Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cups-snmp.conf.html b/doc/help/man-cups-snmp.conf.html index d61d8340fd..0007727395 100644 --- a/doc/help/man-cups-snmp.conf.html +++ b/doc/help/man-cups-snmp.conf.html @@ -54,7 +54,7 @@ Printers that do not support IPP can be supported using applications such as cups-snmp(8), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cups-snmp.html b/doc/help/man-cups-snmp.html index c7c17f7f4f..6cbd4d1f75 100644 --- a/doc/help/man-cups-snmp.html +++ b/doc/help/man-cups-snmp.html @@ -51,7 +51,7 @@ The CUPS SNMP backend uses the information from the Host, Printer, and Port Moni lpinfo(8), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cups.html b/doc/help/man-cups.html index 782a5f1bbb..90ee86d253 100644 --- a/doc/help/man-cups.html +++ b/doc/help/man-cups.html @@ -43,8 +43,8 @@ commands to add printers to Additionally, your operating system may include graphical user interfaces or automatically create printer queues when you connect a printer to your computer.

How Do I Get Help?

The -CUPS -web site (http://www.CUPS.org) provides access to the +OpenPrintingCUPS +web site (https://openprinting.github.io/cups) provides access to the cups and cups-devel @@ -114,10 +114,10 @@ Printers that do not support IPP can be supported using applications such as lpq(1), lpstat(1), CUPS Online Help (http://localhost:631/help), -CUPS Web Site (http://www.CUPS.org), +OpenPrinting CUPS Web Site (https://openprinting.github.io/cups), PWG Internet Printing Protocol Workgroup (http://www.pwg.org/ipp)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cupsaccept.html b/doc/help/man-cupsaccept.html index a8925685da..b0237c7870 100644 --- a/doc/help/man-cupsaccept.html +++ b/doc/help/man-cupsaccept.html @@ -78,7 +78,7 @@ Also, printer and class names are not case-sensitive.
CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cupsctl.html b/doc/help/man-cupsctl.html index c52125fc7f..88c7f60c0e 100644 --- a/doc/help/man-cupsctl.html +++ b/doc/help/man-cupsctl.html @@ -88,7 +88,7 @@ You cannot set the Listen or Port directives using cupsctl.
CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cupsd-helper.html b/doc/help/man-cupsd-helper.html index e701445d66..242d112f9a 100644 --- a/doc/help/man-cupsd-helper.html +++ b/doc/help/man-cupsd-helper.html @@ -82,7 +82,7 @@ Printers that do not support IPP can be supported using applications such as ppdcfile(5), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cupsd-logs.html b/doc/help/man-cupsd-logs.html index 11aac7a76d..2532cd7d17 100644 --- a/doc/help/man-cupsd-logs.html +++ b/doc/help/man-cupsd-logs.html @@ -178,7 +178,7 @@ The format of this field is identical to the data-time field in the access_lo cups-files.conf(5), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cupsd.conf.html b/doc/help/man-cupsd.conf.html index 453e3006c9..24936ba83d 100644 --- a/doc/help/man-cupsd.conf.html +++ b/doc/help/man-cupsd.conf.html @@ -627,7 +627,7 @@ CUPS Online Help (http://localhost:631/help<

Copyright

Copyright © 2020 by Michael R Sweet
-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cupsd.html b/doc/help/man-cupsd.html index 5892071037..cd09bc0705 100644 --- a/doc/help/man-cupsd.html +++ b/doc/help/man-cupsd.html @@ -117,7 +117,7 @@ in the foreground with a test configuration file called systemd(8), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cupsenable.html b/doc/help/man-cupsenable.html index 04279a5fc6..b3962efbbf 100644 --- a/doc/help/man-cupsenable.html +++ b/doc/help/man-cupsenable.html @@ -86,7 +86,7 @@ This differs from the System V versions which require the root user to execute t lpstat(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cupsfilter.html b/doc/help/man-cupsfilter.html index bce2134db1..741d44ab72 100644 --- a/doc/help/man-cupsfilter.html +++ b/doc/help/man-cupsfilter.html @@ -123,7 +123,7 @@ The following command will generate a PDF preview of job 42 for a printer named mime.types(7), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-cupstestppd.html b/doc/help/man-cupstestppd.html index 99701c954d..c31b617a41 100644 --- a/doc/help/man-cupstestppd.html +++ b/doc/help/man-cupstestppd.html @@ -8,7 +8,7 @@

cupstestppd(1)

Name

-cupstestppd - test conformance of ppd files +cupstestppd - test conformance of ppd files (deprecated)

Synopsis

cupstestppd [ @@ -125,7 +125,7 @@ Printers that do not support IPP can be supported using applications such as CUPS Online Help (http://localhost:631/help), Adobe PostScript Printer Description File Format Specification, Version 4.3.

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-filter.html b/doc/help/man-filter.html index 65d896b57c..fede9c8c65 100644 --- a/doc/help/man-filter.html +++ b/doc/help/man-filter.html @@ -183,7 +183,7 @@ program to use the appropriate filters to do the conversions you need.
CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-ippevepcl.html b/doc/help/man-ippevepcl.html index 529f6da804..e2e5451b1b 100644 --- a/doc/help/man-ippevepcl.html +++ b/doc/help/man-ippevepcl.html @@ -43,7 +43,7 @@ program.

See Also

ippeveprinter(8)

Copyright

-Copyright © 2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-ippeveprinter.html b/doc/help/man-ippeveprinter.html index bcd91ae480..6f9ddcf8ab 100644 --- a/doc/help/man-ippeveprinter.html +++ b/doc/help/man-ippeveprinter.html @@ -237,7 +237,7 @@ command whenever a job is sent to the server: ippeveps(7), PWG Internet Printing Protocol Workgroup (http://www.pwg.org/ipp)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-ippfind.html b/doc/help/man-ippfind.html index 7c8529b94d..230cb9ce17 100644 --- a/doc/help/man-ippfind.html +++ b/doc/help/man-ippfind.html @@ -201,7 +201,7 @@ Similarly, to send a PostScript test page to every PostScript printer, run:

See Also

ipptool(1)

Copyright

-Copyright © 2013-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-ipptool.html b/doc/help/man-ipptool.html index 5f9b86212b..8531fff980 100644 --- a/doc/help/man-ipptool.html +++ b/doc/help/man-ipptool.html @@ -225,7 +225,7 @@ IANA IPP Registry (http://www.pwg.org/ipp) RFC 8011 (http://tools.ietf.org/html/rfc8011),

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-ipptoolfile.html b/doc/help/man-ipptoolfile.html index e0f6727d78..f6dee14413 100644 --- a/doc/help/man-ipptoolfile.html +++ b/doc/help/man-ipptoolfile.html @@ -536,7 +536,7 @@ IANA IPP Registry ( PWG Internet Printing Protocol Workgroup (http://www.pwg.org/ipp), RFC 8011 (http://tools.ietf.org/html/rfc8011)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-lp.html b/doc/help/man-lp.html index ba221270fa..6165a63d07 100644 --- a/doc/help/man-lp.html +++ b/doc/help/man-lp.html @@ -197,7 +197,7 @@ Print a presentation document 2-up to a printer called "bar": lpstat(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-lpadmin.html b/doc/help/man-lpadmin.html index 755bf2fd93..1ad3b60cbd 100644 --- a/doc/help/man-lpadmin.html +++ b/doc/help/man-lpadmin.html @@ -192,7 +192,7 @@ Create an IPP Everywhere print queue: lpoptions(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-lpc.html b/doc/help/man-lpc.html index f94d9258e9..e2aef0c3a9 100644 --- a/doc/help/man-lpc.html +++ b/doc/help/man-lpc.html @@ -49,7 +49,7 @@ command or another CUPS-compatible client with that functionality. lpstat(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-lpinfo.html b/doc/help/man-lpinfo.html index 1089ec59b4..ca32670577 100644 --- a/doc/help/man-lpinfo.html +++ b/doc/help/man-lpinfo.html @@ -113,7 +113,7 @@ Printers that do not support IPP can be supported using applications such as lpadmin(8), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-lpmove.html b/doc/help/man-lpmove.html index 74ad0ff2d4..cb50dc1dc6 100644 --- a/doc/help/man-lpmove.html +++ b/doc/help/man-lpmove.html @@ -69,7 +69,7 @@ Move all jobs from "oldprinter" to "newprinter":
CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-lpoptions.html b/doc/help/man-lpoptions.html index 38ebeeb67a..21211f4b26 100644 --- a/doc/help/man-lpoptions.html +++ b/doc/help/man-lpoptions.html @@ -105,7 +105,7 @@ The lpoptions command is unique to CUPS. lprm(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-lpq.html b/doc/help/man-lpq.html index 064e882341..c6bc8d6a58 100644 --- a/doc/help/man-lpq.html +++ b/doc/help/man-lpq.html @@ -55,7 +55,7 @@ Jobs queued on the default destination will be shown if no printer or class is s lpstat(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-lpr.html b/doc/help/man-lpr.html index c945ea9c82..d2e4251f1b 100644 --- a/doc/help/man-lpr.html +++ b/doc/help/man-lpr.html @@ -154,7 +154,7 @@ Print a presentation document 2-up to a printer called "foo": lpstat(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-lprm.html b/doc/help/man-lprm.html index f370b7fef3..a05617bc47 100644 --- a/doc/help/man-lprm.html +++ b/doc/help/man-lprm.html @@ -76,7 +76,7 @@ Cancel all jobs: lpstat(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-lpstat.html b/doc/help/man-lpstat.html index 0fcd20c6de..1f4e563309 100644 --- a/doc/help/man-lpstat.html +++ b/doc/help/man-lpstat.html @@ -127,7 +127,7 @@ Also, printer and class names are not case-sensitive. lprm(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-mailto.conf.html b/doc/help/man-mailto.conf.html index 8f5b87cbbc..5bde313ced 100644 --- a/doc/help/man-mailto.conf.html +++ b/doc/help/man-mailto.conf.html @@ -36,7 +36,7 @@ If multiple lines are present, only the last one is used. cupsd(8), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-mime.convs.html b/doc/help/man-mime.convs.html index e4d8813c8e..614eb71ad2 100644 --- a/doc/help/man-mime.convs.html +++ b/doc/help/man-mime.convs.html @@ -53,7 +53,7 @@ Printers that do not support IPP can be supported using applications such as mime.types(5), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-mime.types.html b/doc/help/man-mime.types.html index cc4393ef81..f9c7eb1321 100644 --- a/doc/help/man-mime.types.html +++ b/doc/help/man-mime.types.html @@ -91,7 +91,7 @@ Define two MIME media types for raster data, with one being a subset with higher mime.convs(5), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-notifier.html b/doc/help/man-notifier.html index d8d96d36ca..5a1a3641e7 100644 --- a/doc/help/man-notifier.html +++ b/doc/help/man-notifier.html @@ -31,7 +31,7 @@ Notifiers inherit the environment and can use the logging mechanism documented i filter(7), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-ppdc.html b/doc/help/man-ppdc.html index f6a233d185..715a55876a 100644 --- a/doc/help/man-ppdc.html +++ b/doc/help/man-ppdc.html @@ -89,7 +89,7 @@ Printers that do not support IPP can be supported using applications such as ppdcfile(5), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-ppdcfile.html b/doc/help/man-ppdcfile.html index a81f06a8d1..8f92c0a6d8 100644 --- a/doc/help/man-ppdcfile.html +++ b/doc/help/man-ppdcfile.html @@ -93,7 +93,7 @@ Printers that do not support IPP can be supported using applications such as ppdpo(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-ppdhtml.html b/doc/help/man-ppdhtml.html index d19621a00b..499ddb31e6 100644 --- a/doc/help/man-ppdhtml.html +++ b/doc/help/man-ppdhtml.html @@ -43,7 +43,7 @@ Printers that do not support IPP can be supported using applications such as ppdpo(1), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-ppdi.html b/doc/help/man-ppdi.html index 192b02b8ca..46033506f3 100644 --- a/doc/help/man-ppdi.html +++ b/doc/help/man-ppdi.html @@ -50,7 +50,7 @@ Printers that do not support IPP can be supported using applications such as ppdcfile(5), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-ppdmerge.html b/doc/help/man-ppdmerge.html index 458fac1f53..2b39cb88b2 100644 --- a/doc/help/man-ppdmerge.html +++ b/doc/help/man-ppdmerge.html @@ -46,7 +46,7 @@ Merging of different device PPDs will yield unpredictable results. ppdcfile(5), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-ppdpo.html b/doc/help/man-ppdpo.html index 61c727ad60..92602a9364 100644 --- a/doc/help/man-ppdpo.html +++ b/doc/help/man-ppdpo.html @@ -49,7 +49,7 @@ Printers that do not support IPP can be supported using applications such as ppdcfile(5), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-printers.conf.html b/doc/help/man-printers.conf.html index 4a3123ea56..f2b96d7102 100644 --- a/doc/help/man-printers.conf.html +++ b/doc/help/man-printers.conf.html @@ -25,7 +25,7 @@ The name, location, and format of this file are an implementation detail that wi subscriptions.conf(5), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/man-subscriptions.conf.html b/doc/help/man-subscriptions.conf.html index 325f2cd28e..2caeab1200 100644 --- a/doc/help/man-subscriptions.conf.html +++ b/doc/help/man-subscriptions.conf.html @@ -27,7 +27,7 @@ The name, location, and format of this file are an implementation detail that wi printers.conf(5), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2019 by Apple Inc. +Copyright © 2021 by OpenPrinting. diff --git a/doc/help/spec-design.html b/doc/help/spec-design.html index 73d07b8f46..86be752204 100644 --- a/doc/help/spec-design.html +++ b/doc/help/spec-design.html @@ -1,184 +1,153 @@ - + - - CUPS Design Description - - - + + CUPS Design Description + + + -

CUPS Design Description

+

CUPS Design Description

-

This design description documents the overall organization of CUPS. The purpose is not to provide a line-by-line description of the CUPS source code, but rather to describe the overall architecture and location of key pieces so that developers can more easily understand the underlying operation of CUPS.

+

This design description documents the overall organization of CUPS. The purpose is not to provide a line-by-line description of the CUPS source code, but rather to describe the overall architecture and location of key pieces so that developers can more easily understand the underlying operation of CUPS.

-

Introduction

+

Introduction

-

Like most printing systems, CUPS is designed around a central print scheduling process that dispatches print jobs, processes administrative commands, provides printer status information to local and remote programs, and informs users as needed. Figure 1 shows the basic organization of CUPS.

+

Like most printing systems, CUPS is designed around a central print scheduling process that dispatches print jobs, processes administrative commands, provides printer status information to local and remote programs, and informs users as needed. Figure 1 shows the basic organization of CUPS.

-

Scheduler

+

Scheduler

-

The scheduler is a HTTP/1.1 and IPP/2.1 server application that manages HTTP and IPP requests, printers, classes, jobs, subscriptions, and notifications on the system. HTTP is used for normal web browser services as well as IPP operation messages passed via HTTP POST requests with the application/ipp content type. The scheduler uses a series of helper applications based on the Common Gateway Interface ("CGI") to provide dynamic web interfaces and can be configured to run additional site-specific programs or scripts for the web interface.

+

The scheduler is a HTTP/1.1 and IPP/2.1 server application that manages HTTP and IPP requests, printers, classes, jobs, subscriptions, and notifications on the system. HTTP is used for normal web browser services as well as IPP operation messages passed via HTTP POST requests with the application/ipp content type. The scheduler uses a series of helper applications based on the Common Gateway Interface ("CGI") to provide dynamic web interfaces and can be configured to run additional site-specific programs or scripts for the web interface.

-

The scheduler is designed as a traditional single-threaded server process which runs external processes to do longer-term operations such as printing, notification, device/driver enumeration, and remote printer monitoring. External processes are normally run as a non-privileged account ("lp") and, on some platforms, with additional restrictions that limit what the processes are allowed to do.

+

The scheduler is designed as a traditional single-threaded server process which runs external processes to do longer-term operations such as printing, notification, device/driver enumeration, and remote printer monitoring. External processes are normally run as a non-privileged account ("lp") and, on some platforms, with additional restrictions that limit what the processes are allowed to do.

-

The maximum number of simultaneous clients and print jobs that can be supported is primarily limited by the available server memory, file descriptors, and CPU - the scheduler itself imposes no hard limits.

+

The maximum number of simultaneous clients and print jobs that can be supported is primarily limited by the available server memory, file descriptors, and CPU - the scheduler itself imposes no hard limits.

-
- - -
Figure 1: CUPS Block Diagram
CUPS Block Diagram
+
+ + +
Figure 1: CUPS Block Diagram
CUPS Block Diagram
-

Config Files

+

Config Files

-

The scheduler uses several configuration files to store the server settings (cupsd.conf), available classes (classes.conf), available printers (printers.conf), current notification subscriptions (subscriptions.conf), and supported file types and filters (mime.types, mime.convs). In addition, PostScript Printer Description ("PPD") files are associated with each printer, and the scheduler has cache files for remote printers, PPD files, and current jobs to optimize the scheduler's startup speed and availability.

+

The scheduler uses several configuration files to store the server settings (cupsd.conf), available classes (classes.conf), available printers (printers.conf), current notification subscriptions (subscriptions.conf), and supported file types and filters (mime.types, mime.convs). In addition, PostScript Printer Description ("PPD") files are associated with each printer, and the scheduler has cache files for remote printers, PPD files, and current jobs to optimize the scheduler's startup speed and availability.

-

Job Files

+

Job Files

-

The scheduler stores job files in a spool directory, typically /var/spool/cups. Two types of files will be found in the spool directory: control files starting with the letter "c" ("c00001", "c99999", "c100000", etc.) and data files starting with the letter "d" ("d00001-001", "d99999-001", "d100000-001", etc.) Control files are IPP messages based on the original IPP Print-Job or Create-Job messages, while data files are the original print files that were submitted for printing. There is one control file for every job known to the system and 0 or more data files for each job. +

The scheduler stores job files in a spool directory, typically /var/spool/cups. Two types of files will be found in the spool directory: control files starting with the letter "c" ("c00001", "c99999", "c100000", etc.) and data files starting with the letter "d" ("d00001-001", "d99999-001", "d100000-001", etc.) Control files are IPP messages based on the original IPP Print-Job or Create-Job messages, while data files are the original print files that were submitted for printing. There is one control file for every job known to the system and 0 or more data files for each job. -

Control files are normally cleaned out after the 500th job is submitted, while data files are removed immediately after a job has successfully printed. Both behaviors can be configured.

+

Control files are normally cleaned out after the 500th job is submitted, while data files are removed immediately after a job has successfully printed. Both behaviors can be configured.

-

Log Files

+

Log Files

-

The scheduler keeps three kinds of log files which are normally stored in the /var/log/cups directory. The access_log file lists every HTTP and IPP request that is processed by the scheduler. The error_log file contains messages from the scheduler and its helper applications that can be used -to track down problems. The page_log file lists every page that is printed, allowing for simple print accounting.

+

The scheduler keeps three kinds of log files which are normally stored in the /var/log/cups directory. The access_log file lists every HTTP and IPP request that is processed by the scheduler. The error_log file contains messages from the scheduler and its helper applications that can be used +to track down problems. The page_log file lists every page that is printed, allowing for simple print accounting.

-

Log files are rotated automatically by the scheduler when they reach the configured size limit, by default 1MB. If the limit is set to 0 then no rotation is performed in the scheduler - this mode is often used by Linux distributions so they can use the logrotated(8) program to rotate them instead.

+

Log files are rotated automatically by the scheduler when they reach the configured size limit, by default 1MB. If the limit is set to 0 then no rotation is performed in the scheduler - this mode is often used by Linux distributions so they can use the logrotated(8) program to rotate them instead.

-

Berkeley Commands

+

Berkeley Commands

-

CUPS provides the Berkeley lpc(8), lpq(1), lpr(1), and lprm(1) commands. In general, they function identically to the original Berkeley commands with the following exceptions:

+

CUPS provides the Berkeley lpc(8), lpq(1), lpr(1), and lprm(1) commands. In general, they function identically to the original Berkeley commands with the following exceptions:

-
    +
      +
    1. The lpc command currently only supports the "status" sub-command.
    2. +
    3. The lpr command does not support the format modifier options "1" (TROFF font set 1), "2" (TROFF font set 2), "3" (TROFF font set 3), "4" (TROFF font set 4), "c" (CIFPLOT), "d" (DVI), "f" (FORTRAN), "g" (GNU plot), "i" (indentation), "n" (Ditroff), "r" (Sun raster), "t" (Troff), or "w" (width), as they do not map to the IPP MIME media type based document formats.
    4. +
    -
  1. The lpc command currently only supports the "status" sub-command.
  2. +

    System V Commands

    -
  3. The lpr command does not support the format modifier options "1" (TROFF font set 1), "2" (TROFF font set 2), "3" (TROFF font set 3), "4" (TROFF font set 4), "c" (CIFPLOT), "d" (DVI), "f" (FORTRAN), "g" (GNU plot), "i" (indentation), "n" (Ditroff), "r" (Sun raster), "t" (Troff), or "w" (width), as they do not map to the IPP MIME media type based document formats.
  4. +

    CUPS provides the System V cancel(1), lp(1), lpadmin(8), lpmove(8), and lpstat(1) commands. In general, they function identically to the original System V commands with the following exceptions:

    -
+
    +
  1. All commands may ask for a password; the System V print spooler requires root access to perform administration tasks, while CUPS allows for more flexible configurations.
  2. +
  3. The lpadmin command does not implement the Solaris "-A" (alert), "-F" (fault recovery), "-M" (mount form/wheel), "-P" (paper list), "-S" (print wheels), "-T" (type list), "-U" (dialer info), "-W" (wait), "-f" (form name), "-l" (content-type list), "-s" (remote printer), or "-t" (number of trays) options.
  4. +
-

System V Commands

+

CUPS Commands

-

CUPS provides the System V cancel(1), lp(1), lpadmin(8), lpmove(8), and lpstat(1) commands. In general, they function identically to the original System V commands with the following exceptions:

+

CUPS provides the cupsaccept(8), cupsdisable(8), cupsenable(8), cupsreject(8), cupstestppd(1), and lpinfo(8) commands. The cupsaccept, cupsdisable, cupsenable, and cupsreject commands correspond to the System V accept, disable, enable, and reject commands but have been renamed to avoid confusion and conflicts with the bash(1) internal enable command of the same name.

-
    +

    LPD Support

    -
  1. All commands may ask for a password; the System V print spooler requires root access to perform administration tasks, while CUPS allows for more flexible configurations.
  2. +

    LPD client support is provided via the cups-lpd(8) program. Incoming LPD requests are accepted on TCP port 515 by the local inetd(8), launchd(8), or xinetd(8) process and forwarded to the cups-lpd program for conversion to the corresponding IPP request(s).

    -
  3. The lpadmin command does not implement the Solaris "-A" (alert), "-F" (fault recovery), "-M" (mount form/wheel), "-P" (paper list), "-S" (print wheels), "-T" (type list), "-U" (dialer info), "-W" (wait), "-f" (form name), "-l" (content-type list), "-s" (remote printer), or "-t" (number of trays) options.
  4. +

    The cups-lpd program conforms, for the most part, to RFC 1179: Line Printer Daemon Protocol, but does not enforce the privileged source port restriction specified in that document. In addition, the banner page and output format options are usually overridden via command-line options to the cups-lpd program when it is invoked by the corresponding super-daemon program.

    -
+

Web Interface

-

CUPS Commands

+

The web interface is supported by five CGI programs. Table 1 describes the purpose of each of the programs.

-

CUPS provides the cupsaccept(8), cupsaddsmb(8), cupsdisable(8), cupsenable(8), cupsreject(8), cupstestppd(1), lpinfo(8), and lppasswd(1) commands. The cupsaccept, cupsdisable, cupsenable, and cupsreject commands correspond to the System V accept, disable, enable, and reject commands but have been renamed to avoid confusion and conflicts with the bash(1) internal enable command of the same name.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1: CGI Programs
ProgramLocationDescription
admin.cgi/adminProvides all of the administrative functions
classes.cgi/classesLists classes and provides class management functions
help.cgi/helpProvides access to online help documents
jobs.cgi/jobsLists jobs and provides job management functions
printers.cgi/printersLists printers and provides printer management functions
-

LPD Support

+

Notifiers

-

LPD client support is provided via the cups-lpd(8) program. Incoming LPD requests are accepted on TCP port 515 by the local inetd(8), launchd(8), or xinetd(8) process and forwarded to the cups-lpd program for conversion to the corresponding IPP request(s).

+

Notifiers (notifier(7)) provide the means for sending asynchronous event notifications from the scheduler. Notifiers are executed with the recipient information on the command-line and the event data on the standard input. For example:

-

The cups-lpd program conforms, for the most part, to RFC 1179: Line Printer Daemon Protocol, but does not enforce the privileged source port restriction specified in that document. In addition, the banner page and output format options are usually overridden via command-line options to the cups-lpd program when it is invoked by the corresponding super-daemon program.

- -

Web Interface

- -

The web interface is supported by five CGI programs. Table 1 describes the purpose of each of the programs.

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Table 1: CGI Programs
ProgramLocationDescription
admin.cgi/adminProvides all of the administrative functions
classes.cgi/classesLists classes and provides class management functions
help.cgi/helpProvides access to online help documents
jobs.cgi/jobsLists jobs and provides job management functions
printers.cgi/printersLists printers and provides printer management functions
- -

Notifiers

- -

Notifiers (notifier(7)) provide the means for sending asynchronous event notifications from the scheduler. Notifiers are executed with the recipient information on the command-line and the event data on the standard input. For example:

- -
+
 CUPS_SERVERBIN/notifier/foo recipient user-data
-
- -

CUPS includes two notifiers: mailto to provide SMTP-based email notifications and rss to provide Really Simple Syndication ("RSS") notifications from the scheduler. Additional notifiers can be installed in the notifier directory as needed to support other methods.

- -

Filters

- -

Filters (filter(7)) convert job files into a printable format. Multiple filters are run, as needed, to convert from the job file format to the printable format. A filter program reads from the standard input or from a file if a filename is supplied. All filters must support a common set of options including printer name, job ID, username, job title, number of copies, and job options. All output is sent to the standard output.

- -

CUPS provides filters for printing text, PostScript, PDF, HP-GL/2, and many types of image files. CUPS also provides printer driver filters for HP-PCL, ESC/P, and several types of label printers. Additional filters can be registered with CUPS via mime.convs and PPD files.

- -

Port Monitors

- -

Port monitors handle the device- and channel-specific data formatting for a printer. Port monitors use the same interface as filters.

- -

CUPS includes two port monitors: the bcp port monitor which supports the PostScript Binary Communications Protocol ("BCP") and the tbcp port monitor which supports the PostScript Tagged Binary Communications Protocol ("TBCP"). Additional port monitors can be registered in PPD files.

- -

Backends

- -

Backends (backend(7)) send print data to the printer and enumerate available printers/devices as needed. Backends use the same interface as filters.

- -

CUPS includes backends for AppSocket (JetDirect), IPP, LPD, and USB connections and DNS-SD and SNMP for discovery. Additional backends can be added as needed without additional configuration.

- - -

Programming Interfaces

- -

CUPS makes use of several general-purpose libraries to provide its printing services. Unlike the rest of CUPS, the libraries are provided under the terms of the GNU LGPL so they may be used by non-GPL applications.

+
-

CUPS Library (libcups)

+

CUPS includes two notifiers: mailto to provide SMTP-based email notifications and rss to provide Really Simple Syndication ("RSS") notifications from the scheduler. Additional notifiers can be installed in the notifier directory as needed to support other methods.

-

The CUPS library contains all of the core HTTP and IPP communications code as well as convenience functions for queuing print jobs, getting printer information, accessing resources via HTTP and IPP, and manipulating PPD files. The scheduler and all commands, filters, and backends use this library.

+

Filters

-

CUPS CGI Library (libcupscgi)

+

Filters (filter(7)) convert job files into a printable format. Multiple filters are run, as needed, to convert from the job file format to the printable format. A filter program reads from the standard input or from a file if a filename is supplied. All filters must support a common set of options including printer name, job ID, username, job title, number of copies, and job options. All output is sent to the standard output.

-

The CUPS CGI library provides all of the web interface support functions. It is used by the CGI programs to provide the CUPS web interface.

+

CUPS provides filters for printing text, PostScript, PDF, HP-GL/2, and many types of image files. CUPS also provides printer driver filters for HP-PCL, ESC/P, and several types of label printers. Additional filters can be registered with CUPS via mime.convs and PPD files.

-

CUPS Driver Library (libcupsdriver)

+

Port Monitors

-

The CUPS driver library provides access to the dithering, color conversion, and helper functions used by the CUPS sample printer drivers.

+

Port monitors handle the device- and channel-specific data formatting for a printer. Port monitors use the same interface as filters.

-

CUPS Imaging Library (libcupsimage)

+

CUPS includes two port monitors: the bcp port monitor which supports the PostScript Binary Communications Protocol ("BCP") and the tbcp port monitor which supports the PostScript Tagged Binary Communications Protocol ("TBCP"). Additional port monitors can be registered in PPD files.

-

The CUPS imaging library provides functions for managing large images, doing colorspace conversion and color management, scaling images for printing, and managing raster page streams. It is used by the CUPS image file filters, the PostScript RIP, and all raster printers drivers.

+

Backends

-

CUPS MIME Library (libcupsmime)

+

Backends (backend(7)) send print data to the printer and enumerate available printers/devices as needed. Backends use the same interface as filters.

-

The CUPS MIME library provides file typing and conversion functions and is used by the scheduler and cupsfilter(8) command to auto-type and convert print files to a printable format.

+

CUPS includes backends for AppSocket (JetDirect), IPP, LPD, and USB connections and DNS-SD and SNMP for discovery. Additional backends can be added as needed without additional configuration.

-

CUPS PPD Compiler Library (libcupsppdc)

-

The CUPS PPD compiler library provides access to driver information files and is used by the PPD compiler tools as well as the cups-driverd(8) helper program to generate PPD files and message catalogs for localization.

+

Programming Interfaces

+

The CUPS library (libcups) contains all of the core HTTP and IPP communications code as well as convenience functions for queuing print jobs, getting printer information, accessing resources via HTTP and IPP, manipulating PPD files, and reading and writing raster streams. The scheduler and all commands, filters, and backends use this library.

- - + + diff --git a/man/backend.7 b/man/backend.7 index 5a7032650f..15901b4fd9 100644 --- a/man/backend.7 +++ b/man/backend.7 @@ -1,13 +1,14 @@ .\" .\" Backend man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH backend 7 "CUPS" "26 April 2019" "Apple Inc." +.TH backend 7 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME backend \- cups backend transmission interfaces .SH SYNOPSIS @@ -217,4 +218,4 @@ Printers that do not support IPP can be supported using applications such as .br CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cancel.1 b/man/cancel.1 index 28e089704e..3ae0b02c3a 100644 --- a/man/cancel.1 +++ b/man/cancel.1 @@ -1,13 +1,14 @@ .\" .\" cancel man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cancel 1 "CUPS" "26 April 2019" "Apple Inc." +.TH cancel 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cancel \- cancel jobs .SH SYNOPSIS @@ -88,4 +89,4 @@ Administrators wishing to prevent unauthorized cancellation of jobs via the \fI\ .BR lpstat (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/classes.conf.5 b/man/classes.conf.5 index 62b7b731ed..ad9ea87c88 100644 --- a/man/classes.conf.5 +++ b/man/classes.conf.5 @@ -1,13 +1,14 @@ .\" .\" classes.conf man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH classes.conf 5 "CUPS" "26 April 2019" "Apple Inc." +.TH classes.conf 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME classes.conf \- class configuration file for cups .SH DESCRIPTION @@ -27,4 +28,4 @@ The name, location, and format of this file are an implementation detail that wi .BR subscriptions.conf (5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/client.conf.5 b/man/client.conf.5 index 4dbf0c49b5..5c042b9f76 100644 --- a/man/client.conf.5 +++ b/man/client.conf.5 @@ -1,13 +1,14 @@ .\" .\" client.conf man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH client.conf 5 "CUPS" "15 October 2019" "Apple Inc." +.TH client.conf 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME client.conf \- client configuration file for cups (deprecated on macos) .SH DESCRIPTION @@ -140,4 +141,4 @@ On Linux and other systems using GNU TLS, the \fI/etc/cups/ssl/site.crl\fR file, .BR default (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cups-config.1 b/man/cups-config.1 index 0671f89e42..531ed47278 100644 --- a/man/cups-config.1 +++ b/man/cups-config.1 @@ -1,13 +1,14 @@ .\" .\" cups-config man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cups-config 1 "CUPS" "26 April 2019" "Apple Inc." +.TH cups-config 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cups\-config \- get cups api, compiler, directory, and link information. .SH SYNOPSIS @@ -106,4 +107,4 @@ Formerly used to add the CUPS imaging library to the list of libraries. .BR cups (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cups-files.conf.5 b/man/cups-files.conf.5 index 1cfb6273cc..dab8cce71f 100644 --- a/man/cups-files.conf.5 +++ b/man/cups-files.conf.5 @@ -1,14 +1,14 @@ .\" .\" cups-files.conf man page for CUPS. .\" -.\" Copyright © 2020 by Michael R Sweet +.\" Copyright © 2020-2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cups-files.conf 5 "CUPS" "14 November 2020" "Apple Inc." +.TH cups-files.conf 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cups\-files.conf \- file and directory configuration file for cups .SH DESCRIPTION @@ -296,4 +296,4 @@ CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT Copyright \[co] 2020 by Michael R Sweet .br -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cups-lpd.8 b/man/cups-lpd.8 index d84059591f..5ed5004c88 100644 --- a/man/cups-lpd.8 +++ b/man/cups-lpd.8 @@ -1,14 +1,14 @@ .\" .\" cups-lpd man page for CUPS. .\" -.\" Copyright © 2020 by Michael R Sweet +.\" Copyright © 2020-2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cups-lpd 8 "CUPS" "14 November 2020" "Apple Inc." +.TH cups-lpd 8 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cups-lpd \- receive print jobs and report printer status to lpd clients (deprecated) .SH SYNOPSIS @@ -115,4 +115,4 @@ CUPS Online Help (http://localhost:631/help), RFC 2569 .SH COPYRIGHT Copyright \[co] 2020 by Michael R Sweet -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cups-snmp.8 b/man/cups-snmp.8 index 19bda26970..a271881e6d 100644 --- a/man/cups-snmp.8 +++ b/man/cups-snmp.8 @@ -1,12 +1,13 @@ .\" .\" SNMP backend man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2012-2019 by Apple Inc. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cups-snmp 8 "CUPS" "26 April 2019" "Apple Inc." +.TH cups-snmp 8 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME snmp \- cups snmp backend (deprecated) .SH SYNOPSIS @@ -53,4 +54,4 @@ The CUPS SNMP backend uses the information from the Host, Printer, and Port Moni .BR lpinfo (8), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cups-snmp.conf.5 b/man/cups-snmp.conf.5 index 4ca20f24f3..7680fa1a55 100644 --- a/man/cups-snmp.conf.5 +++ b/man/cups-snmp.conf.5 @@ -1,13 +1,14 @@ .\" .\" snmp.conf man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH snmp.conf 5 "CUPS" "26 April 2019" "Apple Inc." +.TH snmp.conf 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME snmp.conf \- snmp configuration file for cups (deprecated) .SH DESCRIPTION @@ -63,4 +64,4 @@ Printers that do not support IPP can be supported using applications such as .BR cups-snmp (8), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cups.1 b/man/cups.1 index 751ad9a44c..7b1c6b24a6 100644 --- a/man/cups.1 +++ b/man/cups.1 @@ -1,13 +1,14 @@ .\" .\" cups (intro) man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cups 1 "CUPS" "26 April 2019" "Apple Inc." +.TH cups 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cups \- a standards-based, open source printing system .SH DESCRIPTION @@ -51,8 +52,8 @@ commands to add printers to Additionally, your operating system may include graphical user interfaces or automatically create printer queues when you connect a printer to your computer. .SS HOW DO I GET HELP? The -.B CUPS -web site (http://www.CUPS.org) provides access to the +.B OpenPrinting CUPS +web site (https://openprinting.github.io/cups) provides access to the .I cups and .I cups-devel @@ -137,7 +138,7 @@ Printers that do not support IPP can be supported using applications such as .BR lpq (1), .BR lpstat (1), CUPS Online Help (http://localhost:631/help), -CUPS Web Site (http://www.CUPS.org), +OpenPrinting CUPS Web Site (https://openprinting.github.io/cups), PWG Internet Printing Protocol Workgroup (http://www.pwg.org/ipp) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cupsaccept.8 b/man/cupsaccept.8 index c855d823d0..a9fb494c36 100644 --- a/man/cupsaccept.8 +++ b/man/cupsaccept.8 @@ -1,13 +1,14 @@ .\" .\" cupsaccept/reject man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cupsaccept 8 "CUPS" "26 April 2019" "Apple Inc." +.TH cupsaccept 8 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cupsaccept/cupsreject \- accept/reject jobs sent to a destination .SH SYNOPSIS @@ -83,4 +84,4 @@ Finally, the CUPS versions may ask the user for an access password depending on .br CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cupsctl.8 b/man/cupsctl.8 index 791954c194..6dbccc259e 100644 --- a/man/cupsctl.8 +++ b/man/cupsctl.8 @@ -1,13 +1,14 @@ .\" .\" cupsctl man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 2007 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cupsctl 8 "CUPS" "26 April 2019" "Apple Inc." +.TH cupsctl 8 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cupsctl \- configure cupsd.conf options .SH SYNOPSIS @@ -95,4 +96,4 @@ You cannot set the Listen or Port directives using \fBcupsctl\fR. .br CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cupsd-helper.8 b/man/cupsd-helper.8 index bfd2e456e7..de4b4f2f44 100644 --- a/man/cupsd-helper.8 +++ b/man/cupsd-helper.8 @@ -1,13 +1,14 @@ .\" .\" cupsd-helper man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright 2007-2019 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cupsd-helper 8 "CUPS" "26 April 2019" "Apple Inc." +.TH cupsd-helper 8 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cupsd\-helper \- cupsd helper programs (deprecated) .SH SYNOPSIS @@ -87,4 +88,4 @@ Printers that do not support IPP can be supported using applications such as .BR ppdcfile (5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cupsd-logs.5 b/man/cupsd-logs.5 index 2070be9a56..4093c20f8f 100644 --- a/man/cupsd-logs.5 +++ b/man/cupsd-logs.5 @@ -1,13 +1,14 @@ .\" .\" cupsd-logs man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cupsd-logs 5 "CUPS" "26 April 2019" "Apple Inc." +.TH cupsd-logs 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cupsd\-logs \- cupsd log files (access_log, error_log, and page_log) .SH DESCRIPTION @@ -219,4 +220,4 @@ The \fIsides\fR field contains a copy of the sides attribute provided with the I .BR cups-files.conf (5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cupsd.8 b/man/cupsd.8 index e671ae3287..07bd683393 100644 --- a/man/cupsd.8 +++ b/man/cupsd.8 @@ -1,13 +1,14 @@ .\" .\" cupsd man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cupsd 8 "CUPS" "26 April 2019" "Apple Inc." +.TH cupsd 8 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cupsd \- cups scheduler .SH SYNOPSIS @@ -123,4 +124,4 @@ in the foreground with a test configuration file called .BR systemd (8), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cupsd.conf.5 b/man/cupsd.conf.5 index 49ab745c62..faccaf6288 100644 --- a/man/cupsd.conf.5 +++ b/man/cupsd.conf.5 @@ -1,14 +1,14 @@ .\" .\" cupsd.conf man page for CUPS. .\" -.\" Copyright © 2020 by Michael R Sweet +.\" Copyright © 2020-2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cupsd.conf 5 "CUPS" "28 November 2020" "Apple Inc." +.TH cupsd.conf 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cupsd.conf \- server configuration file for cups .SH DESCRIPTION @@ -906,4 +906,4 @@ CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT Copyright \[co] 2020 by Michael R Sweet .br -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cupsenable.8 b/man/cupsenable.8 index aa4ec4e79f..8306358631 100644 --- a/man/cupsenable.8 +++ b/man/cupsenable.8 @@ -1,13 +1,14 @@ .\" .\" cupsenable/cupsdisable man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cupsenable 8 "CUPS" "26 April 2019" "Apple Inc." +.TH cupsenable 8 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cupsdisable, cupsenable \- stop/start printers and classes .SH SYNOPSIS @@ -94,4 +95,4 @@ This differs from the System V versions which require the root user to execute t .BR lpstat (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cupsfilter.8 b/man/cupsfilter.8 index c655c21c04..c84765636a 100644 --- a/man/cupsfilter.8 +++ b/man/cupsfilter.8 @@ -1,12 +1,13 @@ .\" .\" cupsfilter man page for CUPS. .\" -.\" Copyright 2007-2019 by Apple Inc. +.\" Copyright © 2021 by OpenPrinting. +.\" Copyright © 2007-2019 by Apple Inc. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cupsfilter 8 "CUPS" "26 April 2019" "Apple Inc." +.TH cupsfilter 8 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME cupsfilter \- convert a file to another format using cups filters (deprecated) .SH SYNOPSIS @@ -136,4 +137,4 @@ The following command will generate a PDF preview of job 42 for a printer named .BR mime.types (7), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/cupstestppd.1 b/man/cupstestppd.1 index f91be167a1..6d12d83c4f 100644 --- a/man/cupstestppd.1 +++ b/man/cupstestppd.1 @@ -1,15 +1,16 @@ .\" .\" cupstestppd man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH cupstestppd 1 "CUPS" "26 April 2019" "Apple Inc." +.TH cupstestppd 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME -cupstestppd \- test conformance of ppd files +cupstestppd \- test conformance of ppd files (deprecated) .SH SYNOPSIS .B cupstestppd [ @@ -144,4 +145,4 @@ Printers that do not support IPP can be supported using applications such as CUPS Online Help (http://localhost:631/help), Adobe PostScript Printer Description File Format Specification, Version 4.3. .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/filter.7 b/man/filter.7 index dbc3150c88..9cfac51ecc 100644 --- a/man/filter.7 +++ b/man/filter.7 @@ -1,13 +1,14 @@ .\" .\" filter man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2007 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH filter 7 "CUPS" "26 April 2019" "Apple Inc." +.TH filter 7 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME filter \- cups file conversion filter interface .SH SYNOPSIS @@ -218,4 +219,4 @@ program to use the appropriate filters to do the conversions you need. .br CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/ippevepcl.7 b/man/ippevepcl.7 index 738e87cd9a..3cf9e0c3ca 100644 --- a/man/ippevepcl.7 +++ b/man/ippevepcl.7 @@ -1,12 +1,13 @@ .\" .\" ippevepcl/ps man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2019 by Apple Inc. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH ippevepcl/ps 7 "CUPS" "24 April 2019" "Apple Inc." +.TH ippevepcl/ps 7 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME ippevepcl/ps \- pcl and postscript print commands for ippeveprinter .SH SYNOPSIS @@ -45,4 +46,4 @@ program. .SH SEE ALSO .BR ippeveprinter (8) .SH COPYRIGHT -Copyright \[co] 2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/ippeveprinter.1 b/man/ippeveprinter.1 index fa32efb2e5..3c6cad0bd7 100644 --- a/man/ippeveprinter.1 +++ b/man/ippeveprinter.1 @@ -1,12 +1,13 @@ .\" .\" ippeveprinter man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2014-2019 by Apple Inc. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH ippeveprinter 1 "CUPS" "2 December 2019" "Apple Inc." +.TH ippeveprinter 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME ippeveprinter \- an ipp everywhere printer application for cups .SH SYNOPSIS @@ -270,4 +271,4 @@ command whenever a job is sent to the server: .BR ippeveps (7), PWG Internet Printing Protocol Workgroup (http://www.pwg.org/ipp) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/ippfind.1 b/man/ippfind.1 index 32f2e6f8b0..69bb978bab 100644 --- a/man/ippfind.1 +++ b/man/ippfind.1 @@ -1,12 +1,13 @@ .\" .\" ippfind man page. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2013-2019 by Apple Inc. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH ippfind 1 "ippsample" "26 April 2019" "Apple Inc." +.TH ippfind 1 "ippsample" "2021-02-28" "OpenPrinting" .SH NAME ippfind \- find internet printing protocol printers .SH SYNOPSIS @@ -255,4 +256,4 @@ Similarly, to send a PostScript test page to every PostScript printer, run: .SH SEE ALSO .BR ipptool (1) .SH COPYRIGHT -Copyright \[co] 2013-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/ipptool.1 b/man/ipptool.1 index ce858da596..1ef93fe412 100644 --- a/man/ipptool.1 +++ b/man/ipptool.1 @@ -1,12 +1,13 @@ .\" .\" ipptool man page. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2010-2019 by Apple Inc. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH ipptool 1 "CUPS" "26 April 2019" "Apple Inc." +.TH ipptool 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME ipptool \- perform internet printing protocol requests .SH SYNOPSIS @@ -249,4 +250,4 @@ IANA IPP Registry (http://www.iana.org/assignments/ipp\-registrations), PWG Internet Printing Protocol Workgroup (http://www.pwg.org/ipp) RFC 8011 (http://tools.ietf.org/html/rfc8011), .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/ipptoolfile.5 b/man/ipptoolfile.5 index 700101773c..b3de81630c 100644 --- a/man/ipptoolfile.5 +++ b/man/ipptoolfile.5 @@ -1,12 +1,13 @@ .\" .\" ipptoolfile man page. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2010-2019 by Apple Inc. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH ipptoolfile 5 "CUPS" "15 August 2019" "Apple Inc." +.TH ipptoolfile 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME ipptoolfile \- ipptool file format .SH DESCRIPTION @@ -652,4 +653,4 @@ IANA IPP Registry (http://www.iana.org/assignments/ipp-registrations), PWG Internet Printing Protocol Workgroup (http://www.pwg.org/ipp), RFC 8011 (http://tools.ietf.org/html/rfc8011) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/lp.1 b/man/lp.1 index cbea3b8409..99f92562ed 100644 --- a/man/lp.1 +++ b/man/lp.1 @@ -1,13 +1,14 @@ .\" .\" lp man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH lp 1 "CUPS" "26 April 2019" "Apple Inc." +.TH lp 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME lp \- print files .SH SYNOPSIS @@ -226,4 +227,4 @@ Print a presentation document 2-up to a printer called "bar": .BR lpstat (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/lpadmin.8 b/man/lpadmin.8 index 1b8c91ba42..452054db5e 100644 --- a/man/lpadmin.8 +++ b/man/lpadmin.8 @@ -1,13 +1,14 @@ .\" .\" lpadmin man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH lpadmin 8 "CUPS" "26 April 2019" "Apple Inc." +.TH lpadmin 8 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME lpadmin \- configure cups printers and classes .SH SYNOPSIS @@ -228,4 +229,4 @@ Create an IPP Everywhere print queue: .BR lpoptions (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/lpc.8 b/man/lpc.8 index 6fd6ff5b84..5bf01e303e 100644 --- a/man/lpc.8 +++ b/man/lpc.8 @@ -1,13 +1,14 @@ .\" .\" lpc man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH lpc 8 "CUPS" "26 April 2019" "Apple Inc." +.TH lpc 8 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME lpc \- line printer control program (deprecated) .SH SYNOPSIS @@ -55,4 +56,4 @@ command or another CUPS-compatible client with that functionality. .BR lpstat (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/lpinfo.8 b/man/lpinfo.8 index ce42cc36ef..7d6779d217 100644 --- a/man/lpinfo.8 +++ b/man/lpinfo.8 @@ -1,13 +1,14 @@ .\" .\" lpinfo man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH lpinfo 8 "CUPS" "26 April 2019" "Apple Inc." +.TH lpinfo 8 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME lpinfo \- show available devices or drivers (deprecated) .SH SYNOPSIS @@ -122,4 +123,4 @@ Printers that do not support IPP can be supported using applications such as .BR lpadmin (8), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/lpmove.8 b/man/lpmove.8 index 3f587e262f..6721bdb3cf 100644 --- a/man/lpmove.8 +++ b/man/lpmove.8 @@ -1,13 +1,14 @@ .\" .\" lpmove man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH lpmove 8 "CUPS" "26 April 2019" "Apple Inc." +.TH lpmove 8 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME lpmove \- move a job or all jobs to a new destination .SH SYNOPSIS @@ -71,4 +72,4 @@ Move all jobs from "oldprinter" to "newprinter": .br CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/lpoptions.1 b/man/lpoptions.1 index a34fd01dc0..e7ee9bbb57 100644 --- a/man/lpoptions.1 +++ b/man/lpoptions.1 @@ -1,13 +1,14 @@ .\" .\" lpoptions man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH lpoptions 1 "CUPS" "26 April 2019" "Apple Inc." +.TH lpoptions 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME lpoptions \- display or set printer options and defaults .SH SYNOPSIS @@ -115,4 +116,4 @@ The \fBlpoptions\fR command is unique to CUPS. .BR lprm (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/lpq.1 b/man/lpq.1 index 09582d7981..f971b77db6 100644 --- a/man/lpq.1 +++ b/man/lpq.1 @@ -1,13 +1,14 @@ .\" .\" lpq man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH lpq 1 "CUPS" "26 April 2019" "Apple Inc." +.TH lpq 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME lpq \- show printer queue status .SH SYNOPSIS @@ -61,4 +62,4 @@ Requests a more verbose (long) reporting format. .BR lpstat (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/lpr.1 b/man/lpr.1 index f367cd97c3..eb50a3639e 100644 --- a/man/lpr.1 +++ b/man/lpr.1 @@ -1,13 +1,14 @@ .\" .\" lpr man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH lpr 1 "CUPS" "26 April 2019" "Apple Inc." +.TH lpr 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME lpr \- print files .SH SYNOPSIS @@ -178,4 +179,4 @@ Print a presentation document 2-up to a printer called "foo": .BR lpstat (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/lprm.1 b/man/lprm.1 index 8c2bf9c2e8..ea667e645f 100644 --- a/man/lprm.1 +++ b/man/lprm.1 @@ -1,13 +1,14 @@ .\" .\" lprm man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH lprm 1 "CUPS" "26 April 2019" "Apple Inc." +.TH lprm 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME lprm \- cancel print jobs .SH SYNOPSIS @@ -79,4 +80,4 @@ Cancel all jobs: .BR lpstat (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/lpstat.1 b/man/lpstat.1 index 0b5c00b37c..776677a6d5 100644 --- a/man/lpstat.1 +++ b/man/lpstat.1 @@ -1,12 +1,13 @@ .\" .\" lpstat man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright 2007-2019 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more information. .\" -.TH lpstat 1 "CUPS" "26 April 2019" "Apple Inc." +.TH lpstat 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME lpstat \- print cups status information .SH SYNOPSIS @@ -145,4 +146,4 @@ The Solaris \fI\-f\fR, \fI\-P\fR, and \fI\-S\fR options are silently ignored. .BR lprm (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/mailto.conf.5 b/man/mailto.conf.5 index c879222c23..17ef91b52e 100644 --- a/man/mailto.conf.5 +++ b/man/mailto.conf.5 @@ -1,13 +1,14 @@ .\" .\" mailto.conf man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH mailto.conf 5 "CUPS" "26 April 2019" "Apple Inc." +.TH mailto.conf 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME mailto.conf \- configuration file for cups email notifier .SH DESCRIPTION @@ -41,4 +42,4 @@ Specifies a prefix string for the subject line of an email notification. .BR cupsd (8), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/mime.convs.5 b/man/mime.convs.5 index 25a6f7653e..e1b333217e 100644 --- a/man/mime.convs.5 +++ b/man/mime.convs.5 @@ -1,13 +1,14 @@ .\" .\" mime.convs man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH mime.convs 5 "CUPS" "26 April 2019" "Apple Inc." +.TH mime.convs 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME mime.convs \- mime type conversion file for cups (deprecated) .SH DESCRIPTION @@ -59,4 +60,4 @@ Printers that do not support IPP can be supported using applications such as .BR mime.types (5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/mime.types.5 b/man/mime.types.5 index 7e83de16a9..9d0ec84dd4 100644 --- a/man/mime.types.5 +++ b/man/mime.types.5 @@ -1,13 +1,14 @@ .\" .\" mime.types man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH mime.types 5 "CUPS" "26 April 2019" "Apple Inc." +.TH mime.types 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME mime.types \- mime type description file for cups .SH DESCRIPTION @@ -105,4 +106,4 @@ Define two MIME media types for raster data, with one being a subset with higher .BR mime.convs (5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/notifier.7 b/man/notifier.7 index 1ab226c408..a27a48f2bf 100644 --- a/man/notifier.7 +++ b/man/notifier.7 @@ -1,13 +1,14 @@ .\" .\" notifier man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2007 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH notifier 7 "CUPS" "26 April 2019" "Apple Inc." +.TH notifier 7 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME notifier \- cups notification interface .SH SYNOPSIS @@ -33,4 +34,4 @@ Notifiers inherit the environment and can use the logging mechanism documented i .BR filter (7), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/ppdc.1 b/man/ppdc.1 index fdc065fa4b..a9feb8b765 100644 --- a/man/ppdc.1 +++ b/man/ppdc.1 @@ -1,13 +1,14 @@ .\" .\" ppdc man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2007 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH ppdc 1 "CUPS" "28 October 2020" "Apple Inc." +.TH ppdc 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME ppdc \- cups ppd compiler (deprecated) .SH SYNOPSIS @@ -99,4 +100,4 @@ Printers that do not support IPP can be supported using applications such as .BR ppdcfile (5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/ppdcfile.5 b/man/ppdcfile.5 index 9165ee6f60..55b3ab54a8 100644 --- a/man/ppdcfile.5 +++ b/man/ppdcfile.5 @@ -1,13 +1,14 @@ .\" .\" ppdcfile man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2007 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH ppdcfile 5 "CUPS" "26 April 2019" "Apple Inc." +.TH ppdcfile 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME ppdcfile \- cups ppd compiler source file format (deprecated) .SH DESCRIPTION @@ -158,4 +159,4 @@ Printers that do not support IPP can be supported using applications such as .BR ppdpo (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/ppdhtml.1 b/man/ppdhtml.1 index 8399ecab48..79582013b4 100644 --- a/man/ppdhtml.1 +++ b/man/ppdhtml.1 @@ -1,13 +1,14 @@ .\" .\" ppdhtml man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2007 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH ppdhtml 1 "CUPS" "26 April 2019" "Apple Inc." +.TH ppdhtml 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME ppdhtml \- cups html summary generator (deprecated) .SH SYNOPSIS @@ -44,4 +45,4 @@ Printers that do not support IPP can be supported using applications such as .BR ppdpo (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/ppdi.1 b/man/ppdi.1 index a57bae9b15..6454f457d0 100644 --- a/man/ppdi.1 +++ b/man/ppdi.1 @@ -1,13 +1,14 @@ .\" .\" ppdi man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2007 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH ppdi 1 "CUPS" "26 April 2019" "Apple Inc." +.TH ppdi 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME ppdi \- import ppd files (deprecated) .SH SYNOPSIS @@ -51,4 +52,4 @@ Printers that do not support IPP can be supported using applications such as .BR ppdcfile (5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/ppdmerge.1 b/man/ppdmerge.1 index eb23dad340..fd085441df 100644 --- a/man/ppdmerge.1 +++ b/man/ppdmerge.1 @@ -1,13 +1,14 @@ .\" .\" ppdmerge man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2007 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH ppdmerge 1 "CUPS" "26 April 2019" "Apple Inc." +.TH ppdmerge 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME ppdmerge \- merge ppd files (deprecated) .SH SYNOPSIS @@ -47,4 +48,4 @@ Merging of different device PPDs will yield unpredictable results. .BR ppdcfile (5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/ppdpo.1 b/man/ppdpo.1 index 3d1ea56dd6..b7830990f2 100644 --- a/man/ppdpo.1 +++ b/man/ppdpo.1 @@ -1,13 +1,14 @@ .\" .\" ppdpo man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2007 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH ppdpo 1 "CUPS" "26 April 2019" "Apple Inc." +.TH ppdpo 1 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME ppdpo \- ppd message catalog generator (deprecated) .SH SYNOPSIS @@ -51,4 +52,4 @@ Printers that do not support IPP can be supported using applications such as .BR ppdcfile(5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/printers.conf.5 b/man/printers.conf.5 index c628024fe0..c88dba9edd 100644 --- a/man/printers.conf.5 +++ b/man/printers.conf.5 @@ -1,12 +1,13 @@ .\" .\" printers.conf man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright 2007-2019 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more information. .\" -.TH printers.conf 5 "CUPS" "26 April 2019" "Apple Inc." +.TH printers.conf 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME printers.conf \- printer configuration file for cups .SH DESCRIPTION @@ -25,4 +26,4 @@ The name, location, and format of this file are an implementation detail that wi .BR subscriptions.conf (5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/man/subscriptions.conf.5 b/man/subscriptions.conf.5 index 1791a3e2c8..5ff7a2a7ed 100644 --- a/man/subscriptions.conf.5 +++ b/man/subscriptions.conf.5 @@ -1,13 +1,14 @@ .\" .\" subscriptions.conf man page for CUPS. .\" +.\" Copyright © 2021 by OpenPrinting. .\" Copyright © 2007-2019 by Apple Inc. .\" Copyright © 1997-2006 by Easy Software Products. .\" .\" Licensed under Apache License v2.0. See the file "LICENSE" for more .\" information. .\" -.TH subscriptions.conf 5 "CUPS" "26 April 2019" "Apple Inc." +.TH subscriptions.conf 5 "CUPS" "2021-02-28" "OpenPrinting" .SH NAME subscriptions.conf \- subscription configuration file for cups .SH DESCRIPTION @@ -28,4 +29,4 @@ The name, location, and format of this file are an implementation detail that wi .BR printers.conf (5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2019 by Apple Inc. +Copyright \[co] 2021 by OpenPrinting. diff --git a/scripts/copydocs b/scripts/copydocs new file mode 100755 index 0000000000..7ff56df366 --- /dev/null +++ b/scripts/copydocs @@ -0,0 +1,48 @@ +#!/bin/sh +# +# Script to copy the CUPS online help files to a CUPS web site subdirectory. +# The normal HTML headers are replaced by Jekyll headers. +# +# Usage: scripts/copydocs DESTINATION-DIR +# + +usage() { + echo "Usage: scripts/copydocs DESTINATION-DIR" + exit 1 +} + +if test ! -d doc/help; then + echo "Need to run the script from the root source directory." + usage +fi + +if test $# != 1; then + echo "Expected destination directory on command-line." + usage +fi + +for file in doc/help/*.html; do + dest="$1/$(basename $file)" + title="$(grep -i '' $file | sed -e '1,$s/^.*<title>//i' -e '1,$s/<\/title>.*$//i')" + + echo "$file to $dest: $title" + case "$(basename $file)" in + api-*) + cp $file "$dest" + ;; + cupspm.html) + cp $file $(basename $file .html).epub "$1" + ;; + *) + if grep -q '<H1 CLASS=' "$file"; then + (echo "---"; echo "title: $title"; echo "layout: doc"; echo "---"; sed -e '1,/<H1 CLASS=/d' -e '/<\/BODY>/,$d' <"$file") >"$dest" + elif grep -q '<BODY>' "$file"; then + (echo "---"; echo "title: $title"; echo "layout: doc"; echo "---"; sed -e '1,/<BODY>/d' -e '/<\/BODY>/,$d' <"$file") >"$dest" + elif grep -q '<h1 class=' "$file"; then + (echo "---"; echo "title: $title"; echo "layout: doc"; echo "---"; sed -e '1,/<h1 class=/d' -e '/<\/body>/,$d'<"$file") >"$dest" + else + (echo "---"; echo "title: $title"; echo "layout: doc"; echo "---"; sed -e '1,/<body>/d' -e '/<\/body>/,$d' <"$file") >"$dest" + fi + ;; + esac +done