|
|
1.1 ! root 1: /****************************************************************************** ! 2: MLP Spooler header ! 3: ******************************************************************************/ ! 4: ! 5: #include <stdio.h> ! 6: #include <stdlib.h> ! 7: #include <string.h> ! 8: #include <fcntl.h> ! 9: #include <unistd.h> ! 10: #include <time.h> ! 11: #include <sys/types.h> ! 12: #include <sys/ipc.h> ! 13: #include <sys/sem.h> ! 14: #include <sys/stat.h> ! 15: #include <signal.h> ! 16: #include <dirent.h> ! 17: #include <varargs.h> ! 18: #include <errno.h> ! 19: #include <pwd.h> ! 20: ! 21: #define FPERMS 012 ! 22: ! 23: #define BACKEND_PATH "/usr/spool/mlp/backend" ! 24: #define ROUTE_PATH "/usr/spool/mlp/route" ! 25: #define QUEUE_PATH "/usr/spool/mlp/queue" ! 26: #define CONTROL_PATH "/usr/spool/mlp/controls" ! 27: #define STATUS_PATH "/usr/spool/mlp/status" ! 28: #define LOG_PATH "/usr/spool/mlp/log" ! 29: #define SPOOL_ENV "MLP_SPOOL" ! 30: #define PRIORITY_ENV "MLP_PRIORITY" ! 31: #define FORMLEN_ENV "MLP_FORMLEN" ! 32: #define COPIES_ENV "MLP_COPIES" ! 33: #define LONGEVITY_ENV "MLP_LIFE" ! 34: #define SEQNUM "seqnum" ! 35: #define SYSTEM "system" ! 36: #define DISPLAY "display" ! 37: #define LOCAL "local" ! 38: #define DESPOOLER "despooler" ! 39: #define LOCALFEED "localfeed" ! 40: #define FEED "feed" ! 41: #define DOCOPIES "docopies" ! 42: #define DEFAULT "default" ! 43: #define TLIFE "templife" ! 44: #define SLIFE "shortlife" ! 45: #define LLIFE "longlife" ! 46: #define DBACKEND "/bin/cat" ! 47: ! 48: #define HEADER_SIZE 192 ! 49: #define DESC_LEN 45 ! 50: #define WORKSTR 128 ! 51: ! 52: #define TRUE 1 ! 53: #define FALSE 0 ! 54: #define BAD -1 ! 55: ! 56: #define BUG(x,y) {fprintf(stderr,"%s : %s\n", x, y); fflush(stderr);} ! 57: ! 58: /* Header Defines */ ! 59: ! 60: #define HSET TRUE ! 61: #define HGET FALSE ! 62: #define H_USER 0 ! 63: #define H_PRINTER 1 ! 64: #define H_TYPE 2 ! 65: #define H_FORMLEN 3 ! 66: #define H_PAGES 4 ! 67: #define H_DBASE 5 ! 68: #define H_FORMAT 6 ! 69: #define H_DSTAMP 7 ! 70: #define H_DESC 8 ! 71: #define H_LONGEVITY 9 ! 72: #define H_COPIES 10 ! 73: #define H_MAILME 11 ! 74: #define H_WRITEME 12 ! 75: #define H_ENTIRE 99 ! 76: ! 77: ! 78: #define PRINTER_DISPLAY 0 ! 79: #define REQUEST_DISPLAY 1 ! 80: #define DEVICE_DISPLAY 2 ! 81: #define PID_DISPLAY 3 ! 82: ! 83: ! 84: #define R_KILL SIGUSR1 ! 85: #define R_CANCEL SIGUSR2 ! 86: ! 87: #define A_LIFETIME 0 ! 88: #define A_PRINTER 1 ! 89: ! 90: #define CLEAR_ALL TRUE ! 91: #define CLEAR_ONE FALSE ! 92: ! 93: #define SEP "=,\t \n" ! 94: ! 95: #define E_START 0 ! 96: #define E_END 1 ! 97: #define E_NEXT 2 ! 98: #define E_REWIND 3 ! 99: #define E_FILE 4 ! 100: #define E_UNLOCK 5 ! 101: ! 102: #define IPC_NAME "/usr/spool/mlp" ! 103: #define IPC_PERMS 0666 ! 104: #define IPC_SEMS 4 ! 105: #define L_CANCEL 0 ! 106: #define L_CONTROL 1 ! 107: #define L_STATUS 2 ! 108: #define L_LOG 3 ! 109: ! 110: extern char *getenv(); ! 111: extern void fatal(); ! 112: extern void warn(); ! 113: extern int rename(); ! 114: extern char *header(); ! 115: extern void get_termcap(); ! 116: extern char *datestamp(); ! 117: extern char *uppercase(); ! 118: extern char *controls(); ! 119: extern char *status(); ! 120: extern char *route_request(); ! 121: extern int get_seq_num(); ! 122: extern char *request_filename(); ! 123: extern void local_print(); ! 124: extern char *dirlist(); ! 125: extern void wakeup_despooler(); ! 126: extern char *headerval(); ! 127: extern char *unpadd(); ! 128: extern char *basename(); ! 129: extern int scheduler_status(); ! 130: extern int writeOut(); ! 131: extern char *request_name(); ! 132: extern char *report_printer_status(); ! 133: extern void cancel_request(); ! 134: extern int kill_printing_request(); ! 135: extern void make_inactive(); ! 136: extern char *each_printer(); ! 137: extern void MLP_lock(); ! 138: extern void MLP_unlock();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.