/* * Configuration file for CUPS on Windows. * * Copyright © 2007-2019 by Apple Inc. * Copyright © 1997-2007 by Easy Software Products. * * Licensed under Apache License v2.0. See the file "LICENSE" for more * information. */ #ifndef _CUPS_CONFIG_H_ #define _CUPS_CONFIG_H_ /* * Include necessary headers... */ #include #include #include #include #include #include /* * Microsoft renames the POSIX functions to _name, and introduces * a broken compatibility layer using the original names. As a result, * random crashes can occur when, for example, strdup() allocates memory * from a different heap than used by malloc() and free(). * * To avoid moronic problems like this, we #define the POSIX function * names to the corresponding non-standard Microsoft names. */ #define access _access #define close _close #define fileno _fileno #define lseek _lseek #define mkdir(d,p) _mkdir(d) #define open _open #define read _read #define rmdir _rmdir #define strdup _strdup #define unlink _unlink #define write _write /* * Microsoft "safe" functions use a different argument order than POSIX... */ #define gmtime_r(t,tm) gmtime_s(tm,t) #define localtime_r(t,tm) localtime_s(tm,t) /* * Map the POSIX strcasecmp() and strncasecmp() functions to the Win32 * _stricmp() and _strnicmp() functions... */ #define strcasecmp _stricmp #define strncasecmp _strnicmp /* * Map the POSIX sleep() and usleep() functions to the Win32 Sleep() function... */ typedef unsigned long useconds_t; #define sleep(X) Sleep(1000 * (X)) #define usleep(X) Sleep((X)/1000) /* * Map various parameters to Posix style system calls */ # define F_OK 00 # define W_OK 02 # define R_OK 04 # define O_RDONLY _O_RDONLY # define O_WRONLY _O_WRONLY # define O_CREAT _O_CREAT # define O_TRUNC _O_TRUNC /* * Compiler stuff... */ #undef const #undef __CHAR_UNSIGNED__ /* * Version of software... */ #define CUPS_SVERSION "CUPS v2.3.3" #define CUPS_MINIMAL "CUPS/2.3.3" /* * Default user and groups... */ #define CUPS_DEFAULT_USER "" #define CUPS_DEFAULT_GROUP "" #define CUPS_DEFAULT_SYSTEM_GROUPS "" #define CUPS_DEFAULT_PRINTOPERATOR_AUTH "" #define CUPS_DEFAULT_SYSTEM_AUTHKEY "" /* * Default file permissions... */ #define CUPS_DEFAULT_CONFIG_FILE_PERM 0644 #define CUPS_DEFAULT_LOG_FILE_PERM 0644 /* * Default logging settings... */ #define CUPS_DEFAULT_LOG_LEVEL "warn" #define CUPS_DEFAULT_ACCESS_LOG_LEVEL "none" /* * Default fatal error settings... */ #define CUPS_DEFAULT_FATAL_ERRORS "config" /* * Default browsing settings... */ #define CUPS_DEFAULT_BROWSING 1 #define CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS "dnssd" #define CUPS_DEFAULT_DEFAULT_SHARED 1 /* * Default IPP port... */ #define CUPS_DEFAULT_IPP_PORT 631 /* * Default printcap file... */ #define CUPS_DEFAULT_PRINTCAP "" /* * Default Samba and LPD config files... */ #define CUPS_DEFAULT_SMB_CONFIG_FILE "" #define CUPS_DEFAULT_LPD_CONFIG_FILE "" /* * Default MaxCopies value... */ #define CUPS_DEFAULT_MAX_COPIES 9999 /* * Do we have domain socket support, and if so what is the default one? */ #undef CUPS_DEFAULT_DOMAINSOCKET /* * Default WebInterface value... */ #define CUPS_DEFAULT_WEBIF 0 /* * Where are files stored? * * Note: These are defaults, which can be overridden by environment * variables at run-time... */ #define CUPS_BINDIR "C:/CUPS/bin" #define CUPS_CACHEDIR "C:/CUPS/cache" #define CUPS_DATADIR "C:/CUPS/share" #define CUPS_DOCROOT "C:/CUPS/share/doc" #define CUPS_FONTPATH "C:/CUPS/share/fonts" #define CUPS_LOCALEDIR "C:/CUPS/locale" #define CUPS_LOGDIR "C:/CUPS/logs" #define CUPS_REQUESTS "C:/CUPS/spool" #define CUPS_SBINDIR "C:/CUPS/sbin" #define CUPS_SERVERBIN "C:/CUPS/lib" #define CUPS_SERVERROOT "C:/CUPS/etc" #define CUPS_STATEDIR "C:/CUPS/run" /* * Do we have posix_spawn? */ /* #undef HAVE_POSIX_SPAWN */ /* * Do we have ZLIB? */ #define HAVE_LIBZ 1 #define HAVE_INFLATECOPY 1 /* * Do we have PAM stuff? */ #define HAVE_LIBPAM 0 /* #undef HAVE_PAM_PAM_APPL_H */ /* #undef HAVE_PAM_SET_ITEM */ /* #undef HAVE_PAM_SETCRED */ /* * Do we have ? */ /* #undef HAVE_SHADOW_H */ /* * Do we have ? */ /* #undef HAVE_CRYPT_H */ /* * Use ? */ /* #undef HAVE_STDINT_H */ /* * Use , , and/or ? */ #define HAVE_STRING_H 1 /* #undef HAVE_STRINGS_H */ /* #undef HAVE_BSTRING_H */ /* * Do we have the long long type? */ /* #undef HAVE_LONG_LONG */ #ifdef HAVE_LONG_LONG # define CUPS_LLFMT "%lld" # define CUPS_LLCAST (long long) #else # define CUPS_LLFMT "%ld" # define CUPS_LLCAST (long) #endif /* HAVE_LONG_LONG */ /* * Do we have the strtoll() function? */ /* #undef HAVE_STRTOLL */ #ifndef HAVE_STRTOLL # define strtoll(nptr,endptr,base) strtol((nptr), (endptr), (base)) #endif /* !HAVE_STRTOLL */ /* * Do we have the strXXX() functions? */ #define HAVE_STRDUP 1 /* #undef HAVE_STRLCAT */ /* #undef HAVE_STRLCPY */ /* * Do we have the geteuid() function? */ /* #undef HAVE_GETEUID */ /* * Do we have the setpgid() function? */ /* #undef HAVE_SETPGID */ /* * Do we have the vsyslog() function? */ /* #undef HAVE_VSYSLOG */ /* * Do we have the systemd journal functions? */ /* #undef HAVE_SYSTEMD_SD_JOURNAL_H */ /* * Do we have the (v)snprintf() functions? */ /* Windows snprintf/vsnprintf are non-conforming */ /* #undef HAVE_SNPRINTF */ /* #undef HAVE_VSNPRINTF */ /* * What signal functions to use? */ /* #undef HAVE_SIGSET */ /* #undef HAVE_SIGACTION */ /* * What wait functions to use? */ /* #undef HAVE_WAITPID */ /* #undef HAVE_WAIT3 */ /* * Do we have the mallinfo function and malloc.h? */ /* #undef HAVE_MALLINFO */ /* #undef HAVE_MALLOC_H */ /* * Do we have the POSIX ACL functions? */ /* #undef HAVE_ACL_INIT */ /* * Do we have the langinfo.h header file? */ /* #undef HAVE_LANGINFO_H */ /* * Which encryption libraries do we have? */ /* #undef HAVE_CDSASSL */ /* #undef HAVE_GNUTLS */ #define HAVE_SSPISSL 1 #define HAVE_SSL 1 /* * Do we have the gnutls_transport_set_pull_timeout_function function? */ /* #undef HAVE_GNUTLS_TRANSPORT_SET_PULL_TIMEOUT_FUNCTION */ /* * Do we have the gnutls_priority_set_direct function? */ /* #undef HAVE_GNUTLS_PRIORITY_SET_DIRECT */ /* * What Security framework headers do we have? */ /* #undef HAVE_AUTHORIZATION_H */ /* #undef HAVE_SECCERTIFICATE_H */ /* #undef HAVE_SECITEM_H */ /* #undef HAVE_SECPOLICY_H */ /* * Do we have the SecGenerateSelfSignedCertificate function? */ /* #undef HAVE_SECGENERATESELFSIGNEDCERTIFICATE */ /* * Do we have libpaper? */ /* #undef HAVE_LIBPAPER */ /* * Do we have mDNSResponder for DNS Service Discovery (aka Bonjour)? */ #define HAVE_DNSSD 1 /* * Do we have Avahi for DNS Service Discovery (aka Bonjour)? */ #undef HAVE_AVAHI /* * Do we have ? */ #undef HAVE_SYS_IOCTL_H /* * Does the "stat" structure contain the "st_gen" member? */ /* #undef HAVE_ST_GEN */ /* * Does the "tm" structure contain the "tm_gmtoff" member? */ /* #undef HAVE_TM_GMTOFF */ /* * Do we have rresvport_af()? */ /* #undef HAVE_RRESVPORT_AF */ /* * Do we have getaddrinfo()? */ #define HAVE_GETADDRINFO 1 /* * Do we have getnameinfo()? */ #define HAVE_GETNAMEINFO 1 /* * Do we have getifaddrs()? */ /* #undef HAVE_GETIFADDRS */ /* * Do we have hstrerror()? */ /* #undef HAVE_HSTRERROR */ /* * Do we have res_init()? */ /* #undef HAVE_RES_INIT */ /* * Do we have */ /* #undef HAVE_RESOLV_H */ /* * Do we have the header file? */ /* #undef HAVE_SYS_SOCKIO_H */ /* * Does the sockaddr structure contain an sa_len parameter? */ /* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */ /* * Do we have pthread support? */ /* #undef HAVE_PTHREAD_H */ /* * Do we have on-demand support (launchd/systemd/upstart)? */ /* #undef HAVE_ONDEMAND */ /* * Do we have launchd support? */ /* #undef HAVE_LAUNCH_H */ /* #undef HAVE_LAUNCHD */ /* * Do we have systemd support? */ /* #undef HAVE_SYSTEMD */ /* * Do we have upstart support? */ /* #undef HAVE_UPSTART */ /* * Do we have CoreFoundation public headers? */ /* #undef HAVE_COREFOUNDATION_H */ /* * Do we have ApplicationServices public headers? */ /* #undef HAVE_APPLICATIONSERVICES_H */ /* * Do we have the SCDynamicStoreCopyComputerName function? */ /* #undef HAVE_SCDYNAMICSTORECOPYCOMPUTERNAME */ /* * Do we have the getgrouplist() function? */ #undef HAVE_GETGROUPLIST /* * Do we have macOS 10.4's mbr_XXX functions? */ /* #undef HAVE_MEMBERSHIP_H */ /* #undef HAVE_MBR_UID_TO_UUID */ /* * Do we have Darwin's notify_post header and function? */ /* #undef HAVE_NOTIFY_H */ /* #undef HAVE_NOTIFY_POST */ /* * Do we have DBUS? */ /* #undef HAVE_DBUS */ /* #undef HAVE_DBUS_MESSAGE_ITER_INIT_APPEND */ /* #undef HAVE_DBUS_THREADS_INIT */ /* * Do we have the GSSAPI support library (for Kerberos support)? */ /* #undef HAVE_GSS_ACQUIRE_CRED_EX_F */ /* #undef HAVE_GSS_C_NT_HOSTBASED_SERVICE */ /* #undef HAVE_GSS_GSSAPI_H */ /* #undef HAVE_GSS_GSSAPI_SPI_H */ /* #undef HAVE_GSSAPI */ /* #undef HAVE_GSSAPI_GSSAPI_H */ /* #undef HAVE_GSSAPI_H */ /* * Default GSS service name... */ #define CUPS_DEFAULT_GSSSERVICENAME "host" /* * Select/poll interfaces... */ /* #undef HAVE_POLL */ /* #undef HAVE_EPOLL */ /* #undef HAVE_KQUEUE */ /* * Do we have the header? */ /* #undef HAVE_DLFCN_H */ /* * Do we have ? */ /* #undef HAVE_SYS_PARAM_H */ /* * Do we have ? */ /* #undef HAVE_SYS_UCRED_H */ /* * Do we have removefile()? */ /* #undef HAVE_REMOVEFILE */ /* * Do we have ? */ /* #undef HAVE_SANDBOX_H */ /* * Which random number generator function to use... */ /* #undef HAVE_ARC4RANDOM */ /* #undef HAVE_RANDOM */ /* #undef HAVE_LRAND48 */ #ifdef HAVE_ARC4RANDOM # define CUPS_RAND() arc4random() # define CUPS_SRAND(v) #elif defined(HAVE_RANDOM) # define CUPS_RAND() random() # define CUPS_SRAND(v) srandom(v) #elif defined(HAVE_LRAND48) # define CUPS_RAND() lrand48() # define CUPS_SRAND(v) srand48(v) #else # define CUPS_RAND() rand() # define CUPS_SRAND(v) srand(v) #endif /* HAVE_ARC4RANDOM */ /* * Do we have libusb? */ /* #undef HAVE_LIBUSB */ /* * Do we have libwrap and tcpd.h? */ /* #undef HAVE_TCPD_H */ /* * Do we have ? */ /* #undef HAVE_ICONV_H */ /* * Do we have statfs or statvfs and one of the corresponding headers? */ /* #undef HAVE_STATFS */ /* #undef HAVE_STATVFS */ /* #undef HAVE_SYS_MOUNT_H */ /* #undef HAVE_SYS_STATFS_H */ /* #undef HAVE_SYS_STATVFS_H */ /* #undef HAVE_SYS_VFS_H */ /* * Location of macOS localization bundle, if any. */ /* #undef CUPS_BUNDLEDIR */ /* * Do we have XPC? */ /* #undef HAVE_XPC */ /* * Do we have the C99 abs() function? */ /* #undef HAVE_ABS */ #if !defined(HAVE_ABS) && !defined(abs) # if defined(__GNUC__) || __STDC_VERSION__ >= 199901L # define abs(x) _cups_abs(x) static inline int _cups_abs(int i) { return (i < 0 ? -i : i); } # elif defined(_MSC_VER) # define abs(x) _cups_abs(x) static __inline int _cups_abs(int i) { return (i < 0 ? -i : i); } # else # define abs(x) ((x) < 0 ? -(x) : (x)) # endif /* __GNUC__ || __STDC_VERSION__ */ #endif /* !HAVE_ABS && !abs */ #endif /* !_CUPS_CONFIG_H_ */