The IPP Listening Service library (libipp-listener) – Is where the bulk of the protocol request processing occurs. The library reads and validates requests by using the core IPP library, libipp-core.so. After the request has been validated, the request is translated to a series of client API calls. The result of these calls are then translated into an appropriate IPP response by using the core IPP library. The response is returned to the client system by the web server. The interface to the listening service library is a project private interface that is specific to the IPP server-side implementation.
The IPP Core library (libipp-core.so) – Is shared between client and server operation. The IPP core library contains routines that enable it to read and write protocol requests and responses. The library converts IPP request and response data between the standard binary representation and a set of common data structures. Ultimately, this common data representation is used in translating requests to and from a print service neutral representation and passed between a generic printing interface, libpapi.so. Since both client-side and server-side IPP support must perform this function, this is shared by clients and servers.
The PAPI library (libpapi.so) – Provides applications a print service independent means of interacting with a print service or protocol. In this instance, it provides the Apache IPP listening service a means of interacting with the local LP service. It determines the print service to interact with based on client-side queue configuration data stored in the printers.conf configuration database.