Filewatcher File Search File Search
Content Search
» » » » » papi-1.0_beta.tar.bz2 » Content »
pkg://papi-1.0_beta.tar.bz2:358460/papi-1.0_beta/  info  downloads


	$Id: README,v 1.2 2005/08/19 21:39:33 njacobs Exp $

This package contains implentations of the Free Standards Group (FSG)
Open Printing API (PAPI) (v1.0) and client software that uses it.
The implemenations of the API are designed so that they can be used
individually to support client application interaction with a particular
type of print service or together to interact with a variety of different
print service types.

If you plan on working on this software, it would be nice if you registered
with the "OpenPrinting" SourceForge project.  It's not required, but it
would be nice.  Just send mail to one of the project admins and we will
get you added.

The source is broken down as follows:

  source/bsd-sysv-commands (see docs/README.bsd-sysv-commands)
	Implementations of the BSD and SYSV printing commands layered on
	top of the PAPI.  The command implementation are intended to be
	reasonably faithful to their counterparts on a Solaris system.
	They should be reasonably faithful to pretty much any implementation
	of these commands.  This should allow them to be dropped on a system
	and used in place of any prior version of the commands without
	causing layered scripts and software to break.
	The commands covered are:
		BSD:	lpr(1b), lpq(1b), lprm(1b), lpc(1m)
		SYSV:	lp(1), lpstat(1), cancel(1), accept(1m), reject(1m),
			enable(1m), disable(1m)

  source/libpapi-common (see docs/README.libpapi-common)
	This directory contains some interfaces that are shared across
	PAPI implementations. This includes PAPI attribute support,
	strings, lists, and uris.  If it doesn't make sense now, read on
	and it probably will.

  source/libpapi-dynamic (see docs/README.libpapi-dynamic)
	This is a "meta" implementation of the PAPI.  It's sole purpose is
	currently to resolve queue names passed into API calls, potentially
	using a variety of name service (user, files, nis, nis+, ldap, ...)
	and call an appropriate PAPI implementation supporting the print
	service where the queue actually resides.

  source/libpapi-lpd (see docs/README.libpapi-lpd)
	This contains an implementation of the PAPI on top of RFC-1179(lpd)
	protocol.  Since the protocol  is very limitted in what it can do,
	PAPI functions supported are very limitted.  This support includes
	job submission, cancelation, query,  print queue query, and print
	queue purge.

	Since the protocol requires the client to connect from a reserved
	port in the range of XXX-XXX, the library makes use of a "helper"
	application to actually connect to the remote print service.  This
	enables unpriviliged applications to use the API and still communicate
	with a remote LPD server.  The helper application preforms some portion
	of the protocol interaction and returns a connected file descriptor to
	the calling application.
	On solaris, the fd is passed via a pipe and ioctl(SENDFD) on other
	platforms it is sent using sockets and sendmsg()/recvmsg().
	Also, on Solaris, the helper application uses privileges to reduce
	the ability to be exploited to gain additional privilege.  On other
	platforms, it uses seteuid()/setuid().  In both cases, it drops
	as much privilege as it can as soon as it can and perminantly drops
	all elevated privilege once it has it's reserved port.

  source/libpapi-ipp (see docs/README.libpapi-ipp)
	This contains an implementation of the PAPI on top of IPP.  The
	implementation makes use of standard IPP operations where available.
	Where no IPP operation is available, a CUPS extension is used.  This
	allows the IPP support to interact with a maximum set of IPP based
	print servers.
	The support makes use of a common IPP marshalling/unmarshalling
	library used by the Apache IPP listener (described below) for it's
	on-the-wire protocol support.  This library make use of a caller
	supplied http transport.

	This contain HTTP transport code pulled directly from libcups.  This
	transport code is used by libpapi-ipp ( to send/receive
	IPP requests/responses.  Alternate HTTP transports like that available
	from libsoup could just as easily have been used for this as well.

  source/libipp-core (see docs/README.ipp-listener)
	This contains IPP marshalling/unmarshalling and on-the-wire protocol
	support for IPP.  It requires an HTTP transport be handled by the
	caller.  This includes connection negotiationbe completed, as well
	as, read and write routines supplied to various calls.
  source/libipp-listener (see docs/README.ipp-listener)
	This contains server side IPP operation handling support.  A number of
	the "standard" IPP operations are implemented here, as well as a
	few CUPS extensions to the protocol.  These extensions were required
	to allow a CUPS client to interact with a server using this libarary.
	This is because CUPS clients (lp/lpr/lpstat/lpq/cancel/lprm/...) make
	use of extended protocol operations at the beginning of execution and
	require a "correct" response from the server in order to continue and
	perform their submision, cancelation, or query.A

  source/mod_ipp (see docs/README.ipp-listener)
	Glue code to glue the listener library under Apache.

	This contains a slightly modified version of the PAPI code
	written by Alan Hlava of IBM for CUPS.  This code is layered
	directly on top of libcups and allows applications to use the
	PAPI on top of CUPS.
	Sample code that makes use of the API to do marginally
	interesting things.
Results 1 - 1 of 1
Help - FTP Sites List - Software Dir.
Search over 15 billion files
© 1997-2017