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