1/*************************************************************************** 2 * LPRng - An Extended Print Spooler System 3 * 4 * Copyright 1988-2003, Patrick Powell, San Diego, CA 5 * papowell@lprng.com 6 * See LICENSE for conditions of use. 7 * $Id: getqueue.h,v 1.1.1.1 2008/10/15 03:28:27 james26_jang Exp $ 8 ***************************************************************************/ 9 10 11 12#ifndef _GETQUEUE_H 13#define _GETQUEUE_H 14 15EXTERN char *CTRL_A_str DEFINE( = "\001" ); 16 17/* SSL */ 18EXTERN const char * ACTION DEFINE( = "action" ); 19EXTERN const char * ACCNTNAME DEFINE( = "R" ); 20EXTERN const char * ACTIVE_TIME DEFINE( = "active_time" ); 21EXTERN const char * ADDR DEFINE( = "addr" ); 22EXTERN const char * ALL DEFINE( = "all" ); 23EXTERN const char * ATTEMPT DEFINE( = "attempt" ); 24EXTERN const char * AUTH DEFINE( = "auth" ); 25EXTERN const char * AUTHCA DEFINE( = "authca" ); 26EXTERN const char * AUTHFROM DEFINE( = "authfrom" ); 27EXTERN const char * AUTHTYPE DEFINE( = "authtype" ); 28EXTERN const char * AUTHUSER DEFINE( = "authuser" ); 29EXTERN const char * AUTOHOLD DEFINE( = "autohold" ); 30EXTERN const char * BNRNAME DEFINE( = "L" ); 31EXTERN const char * CALL DEFINE( = "call" ); 32EXTERN const char * CF_OUT_IMAGE DEFINE( = "cf_out_image" ); 33EXTERN const char * CHANGE DEFINE( = "change" ); 34EXTERN const char * CLASS DEFINE( = "C" ); 35EXTERN const char * CLIENT DEFINE( = "client" ); 36EXTERN const char * CMD DEFINE( = "cmd" ); 37EXTERN const char * COPIES DEFINE( = "copies" ); 38EXTERN const char * COPY_DONE DEFINE( = "copy_done" ); 39EXTERN const char * DATAFILES DEFINE( = "datafiles" ); 40EXTERN const char * DATAFILE_COUNT DEFINE( = "datafile_count" ); 41EXTERN const char * DATE DEFINE( = "D" ); 42EXTERN const char * DEBUG DEFINE( = "debug" ); 43EXTERN const char * DEBUGFV DEFINE( = "debugfv" ); 44EXTERN const char * DEST DEFINE( = "dest" ); 45EXTERN const char * DESTINATION DEFINE( = "destination" ); 46EXTERN const char * DESTINATIONS DEFINE( = "destinations" ); 47EXTERN const char * DF_NAME DEFINE( = "df_name" ); 48EXTERN const char * DMALLOC_OPTIONS DEFINE( = "DMALLOC_OPTIONS" ); 49EXTERN const char * DMALLOC_OUTFILE DEFINE( = "dmalloc_outfile" ); 50EXTERN const char * DONE_TIME DEFINE( = "done_time" ); 51EXTERN const char * DONE_REMOVE DEFINE( = "done_remove" ); 52EXTERN const char * DUMP DEFINE( = "dump" ); 53EXTERN const char * END DEFINE( = "end" ); 54EXTERN const char * ERROR DEFINE( = "error" ); 55EXTERN const char * ERROR_TIME DEFINE( = "error_time" ); 56EXTERN const char * ESC_ID DEFINE( = "esc_id" ); 57EXTERN const char * FILENAMES DEFINE( = "filenames" ); 58EXTERN const char * FILE_HOSTNAME DEFINE( = "file_hostname" ); 59EXTERN const char * FILTER DEFINE( = "filter" ); 60EXTERN const char * FIRST_SCAN DEFINE( = "first_scan" ); 61EXTERN const char * FORMAT DEFINE( = "format" ); 62EXTERN const char * FORMAT_ERROR DEFINE( = "format_error" ); 63EXTERN const char * FORWARDING DEFINE( = "forwarding" ); 64EXTERN const char * FORWARD_ID DEFINE( = "forward_id" ); 65EXTERN const char * FROM DEFINE( = "from" ); 66EXTERN const char * FROMHOST DEFINE( = "H" ); 67EXTERN const char * HELD DEFINE( = "held" ); 68EXTERN const char * HF_IMAGE DEFINE( = "hf_image" ); 69EXTERN const char * HF_NAME DEFINE( = "hf_name" ); 70EXTERN const char * HOLD_ALL DEFINE( = "hold_all" ); 71EXTERN const char * HOLD_CLASS DEFINE( = "hold_class" ); 72EXTERN const char * HOLD_TIME DEFINE( = "hold_time" ); 73EXTERN const char * HOST DEFINE( = "host" ); 74EXTERN const char * HPFORMAT DEFINE( = "hpformat" ); 75EXTERN const char * ID DEFINE( = "id" ); 76EXTERN const char * IDENTIFIER DEFINE( = "A" ); 77EXTERN const char * INCOMING_TIME DEFINE( = "incoming_time" ); 78EXTERN const char * INPUT DEFINE( = "input" ); 79EXTERN const char * JOBNAME DEFINE( = "J" ); 80EXTERN const char * JOBSEQ DEFINE( = "jobseq" ); 81EXTERN const char * JOBSIZE DEFINE( = "jobsize" ); 82EXTERN const char * JOB_TIME DEFINE( = "job_time" ); 83EXTERN const char * JOB_TIME_USEC DEFINE( = "job_time_usec" ); 84EXTERN const char * KEYID DEFINE( = "keyid" ); 85EXTERN const char * LOCALHOST DEFINE( = "localhost" ); 86EXTERN const char * LOG DEFINE( = "log" ); 87EXTERN const char * LOGGER DEFINE( = "logger" ); 88EXTERN const char * LOGNAME DEFINE( = "P" ); 89EXTERN const char * LP DEFINE( = "lp" ); 90EXTERN const char * LPC DEFINE( = "lpc" ); 91EXTERN const char * LPD DEFINE( = "lpd" ); 92EXTERN const char * LPD_CONF DEFINE( = "LPD_CONF" ); 93EXTERN const char * LPD_PORT DEFINE( = "lpd_port" ); 94EXTERN const char * LPD_REQUEST DEFINE( = "lpd_request" ); 95EXTERN const char * MAILNAME DEFINE( = "M" ); 96EXTERN const char * MAIL_FD DEFINE( = "mail_fd" ); 97EXTERN const char * MOVE DEFINE( = "move" ); 98EXTERN const char * MOVE_DEST DEFINE( = "move_dest" ); 99EXTERN const char * MSG DEFINE( = "msg" ); 100EXTERN const char * NAME DEFINE( = "name" ); 101EXTERN const char * NEW_DEST DEFINE( = "new_dest" ); 102EXTERN const char * NONEP DEFINE( = "none" ); 103EXTERN const char * NUMBER DEFINE( = "number" ); 104EXTERN const char * OPENNAME DEFINE( = "openname" ); 105EXTERN const char * ORIG_IDENTIFIER DEFINE( = "orig_identifier" ); 106EXTERN const char * PGP DEFINE( = "pgp" ); 107EXTERN const char * PORT DEFINE( = "port" ); 108EXTERN const char * PRINTABLE DEFINE( = "printable" ); 109EXTERN const char * PRINTER DEFINE( = "printer" ); 110EXTERN const char * PRINTING_ABORTED DEFINE( = "printing_aborted" ); 111EXTERN const char * PRINTING_DISABLED DEFINE( = "printing_disabled" ); 112EXTERN const char * PRIORITY DEFINE( = "priority" ); 113EXTERN const char * PRIORITY_TIME DEFINE( = "priority_time" ); 114EXTERN const char * PROCESS DEFINE( = "process" ); 115EXTERN const char * PRSTATUS DEFINE( = "prstatus" ); 116EXTERN const char * QUEUE DEFINE( = "queue" ); 117EXTERN const char * QUEUENAME DEFINE( = "Q" ); 118EXTERN const char * QUEUE_CONTROL_FILE DEFINE( = "queue_control_file" ); 119EXTERN const char * QUEUE_STATUS_FILE DEFINE( = "queue_status_file" ); 120EXTERN const char * REDIRECT DEFINE( = "redirect" ); 121EXTERN const char * REMOTEHOST DEFINE( = "remotehost" ); 122EXTERN const char * REMOTEPORT DEFINE( = "remoteport" ); 123EXTERN const char * REMOTEUSER DEFINE( = "remoteuser" ); 124EXTERN const char * REMOVE_TIME DEFINE( = "remove_time" ); 125EXTERN const char * SD DEFINE( = "sd" ); 126EXTERN const char * SEQUENCE DEFINE( = "sequence" ); 127EXTERN const char * SERVER DEFINE( = "server" ); 128EXTERN const char * SERVER_ORDER DEFINE( = "server_order" ); 129EXTERN const char * SERVICE DEFINE( = "service" ); 130EXTERN const char * SIZE DEFINE( = "size" ); 131EXTERN const char * SORT_KEY DEFINE( = "sort_key" ); 132EXTERN const char * SPOOLDIR DEFINE( = "spooldir" ); 133EXTERN const char * SPOOLING_DISABLED DEFINE( = "spooling_disabled" ); 134EXTERN const char * START_TIME DEFINE( = "start_time" ); 135EXTERN const char * STATE DEFINE( = "state" ); 136EXTERN const char * STATUS_CHANGE DEFINE( = "status_change" ); 137EXTERN const char * STATUS_FD DEFINE( = "status_fd" ); 138EXTERN const char * SUBSERVER DEFINE( = "subserver" ); 139EXTERN const char * TRACE DEFINE( = "trace" ); 140EXTERN const char * TRANSFERNAME DEFINE( = "transfername" ); 141EXTERN const char * OTRANSFERNAME DEFINE( = "otransfername" ); 142EXTERN const char * UNIXSOCKET DEFINE( = "unixsocket" ); 143EXTERN const char * UPDATE DEFINE( = "update" ); 144EXTERN const char * UPDATE_TIME DEFINE( = "update_time" ); 145EXTERN const char * USER DEFINE( = "user" ); 146EXTERN const char * VALUE DEFINE( = "value" ); 147 148/* PROTOTYPES */ 149int Scan_queue( struct line_list *spool_control, 150 struct line_list *sort_order, int *pprintable, int *pheld, int *pmove, 151 int only_queue_process, int *perr, int *pdone, 152 const char *remove_prefix, const char *remove_suffix ); 153char *Get_fd_image( int fd, off_t maxsize ); 154char *Get_file_image( const char *file, off_t maxsize ); 155int Get_fd_image_and_split( int fd, 156 int maxsize, int clean, 157 struct line_list *l, const char *sep, 158 int sort, const char *keysep, int uniq, int trim, int nocomments, 159 char **return_image ); 160int Get_file_image_and_split( const char *file, 161 int maxsize, int clean, 162 struct line_list *l, const char *sep, 163 int sort, const char *keysep, int uniq, int trim, int nocomments, 164 char **return_image ); 165void Check_for_hold( struct job *job, struct line_list *spool_control ); 166void Setup_job( struct job *job, struct line_list *spool_control, 167 const char *cf_name, const char *hf_name, int check_for_existence ); 168int Get_hold_class( struct line_list *info, struct line_list *sq ); 169void Append_Z_value( struct job *job, char *s ); 170int Setup_cf_info( struct job *job, int check_for_existence ); 171char *Make_hf_image( struct job *job ); 172int Set_hold_file( struct job *job, struct line_list *perm_check, int fd ); 173void Get_hold_file( struct job *job, char *hf_name ); 174void Get_spool_control( const char *file, struct line_list *info ); 175void Set_spool_control( struct line_list *perm_check, const char *file, 176 struct line_list *info ); 177void intval( const char *key, struct line_list *list, struct job *job ); 178void revintval( const char *key, struct line_list *list, struct job *job ); 179void strzval( const char *key, struct line_list *list, struct job *job ); 180void strnzval( const char *key, struct line_list *list, struct job *job ); 181void strval( const char *key, struct line_list *list, struct job *job, 182 int reverse ); 183void Make_sort_key( struct job *job ); 184int Setup_printer( char *prname, char *error, int errlen, int subserver ); 185int Read_pid( int fd, char *str, int len ); 186int Write_pid( int fd, int pid, char *str ); 187int Patselect( struct line_list *token, struct line_list *cf, int starting ); 188int Check_format( int type, const char *name, struct job *job ); 189char *Find_start(char *str, const char *key ); 190char *Frwarding(struct line_list *l); 191int Pr_disabled(struct line_list *l); 192int Sp_disabled(struct line_list *l); 193int Pr_aborted(struct line_list *l); 194int Hld_all(struct line_list *l); 195char *Clsses(struct line_list *l); 196char *Cntrol_debug(struct line_list *l); 197char *Srver_order(struct line_list *l); 198void Init_job( struct job *job ); 199void Free_job( struct job *job ); 200void Copy_job( struct job *dest, struct job *src ); 201char *Fix_job_number( struct job *job, int n ); 202char *Make_identifier( struct job *job ); 203void Dump_job( char *title, struct job *job ); 204void Job_printable( struct job *job, struct line_list *spool_control, 205 int *pprintable, int *pheld, int *pmove, int *perr, int *pdone ); 206int Server_active( char *file ); 207void Update_destination( struct job *job ); 208int Get_destination( struct job *job, int n ); 209int Get_destination_by_name( struct job *job, char *name ); 210int Trim_status_file( int status_fd, char *file, int max, int min ); 211char *Fix_datafile_info( struct job *job, char *number, char *suffix, 212 char *xlate_format ); 213int ordercomp( const void *left, const void *right, const void *orderp); 214void Fix_control( struct job *job, char *filter, char *xlate_format ); 215int Create_control( struct job *job, char *error, int errlen, 216 char *xlate_format ); 217void Init_buf(char **buf, int *max, int *len); 218void Put_buf_len( const char *s, int cnt, char **buf, int *max, int *len ); 219void Put_buf_str( const char *s, char **buf, int *max, int *len ); 220void Free_buf(char **buf, int *max, int *len); 221 222#endif 223