|
|
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.