summaryrefslogtreecommitdiff
path: root/scheduler/cupsd.h
diff options
context:
space:
mode:
Diffstat (limited to 'scheduler/cupsd.h')
-rw-r--r--scheduler/cupsd.h248
1 files changed, 248 insertions, 0 deletions
diff --git a/scheduler/cupsd.h b/scheduler/cupsd.h
new file mode 100644
index 0000000..55d5ccb
--- /dev/null
+++ b/scheduler/cupsd.h
@@ -0,0 +1,248 @@
+/*
+ * "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $"
+ *
+ * Main header file for the CUPS scheduler.
+ *
+ * Copyright 2007-2011 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ *
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law. Distribution and use rights are outlined in the file "LICENSE.txt"
+ * "LICENSE" which should have been included with this file. If this
+ * file is missing or damaged, see the license at "http://www.cups.org/".
+ */
+
+
+/*
+ * Include necessary headers.
+ */
+
+#include <cups/cups-private.h>
+#include <cups/file-private.h>
+
+#include <limits.h>
+#include <time.h>
+#include <signal.h>
+#include <fcntl.h>
+#include <math.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+
+#ifdef WIN32
+# include <direct.h>
+#else
+# include <unistd.h>
+#endif /* WIN32 */
+
+#include "mime.h"
+
+#if defined(HAVE_CDSASSL)
+# include <CoreFoundation/CoreFoundation.h>
+#endif /* HAVE_CDSASSL */
+
+
+/*
+ * Some OS's don't have hstrerror(), most notably Solaris...
+ */
+
+#ifndef HAVE_HSTRERROR
+# ifdef hstrerror
+# undef hstrerror
+# endif /* hstrerror */
+# define hstrerror cups_hstrerror
+
+extern const char *cups_hstrerror(int);
+#endif /* !HAVE_HSTRERROR */
+
+
+/*
+ * Common constants.
+ */
+
+#ifndef FALSE
+# define FALSE 0
+# define TRUE (!FALSE)
+#endif /* !FALSE */
+
+
+/*
+ * Implementation limits...
+ */
+
+#define MAX_ENV 100 /* Maximum number of environment strings */
+#define MAX_USERPASS 33 /* Maximum size of username/password */
+#define MAX_FILTERS 20 /* Maximum number of filters */
+#define MAX_SYSTEM_GROUPS 32 /* Maximum number of system groups */
+
+
+/*
+ * Defaults...
+ */
+
+#define DEFAULT_HISTORY 1 /* Preserve job history? */
+#define DEFAULT_FILES 0 /* Preserve job files? */
+#define DEFAULT_TIMEOUT 300 /* Timeout during requests/updates */
+#define DEFAULT_KEEPALIVE 30 /* Timeout between requests */
+#define DEFAULT_INTERVAL 30 /* Interval between browse updates */
+#define DEFAULT_CHARSET "utf-8" /* Default charset */
+
+
+/*
+ * Global variable macros...
+ */
+
+#ifdef _MAIN_C_
+# define VAR
+# define VALUE(x) =x
+# define VALUE2(x,y) ={x,y}
+#else
+# define VAR extern
+# define VALUE(x)
+# define VALUE2(x,y)
+#endif /* _MAIN_C */
+
+
+/*
+ * Other stuff for the scheduler...
+ */
+
+#include "sysman.h"
+#include "statbuf.h"
+#include "cert.h"
+#include "auth.h"
+#include "client.h"
+#include "policy.h"
+#include "printers.h"
+#include "classes.h"
+#include "job.h"
+#include "conf.h"
+#include "banners.h"
+#include "dirsvc.h"
+#include "network.h"
+#include "subscriptions.h"
+
+
+/*
+ * Reload types...
+ */
+
+#define RELOAD_NONE 0 /* No reload needed */
+#define RELOAD_ALL 1 /* Reload everything */
+#define RELOAD_CUPSD 2 /* Reload only cupsd.conf */
+
+
+/*
+ * Select callback function type...
+ */
+
+typedef void (*cupsd_selfunc_t)(void *data);
+
+
+/*
+ * Globals...
+ */
+
+VAR int TestConfigFile VALUE(0),
+ /* Test the cupsd.conf file? */
+ UseProfiles VALUE(1);
+ /* Use security profiles for child procs? */
+VAR int MaxFDs VALUE(0);
+ /* Maximum number of files */
+
+VAR time_t ReloadTime VALUE(0);
+ /* Time of reload request... */
+VAR int NeedReload VALUE(RELOAD_ALL),
+ /* Need to load configuration? */
+ DoingShutdown VALUE(0);
+ /* Shutting down the scheduler? */
+VAR void *DefaultProfile VALUE(0);
+ /* Default security profile */
+
+#ifdef HAVE_GSSAPI
+VAR int KerberosInitialized VALUE(0);
+ /* Has Kerberos been initialized? */
+VAR krb5_context KerberosContext VALUE(NULL);
+ /* Kerberos context for credentials */
+#endif /* HAVE_GSSAPI */
+
+#ifdef HAVE_LAUNCH_H
+VAR int Launchd VALUE(0);
+ /* Running from launchd */
+#endif /* HAVE_LAUNCH_H */
+
+
+/*
+ * Prototypes...
+ */
+
+/* env.c */
+extern void cupsdInitEnv(void);
+extern int cupsdLoadEnv(char *envp[], int envmax);
+extern void cupsdSetEnv(const char *name, const char *value);
+extern void cupsdSetEnvf(const char *name, const char *value, ...)
+#ifdef __GNUC__
+__attribute__ ((__format__ (__printf__, 2, 3)))
+#endif /* __GNUC__ */
+;
+extern void cupsdUpdateEnv(void);
+
+/* file.c */
+extern void cupsdCleanFiles(const char *path, const char *pattern);
+extern int cupsdCloseCreatedConfFile(cups_file_t *fp,
+ const char *filename);
+extern void cupsdClosePipe(int *fds);
+extern cups_file_t *cupsdCreateConfFile(const char *filename, mode_t mode);
+extern cups_file_t *cupsdOpenConfFile(const char *filename);
+extern int cupsdOpenPipe(int *fds);
+extern int cupsdRemoveFile(const char *filename);
+
+/* main.c */
+extern int cupsdAddString(cups_array_t **a, const char *s);
+extern void cupsdCheckProcess(void);
+extern void cupsdClearString(char **s);
+extern void cupsdFreeStrings(cups_array_t **a);
+extern void cupsdHoldSignals(void);
+extern char *cupsdMakeUUID(const char *name, int number,
+ char *buffer, size_t bufsize);
+extern void cupsdReleaseSignals(void);
+extern void cupsdSetString(char **s, const char *v);
+extern void cupsdSetStringf(char **s, const char *f, ...)
+#ifdef __GNUC__
+__attribute__ ((__format__ (__printf__, 2, 3)))
+#endif /* __GNUC__ */
+;
+
+/* process.c */
+extern void *cupsdCreateProfile(int job_id);
+extern void cupsdDestroyProfile(void *profile);
+extern int cupsdEndProcess(int pid, int force);
+extern const char *cupsdFinishProcess(int pid, char *name, int namelen,
+ int *job_id);
+extern int cupsdStartProcess(const char *command, char *argv[],
+ char *envp[], int infd, int outfd,
+ int errfd, int backfd, int sidefd,
+ int root, void *profile,
+ cupsd_job_t *job, int *pid);
+
+/* select.c */
+extern int cupsdAddSelect(int fd, cupsd_selfunc_t read_cb,
+ cupsd_selfunc_t write_cb, void *data);
+extern int cupsdDoSelect(long timeout);
+#ifdef CUPSD_IS_SELECTING
+extern int cupsdIsSelecting(int fd);
+#endif /* CUPSD_IS_SELECTING */
+extern void cupsdRemoveSelect(int fd);
+extern void cupsdStartSelect(void);
+extern void cupsdStopSelect(void);
+
+/* server.c */
+extern void cupsdStartServer(void);
+extern void cupsdStopServer(void);
+
+
+/*
+ * End of "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $".
+ */