diff options
author | Norbert Preining <norbert@preining.info> | 2020-10-12 03:04:00 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-10-12 03:04:00 +0000 |
commit | 0ce40abb18ec02ec6fd6bcc5f21612c88daa7578 (patch) | |
tree | 416289fe1448873fd8ca33051f50ad85bffa8aaa /support/dktools/printqd.h | |
parent | fdb18507cd80dc17f5a5256153d34668b4f4e61c (diff) |
CTAN sync 202010120303
Diffstat (limited to 'support/dktools/printqd.h')
-rw-r--r-- | support/dktools/printqd.h | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/support/dktools/printqd.h b/support/dktools/printqd.h deleted file mode 100644 index f0816bbe53..0000000000 --- a/support/dktools/printqd.h +++ /dev/null @@ -1,220 +0,0 @@ -/* -Copyright (C) 2016-2020, Dirk Krause -SPDX-License-Identifier: BSD-3-Clause -*/ - -/* - WARNING: This file was generated by the dkct program (see - http://dktools.sourceforge.net/ for details). - Changes you make here will be lost if dkct is run again! - You should modify the original source and run dkct on it. - Original source: printqd.ctr -*/ - -#ifndef PRINTQD_H_INCLUDED -/** Avoid multiple inclusions. */ -#define PRINTQD_H_INCLUDED 1 - - -#line 10 "printqd.ctr" - -/* CORRECT NEXT LINE AFTER REPLACING PRINTQD */ - -/** @file printqd.h Definitions for printqd. -*/ - -#ifndef DK4CONF_H_INCLUDED -#include "dk4conf.h" -#endif - -#ifndef DK4TYPES_H_INCLUDED -#include "dk4types.h" -#endif - -#ifndef DK4STO_H_INCLUDED -#include "dk4sto.h" -#endif - -#ifndef DK4SOCK_H_INCLUDED -#include "dk4sock.h" -#endif - - - -/** Limit for one user or group. -*/ -typedef struct { - char *name; /**< User or group name */ - dk4_um_t limit; /**< Page limit. */ -} pqd_limit_t; - - - - -/** Printer class (may contain multiple printers). -*/ -typedef struct { - char *name; /**< Class name. */ - dk4_sto_t *s_u; /**< User limits storage. */ - dk4_sto_it_t *i_u; /**< User limits storage iterator. */ - dk4_sto_t *s_g; /**< Group limits storage. */ - dk4_sto_it_t *i_g; /**< Group limits storage iterator. */ - dk4_um_t dl; /**< Default limit. */ - int da; /**< Deny action: 1=hold, 0=remove. */ - int hdl; /**< Flag: Have default limit. */ -} pqd_class_t; - - - -/** Printer. -*/ -typedef struct { - char *name; /**< Printer name. */ - pqd_class_t *cl; /**< Printer class. */ -} pqd_printer_t; -/* - In service the class is not NULL. - If no class is configured for a printer, the program complains - and exits. -*/ - - - -/** Printer alias. -*/ -typedef struct { - char *name; /**< Alias name. */ - pqd_printer_t *pr; /**< The real printer. */ -} pqd_printer_alias_t; - - - -/** Printqd configuration. -*/ -typedef struct { - char *sname; /**< UNIX domain socket file name. */ - char *dname; /**< Database name (including type). */ - char *lname; /**< Log file name. */ - dk4_sto_t *s_c; /**< Storage for classes. */ - dk4_sto_it_t *i_c; /**< Iterator for class storage. */ - dk4_sto_t *s_p; /**< Storage for printers. */ - dk4_sto_it_t *i_p; /**< Iterator for printers storage. */ - dk4_sto_t *s_a; /**< Storage for aliases. */ - dk4_sto_it_t *i_a; /**< Iterator for aliases storage. */ - dk4_sto_t *s_ai; /**< Storage for peers allowed info rq. */ - dk4_sto_it_t *i_ai; /**< Iterator for info peers storage. */ - dk4_sto_t *s_ad; /**< Storage for peers allowed data rq. */ - dk4_sto_it_t *i_ad; /**< Iterator for data peers storage. */ - dk4_sto_t *s_aa; /**< Storage for peers allowed admin rq. */ - dk4_sto_it_t *i_aa; /**< Iterator for admin peers storage. */ - size_t m_loc; /**< Maximum number of local connections. */ - size_t m_tcp; /**< Maximum number of TCP connections. */ - uid_t uid; /**< Run as specified user. */ - uid_t suid; /**< Local socket owner UID. */ - gid_t gid; /**< Run as specified group. */ - gid_t sgid; /**< Local socket owner GID. */ - int slbl; /**< Backlog for local socket. */ - int snbl; /**< Backlog for network socket. */ - int iglo; /**< Flag: Globally allow info requests. */ - int dglo; /**< Flag: Globally allow data requests. */ - int aglo; /**< Flag: Globally allow admin requests. */ - int linf; /**< Flag: Log info requests. */ - int ldb; /**< Flag: Log database modifications. */ - unsigned short ptcp; /**< TCP port (info, data, admin), host repr. */ - unsigned short pudp; /**< UDP port (info only), host represent. */ -} pqd_conf_t; - - - -/** Connection record for local socket. -*/ -typedef struct { - dk4_socket_t sock; /**< Socket. */ -} pqd_l_conn_t; - - - -/** Connection record for network socket. -*/ -typedef struct { - dk4_sockaddr_storage_t raddr; /**< Remote address. */ - dk4_socket_t sock; /**< Socket. */ - int pqdpl; /**< Printqd protocol level. */ -} pqd_n_conn_t; - - - -/** One request to process. -*/ -typedef struct { - void *connptr; /**< Connection record for socket. */ - dk4_sto_t *sto; /**< Container for conn records. */ - struct sockaddr *soa; /**< Remote address, only UDP. */ - size_t *pnconn; /**< Addr of variable, NULL for UDP. */ - char *cmdptr; /**< Start of command. */ - char *argptr; /**< Command arguments. */ - size_t szsoa; /**< Size of rem address, only UDP. */ - dk4_socket_t sock; /**< Socket to use for response. */ - int protlev; /**< Protocol level. */ - int action; /**< Action to take. */ - int logthis; /**< Flag: Log request and response. */ -} pqd_rq_t; - - - -/** Data for one user in a class. -*/ -typedef struct { - dk4_um_t limit; /**< Limit (maximum page number). */ - dk4_um_t used; /**< Number of pages used within limit. */ - dk4_um_t account; /**< Remaining pages personal print account. */ - int da; /**< Deny action: 0=remove, 1=hold. */ -} pqd_account_t; - - - -/** Information from one LPRng accounting line. -*/ -typedef struct { - char *username; /**< User name. */ - char *queuename; /**< Print queue name. */ - char *jobtitle; /**< Print job title. */ - char *pagecount; /**< Pagecount reported in line. */ -} lprng_info_t; - - - - -/** Printqd protocol levels. -*/ -enum { - PQD_PROTO_NONE = 0 , /**< No requests allowed. */ - PQD_PROTO_INFO = 1 , /**< Info requests only. */ - PQD_PROTO_DATA = 2 , /**< Info and data requests. */ - PQD_PROTO_ADMIN = 3 /**< Info, data and admin requests. */ -}; - - - -/** Commands in the printqd protocol. -*/ -enum { - PQD_CMD_NONE = -1 , /**< Illegal command. */ - PQD_CMD_JOBSTART = 0 , /**< Start of print job, response required. */ - PQD_CMD_JOBEND = 1 , /**< End of print job. */ - PQD_CMD_START = 2 , /**< Start of printing (ignored). */ - PQD_CMD_END = 3 , /**< End of printing (ignored). */ - PQD_CMD_FILESTART = 4 , /**< Start of file printing (pc). */ - PQD_CMD_FILEEND = 5 , /**< End of file printing (pc). */ - PQD_CMD_INFO = 6 , /**< Information, response required. */ - PQD_CMD_ACCT_CHECK = 7 , /**< Check permission, response required. */ - PQD_CMD_ACCT_START = 8 , /**< Start of file printing (pc). */ - PQD_CMD_ACCT_END = 9 , /**< End of file printing (pc). */ - PQD_CMD_ACCT_CHARGE = 10 , /**< Summary for file printing (pc). */ - PQD_CMD_CONTROL = 11 /**< Control request. */ -}; - - - - -#endif |