Here is the draft for how to register Printer objects using LDAP. I based this
on my reading of RFCs 1777, 1823, 1959 and 1960.
*** I will be at home so please send comments to the IPP mailing list and
*** cc mccarter at mail.utexas.edu so I receive the comments at home. Thanks.
4.3 Printer Object Directory Entry and Location
To allow directory users to locate an IPP printer, a corresponding Printer
object must be defined as a directory entry. The directory entry includes
the name of the entry and the attributes as defined in "4.2 Directory Entry
Schema". An example of how to define a directory entry for a Printer object
using LDAP is given to assist the reader's understanding of this specification.
To create a Printer object directory entry using LDAP:
1. An administrator uses a program to create an entry for the Printer object
on a directory server that supports LDAP. The administrator defines the
Distinguished Name (dn) and the default subjective attributes for the
Printer object directory entry.
*** ISSUE: Should the administrator also define default objective
attributes or wait for the Printer object to initialize these attributes?
2. The Printer object invokes the ldap_open API to open a connection to the
Example: ld=ldap_open ("dir.host.name", LDAP_PORT)
where ld is the connection handle for subsequent LDAP APIs.
3. The Printer object invokes an ldap "bind" API to authenticate with the
Example: ldap_simple_bind_s (ld, dn, NULL) which does a simple
authentication without a password.
4. The Printer object invokes the ldap_modify or ldap_modify_s API to
define the objective attributes for the Printer object entry as
identified by is Distinguished Name (dn).
Example: ldap_modify_s (ld, dn, mods) where mods is a NULL-terminated
array of objective attributes and values to add or modify in the directory
5. The Printer object invokes the ldap_unbind API to close the connection
to the directory server.
Example: ldap_unbind (ld)
When one or more objective attributes are modified for a Printer object, the
Printer object repeats steps 2-5 to update the modified objective attributes
in its directory entry.
To locate a Printer object entry using LDAP, a program can use the ldap_search
or ldap_search_s API or a user can specify an LDAP URL. For example, to
locate all Printer objects that support duplex, a user can specify URL:
ISSUE: Should one filter the search for an object class of Printer? Do we
need to define this object class? If so, how?
Please refer to the following RFCs for more information on LDAP:
RFC 1777 - Lightweight Directory Access Protocol
RFC 1823 - The LDAP Application Program Interface
RFC 1959 - An LDAP URL Format
RFC 1960 - A String Representation of LDAP Search Filters