]>
Commit | Line | Data |
---|---|---|
ef416fc2 | 1 | /* |
7e86f2f6 | 2 | * Configuration file definitions for the CUPS scheduler. |
ef416fc2 | 3 | * |
be3b49a3 MS |
4 | * Copyright © 2007-2018 by Apple Inc. |
5 | * Copyright © 1997-2007 by Easy Software Products, all rights reserved. | |
ef416fc2 | 6 | * |
be3b49a3 MS |
7 | * Licensed under Apache License v2.0. See the file "LICENSE" for more |
8 | * information. | |
ef416fc2 | 9 | */ |
10 | ||
11 | ||
12 | /* | |
13 | * Log levels... | |
14 | */ | |
15 | ||
16 | typedef enum | |
17 | { | |
a469f8a5 | 18 | CUPSD_LOG_PPD = -5, /* Used internally for PPD keywords */ |
c9fc04c6 | 19 | CUPSD_LOG_ATTR, /* Used internally for attributes */ |
a469f8a5 MS |
20 | CUPSD_LOG_STATE, /* Used internally for printer-state-reasons */ |
21 | CUPSD_LOG_JOBSTATE, /* Used internally for job-state-reasons */ | |
f7deaa1a | 22 | CUPSD_LOG_PAGE, /* Used internally for page logging */ |
ef416fc2 | 23 | CUPSD_LOG_NONE, |
f7deaa1a | 24 | CUPSD_LOG_EMERG, /* Emergency issues */ |
25 | CUPSD_LOG_ALERT, /* Something bad happened that needs attention */ | |
26 | CUPSD_LOG_CRIT, /* Critical error but server continues */ | |
27 | CUPSD_LOG_ERROR, /* Error condition */ | |
28 | CUPSD_LOG_WARN, /* Warning */ | |
29 | CUPSD_LOG_NOTICE, /* Normal condition that needs logging */ | |
30 | CUPSD_LOG_INFO, /* General information */ | |
31 | CUPSD_LOG_DEBUG, /* General debugging */ | |
32 | CUPSD_LOG_DEBUG2 /* Detailed debugging */ | |
ef416fc2 | 33 | } cupsd_loglevel_t; |
34 | ||
1f0275e3 MS |
35 | typedef enum |
36 | { | |
c9dcc485 | 37 | CUPSD_ACCESSLOG_NONE, /* Log no requests */ |
1f0275e3 MS |
38 | CUPSD_ACCESSLOG_CONFIG, /* Log config requests */ |
39 | CUPSD_ACCESSLOG_ACTIONS, /* Log config, print, and job management requests */ | |
40 | CUPSD_ACCESSLOG_ALL /* Log everything */ | |
41 | } cupsd_accesslog_t; | |
42 | ||
dfd5680b MS |
43 | typedef enum |
44 | { | |
45 | CUPSD_TIME_STANDARD, /* "Standard" Apache/CLF format */ | |
46 | CUPSD_TIME_USECS /* Standard format with microseconds */ | |
47 | } cupsd_time_t; | |
48 | ||
8fe0183a MS |
49 | typedef enum |
50 | { | |
51 | CUPSD_SANDBOXING_OFF, /* No sandboxing */ | |
52 | CUPSD_SANDBOXING_RELAXED, /* Relaxed sandboxing */ | |
53 | CUPSD_SANDBOXING_STRICT /* Strict sandboxing */ | |
54 | } cupsd_sandboxing_t; | |
55 | ||
ef416fc2 | 56 | |
49d87452 MS |
57 | /* |
58 | * FatalErrors flags... | |
59 | */ | |
60 | ||
61 | #define CUPSD_FATAL_NONE 0 /* No errors are fatal */ | |
62 | #define CUPSD_FATAL_BROWSE 1 /* Browse bind errors are fatal */ | |
63 | #define CUPSD_FATAL_CONFIG 2 /* Config file syntax errors are fatal */ | |
64 | #define CUPSD_FATAL_LISTEN 4 /* Listen/Port bind errors are fatal */ | |
65 | #define CUPSD_FATAL_LOG 8 /* Log file errors are fatal */ | |
66 | #define CUPSD_FATAL_PERMISSIONS 16 /* File permission errors are fatal */ | |
67 | #define CUPSD_FATAL_ALL ~0 /* All errors are fatal */ | |
68 | ||
69 | ||
ef416fc2 | 70 | /* |
71 | * Printcap formats... | |
72 | */ | |
73 | ||
f7deaa1a | 74 | #define PRINTCAP_BSD 0 /* Berkeley LPD format */ |
75 | #define PRINTCAP_SOLARIS 1 /* Solaris lpsched format */ | |
8072030b | 76 | #define PRINTCAP_PLIST 2 /* macOS plist format */ |
ef416fc2 | 77 | |
78 | ||
e07d4801 MS |
79 | /* |
80 | * ServerAlias data... | |
81 | */ | |
82 | ||
83 | typedef struct | |
84 | { | |
85 | size_t namelen; /* Length of alias name */ | |
86 | char name[1]; /* Alias name */ | |
87 | } cupsd_alias_t; | |
88 | ||
89 | ||
ef416fc2 | 90 | /* |
91 | * Globals... | |
92 | */ | |
93 | ||
94 | VAR char *ConfigurationFile VALUE(NULL), | |
c41769ff MS |
95 | /* cupsd.conf file to use */ |
96 | *CupsFilesFile VALUE(NULL), | |
97 | /* cups-files.conf file to use */ | |
ef416fc2 | 98 | *ServerName VALUE(NULL), |
99 | /* FQDN for server */ | |
100 | *ServerAdmin VALUE(NULL), | |
101 | /* Administrator's email */ | |
102 | *ServerRoot VALUE(NULL), | |
103 | /* Root directory for scheduler */ | |
104 | *ServerBin VALUE(NULL), | |
105 | /* Root directory for binaries */ | |
106 | *StateDir VALUE(NULL), | |
107 | /* Root directory for state data */ | |
108 | *RequestRoot VALUE(NULL), | |
109 | /* Directory for request files */ | |
110 | *DocumentRoot VALUE(NULL); | |
111 | /* Root directory for documents */ | |
e07d4801 MS |
112 | VAR cups_array_t *ServerAlias VALUE(NULL); |
113 | /* Alias names for server */ | |
f11a948a | 114 | VAR int ServerNameIsIP VALUE(0); |
d1c13e16 | 115 | /* Is the ServerName an IP address? */ |
ef416fc2 | 116 | VAR int NumSystemGroups VALUE(0); |
117 | /* Number of system group names */ | |
ac884b6a MS |
118 | VAR char *SystemGroups[MAX_SYSTEM_GROUPS] |
119 | VALUE({0}); | |
ef416fc2 | 120 | /* System group names */ |
ac884b6a MS |
121 | VAR gid_t SystemGroupIDs[MAX_SYSTEM_GROUPS] |
122 | VALUE({0}); | |
ef416fc2 | 123 | /* System group IDs */ |
124 | VAR char *AccessLog VALUE(NULL), | |
125 | /* Access log filename */ | |
126 | *ErrorLog VALUE(NULL), | |
127 | /* Error log filename */ | |
128 | *PageLog VALUE(NULL), | |
129 | /* Page log filename */ | |
130 | *CacheDir VALUE(NULL), | |
131 | /* Cache file directory */ | |
132 | *DataDir VALUE(NULL), | |
133 | /* Data file directory */ | |
134 | *DefaultLanguage VALUE(NULL), | |
135 | /* Default language encoding */ | |
ef416fc2 | 136 | *DefaultLocale VALUE(NULL), |
137 | /* Default locale */ | |
c5571a1d MS |
138 | *DefaultPaperSize VALUE(NULL), |
139 | /* Default paper size */ | |
323c5de1 | 140 | *ErrorPolicy VALUE(NULL), |
141 | /* Default printer-error-policy */ | |
ef416fc2 | 142 | *RIPCache VALUE(NULL), |
143 | /* Amount of memory for RIPs */ | |
144 | *TempDir VALUE(NULL), | |
145 | /* Temporary directory */ | |
146 | *Printcap VALUE(NULL), | |
147 | /* Printcap file */ | |
ef416fc2 | 148 | *FontPath VALUE(NULL), |
149 | /* Font search path */ | |
150 | *RemoteRoot VALUE(NULL), | |
151 | /* Remote root user */ | |
152 | *Classification VALUE(NULL); | |
153 | /* Classification of system */ | |
7e86f2f6 | 154 | VAR uid_t User VALUE(1), |
ef416fc2 | 155 | /* User ID for server */ |
7e86f2f6 MS |
156 | RunUser VALUE(0); |
157 | /* User to run as, used for files */ | |
ef416fc2 | 158 | VAR gid_t Group VALUE(0); |
159 | /* Group ID for server */ | |
dfd5680b | 160 | VAR cupsd_accesslog_t AccessLogLevel VALUE(CUPSD_ACCESSLOG_ACTIONS); |
1f0275e3 | 161 | /* Access log level */ |
dfd5680b | 162 | VAR int ClassifyOverride VALUE(0), |
ef416fc2 | 163 | /* Allow overrides? */ |
178cb736 MS |
164 | LogDebugHistory VALUE(200), |
165 | /* Amount of automatic debug history */ | |
49d87452 MS |
166 | FatalErrors VALUE(CUPSD_FATAL_CONFIG), |
167 | /* Which errors are fatal? */ | |
a29fd7dd MS |
168 | StrictConformance VALUE(FALSE), |
169 | /* Require strict IPP conformance? */ | |
7e86f2f6 | 170 | SyncOnClose VALUE(FALSE); |
8a259669 | 171 | /* Call fsync() when closing files? */ |
7e86f2f6 MS |
172 | VAR mode_t ConfigFilePerm VALUE(0640U), |
173 | /* Permissions for config files */ | |
174 | LogFilePerm VALUE(0644U); | |
ef416fc2 | 175 | /* Permissions for log files */ |
dfd5680b | 176 | VAR cupsd_loglevel_t LogLevel VALUE(CUPSD_LOG_WARN); |
1f0275e3 | 177 | /* Error log level */ |
dfd5680b MS |
178 | VAR cupsd_time_t LogTimeFormat VALUE(CUPSD_TIME_STANDARD); |
179 | /* Log file time format */ | |
a1797929 MS |
180 | VAR cups_file_t *LogStderr VALUE(NULL); |
181 | /* Stderr file, if any */ | |
8fe0183a MS |
182 | VAR cupsd_sandboxing_t Sandboxing VALUE(CUPSD_SANDBOXING_STRICT); |
183 | /* Sandboxing level */ | |
184 | VAR int UseSandboxing VALUE(1); | |
185 | /* Use sandboxing for child procs? */ | |
dfd5680b | 186 | VAR int MaxClients VALUE(100), |
ef416fc2 | 187 | /* Maximum number of clients */ |
188 | MaxClientsPerHost VALUE(0), | |
189 | /* Maximum number of clients per host */ | |
f7deaa1a | 190 | MaxCopies VALUE(CUPS_DEFAULT_MAX_COPIES), |
ef416fc2 | 191 | /* Maximum number of copies per job */ |
192 | MaxLogSize VALUE(1024 * 1024), | |
193 | /* Maximum size of log files */ | |
ef416fc2 | 194 | MaxRequestSize VALUE(0), |
195 | /* Maximum size of IPP requests */ | |
196 | HostNameLookups VALUE(FALSE), | |
197 | /* Do we do reverse lookups? */ | |
198 | Timeout VALUE(DEFAULT_TIMEOUT), | |
199 | /* Timeout during requests */ | |
200 | KeepAlive VALUE(TRUE), | |
201 | /* Support the Keep-Alive option? */ | |
ef416fc2 | 202 | FileDevice VALUE(FALSE), |
203 | /* Allow file: devices? */ | |
204 | FilterLimit VALUE(0), | |
205 | /* Max filter cost at any time */ | |
206 | FilterLevel VALUE(0), | |
207 | /* Current filter level */ | |
208 | FilterNice VALUE(0), | |
209 | /* Nice value for filters */ | |
49d87452 | 210 | ReloadTimeout VALUE(DEFAULT_KEEPALIVE), |
ef416fc2 | 211 | /* Timeout before reload from SIGHUP */ |
212 | RootCertDuration VALUE(300), | |
213 | /* Root certificate update interval */ | |
fa73b229 | 214 | PrintcapFormat VALUE(PRINTCAP_BSD), |
ef416fc2 | 215 | /* Format of printcap file? */ |
dfd5680b | 216 | DefaultShared VALUE(TRUE), |
fa73b229 | 217 | /* Share printers by default? */ |
229681c1 | 218 | MultipleOperationTimeout VALUE(DEFAULT_TIMEOUT), |
dfd5680b | 219 | /* multiple-operation-time-out value */ |
229681c1 MS |
220 | WebInterface VALUE(CUPS_DEFAULT_WEBIF); |
221 | /* Enable the web interface? */ | |
ef416fc2 | 222 | VAR cups_file_t *AccessFile VALUE(NULL), |
223 | /* Access log file */ | |
224 | *ErrorFile VALUE(NULL), | |
225 | /* Error log file */ | |
226 | *PageFile VALUE(NULL); | |
227 | /* Page log file */ | |
01ce6322 MS |
228 | VAR char *PageLogFormat VALUE(NULL); |
229 | /* Page log format */ | |
ef416fc2 | 230 | VAR mime_t *MimeDatabase VALUE(NULL); |
231 | /* MIME type database */ | |
232 | VAR int NumMimeTypes VALUE(0); | |
233 | /* Number of MIME types */ | |
234 | VAR const char **MimeTypes VALUE(NULL); | |
235 | /* Array of MIME types */ | |
236 | ||
237 | #ifdef HAVE_SSL | |
efed0562 MS |
238 | VAR int CreateSelfSignedCerts VALUE(TRUE); |
239 | /* Automatically create self-signed certs? */ | |
72d05bc9 MS |
240 | VAR char *ServerKeychain VALUE(NULL); |
241 | /* Keychain holding cert + key */ | |
ef416fc2 | 242 | #endif /* HAVE_SSL */ |
243 | ||
1166bf58 | 244 | #ifdef HAVE_ONDEMAND |
1720786e | 245 | VAR int IdleExitTimeout VALUE(60); |
a4d04587 | 246 | /* Time after which an idle cupsd will exit */ |
c187d9ab | 247 | #endif /* HAVE_ONDEMAND */ |
ef416fc2 | 248 | |
f7deaa1a | 249 | #ifdef HAVE_AUTHORIZATION_H |
250 | VAR char *SystemGroupAuthKey VALUE(NULL); | |
251 | /* System group auth key */ | |
252 | #endif /* HAVE_AUTHORIZATION_H */ | |
253 | ||
dcb445bc MS |
254 | #ifdef HAVE_GSSAPI |
255 | VAR char *GSSServiceName VALUE(NULL); | |
256 | /* GSS service name */ | |
4a78452e | 257 | VAR int HaveServerCreds VALUE(0); |
dcb445bc | 258 | /* Do we have server credentials? */ |
4a78452e | 259 | VAR gss_cred_id_t ServerCreds; /* Server's GSS credentials */ |
dcb445bc MS |
260 | #endif /* HAVE_GSSAPI */ |
261 | ||
f7deaa1a | 262 | |
ef416fc2 | 263 | /* |
264 | * Prototypes... | |
265 | */ | |
266 | ||
e07d4801 | 267 | extern void cupsdAddAlias(cups_array_t *aliases, const char *name); |
22c9029b | 268 | extern int cupsdCheckLogFile(cups_file_t **lf, const char *logname); |
b94498cf | 269 | extern int cupsdCheckPermissions(const char *filename, |
7e86f2f6 MS |
270 | const char *suffix, mode_t mode, |
271 | uid_t user, gid_t group, int is_dir, | |
b94498cf | 272 | int create_dir); |
22c9029b | 273 | extern int cupsdCheckProgram(const char *filename, cupsd_printer_t *p); |
dcb445bc | 274 | extern int cupsdDefaultAuthType(void); |
e07d4801 | 275 | extern void cupsdFreeAliases(cups_array_t *aliases); |
dfd5680b | 276 | extern char *cupsdGetDateTime(struct timeval *t, cupsd_time_t format); |
be3b49a3 MS |
277 | extern int cupsdLogClient(cupsd_client_t *con, int level, const char *message, ...) _CUPS_FORMAT(3, 4); |
278 | extern void cupsdLogFCMessage(void *context, _cups_fc_result_t result, const char *message); | |
f7deaa1a | 279 | #ifdef HAVE_GSSAPI |
be3b49a3 | 280 | extern int cupsdLogGSSMessage(int level, OM_uint32 major_status, OM_uint32 minor_status, const char *message, ...) _CUPS_FORMAT(4, 5); |
f7deaa1a | 281 | #endif /* HAVE_GSSAPI */ |
85dda01c | 282 | extern int cupsdLogJob(cupsd_job_t *job, int level, const char *message, |
be3b49a3 MS |
283 | ...) _CUPS_FORMAT(3, 4); |
284 | extern int cupsdLogMessage(int level, const char *message, ...) _CUPS_FORMAT(2, 3); | |
ef416fc2 | 285 | extern int cupsdLogPage(cupsd_job_t *job, const char *page); |
f7deaa1a | 286 | extern int cupsdLogRequest(cupsd_client_t *con, http_status_t code); |
b94498cf | 287 | extern int cupsdReadConfiguration(void); |
75bd9771 | 288 | extern int cupsdWriteErrorLog(int level, const char *message); |