=head1	NAME

prqdcl - Print quota daemon client

prqdinfo - Print quota daemon information client

prqdadm - Print quota administration tool

=head1	SYNOPSIS

  prqdcl
  prqdinfo

=head1	DESCRIPTION

The prqdcl program can be used as accounting program by the LPRng print
system. The accounting data provided by LPRng are read from standard
input and forwarded to prqd via a UNIX domain socket.

Responses from prqd (for the jobstart line) are printed to standard
output, LPRng reads these responses and decides whether or not to process
the print job.

The prqdinfo program is a variant of prqdcl responding to information
requests (is user ``x'' allowed to print on printer ``y'') only.

LPRng can connect to prqdcl by running prqdcl as a pipe or you can
configure inetd/xinetd to start prqdcl on incoming network connections.

The prqdinfo program can be started on incoming network connections by
inetd/xinetd to allow remote checks whether a user is allowed to use
a specific printer.

The prqdadm program is a superset of the prqdcl program, it allows to perform
administrative tasks (granting additional pages, modify accounts...).
Only prqd administrators should have privileges to run this program.

=head1	PRQDADM INSTRUCTIONS

In addition to the accounting lines from LPRng the prqdadm program
can process the following command lines:

=over	6

=item	B<control reset class=>I<classname> B<user=>I<username>

resets the number of pages printed within the general limit for the named
user in the named class. An asterisk (``*'') can be used to specify
all users and/or all classes.

=item	B<control add class=>I<classname> B<user=>I<username> B<pages=>I<number>

adds pages to the users personal print account in the named class.
As the print account is personal you can not use the asterisk here.

=item	B<control info class=>I<classname> B<user=>I<username>

rebuilds the user information files for the named user in the named class.
An asterisk may be used to specify all users and/or all classes.

=item	B<control database-cleanup>

performs a database cleanup. Expired entries (entries referring to user
names, printers or printer classes which do not longer exist) are deleted.

=back

=head1	RETURN VALUE

The program returns exit status code 0 on success, any other exit code
indicates an error.

=head1	AUTHOR

Dirk Krause

=head1	COPYRIGHT AND LICENSE

Copyright (c) 2010, Dirk Krause
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

 * Redistributions of source code must retain the above
   copyright notice, this list of conditions and the
   following disclaimer.

 * Redistributions in binary form must reproduce the above
   copyright notice, this list of conditions and the following
   disclaimer in the documentation and/or other materials
   provided with the distribution.

 * Neither the name of the Dirk Krause nor the names of
   contributors may be used to endorse or promote products
   derived from this software without specific prior written
   permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

=head1	SEE ALSO

prqd(1), LPRng, http://dktools.sourceforge.net/prqd.html

