]> git.ipfire.org Git - thirdparty/cups.git/blame - vcnet/config.h
License change: Apache License, Version 2.0.
[thirdparty/cups.git] / vcnet / config.h
CommitLineData
ef416fc2 1/*
5a1d7a17 2 * Configuration file for CUPS on Windows.
ef416fc2 3 *
3f7aa006 4 * Copyright 2007-2017 by Apple Inc.
5a1d7a17 5 * Copyright 1997-2007 by Easy Software Products.
ef416fc2 6 *
e3101897 7 * Licensed under Apache License v2.0. See the file "LICENSE" for more information.
ef416fc2 8 */
9
10#ifndef _CUPS_CONFIG_H_
11#define _CUPS_CONFIG_H_
12
536bc2c6
MS
13/*
14 * Include necessary headers...
15 */
16
17#include <stdio.h>
18#include <stdlib.h>
19#include <string.h>
20#include <stdarg.h>
536bc2c6 21#include <io.h>
7cf5915e 22#include <direct.h>
536bc2c6
MS
23
24
25/*
7a0cbd5e 26 * Microsoft renames the POSIX functions to _name, and introduces
536bc2c6
MS
27 * a broken compatibility layer using the original names. As a result,
28 * random crashes can occur when, for example, strdup() allocates memory
29 * from a different heap than used by malloc() and free().
30 *
31 * To avoid moronic problems like this, we #define the POSIX function
32 * names to the corresponding non-standard Microsoft names.
33 */
34
35#define access _access
36#define close _close
37#define fileno _fileno
38#define lseek _lseek
7cf5915e 39#define mkdir(d,p) _mkdir(d)
536bc2c6
MS
40#define open _open
41#define read _read
7cf5915e 42#define rmdir _rmdir
536bc2c6
MS
43#define snprintf _snprintf
44#define strdup _strdup
45#define unlink _unlink
46#define vsnprintf _vsnprintf
47#define write _write
48
49
015214aa
MS
50/*
51 * Map the POSIX strcasecmp() and strncasecmp() functions to the Win32 stricmp()
52 * and strnicmp() functions...
53 */
54
55#define strcasecmp stricmp
56#define strncasecmp strnicmp
57
58
5180a04c
MS
59/*
60 * Map the POSIX sleep() and usleep() functions to the Win32 Sleep() function...
61 */
62
33c9220c 63typedef unsigned long useconds_t;
5180a04c
MS
64#define sleep(X) Sleep(1000 * (X))
65#define usleep(X) Sleep((X)/1000)
66
67
6d2f911b
MS
68/*
69 * Map various parameters to Posix style system calls
70 */
71
72# define F_OK 00
73# define W_OK 02
74# define R_OK 04
75# define O_RDONLY _O_RDONLY
76# define O_WRONLY _O_WRONLY
015214aa 77# define O_CREAT _O_CREAT
6d2f911b
MS
78# define O_TRUNC _O_TRUNC
79
80
ef416fc2 81/*
82 * Compiler stuff...
83 */
84
85#undef const
86#undef __CHAR_UNSIGNED__
87
88
89/*
90 * Version of software...
91 */
92
11143dcf
MS
93#define CUPS_SVERSION "CUPS v2.3.0"
94#define CUPS_MINIMAL "CUPS/2.3.0"
ef416fc2 95
96
97/*
536bc2c6 98 * Default user and groups...
ef416fc2 99 */
100
6d2f911b
MS
101#define CUPS_DEFAULT_USER ""
102#define CUPS_DEFAULT_GROUP ""
103#define CUPS_DEFAULT_SYSTEM_GROUPS ""
104#define CUPS_DEFAULT_PRINTOPERATOR_AUTH ""
61b7ebde 105#define CUPS_DEFAULT_SYSTEM_AUTHKEY ""
536bc2c6
MS
106
107
108/*
109 * Default file permissions...
110 */
111
61b7ebde 112#define CUPS_DEFAULT_CONFIG_FILE_PERM 0644
536bc2c6
MS
113#define CUPS_DEFAULT_LOG_FILE_PERM 0644
114
115
116/*
117 * Default logging settings...
118 */
119
120#define CUPS_DEFAULT_LOG_LEVEL "warn"
61b7ebde 121#define CUPS_DEFAULT_ACCESS_LOG_LEVEL "none"
536bc2c6
MS
122
123
124/*
125 * Default fatal error settings...
126 */
127
128#define CUPS_DEFAULT_FATAL_ERRORS "config"
129
130
131/*
132 * Default browsing settings...
133 */
134
135#define CUPS_DEFAULT_BROWSING 1
61b7ebde 136#define CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS "dnssd"
536bc2c6 137#define CUPS_DEFAULT_DEFAULT_SHARED 1
ef416fc2 138
139
140/*
141 * Default IPP port...
142 */
143
536bc2c6
MS
144#define CUPS_DEFAULT_IPP_PORT 631
145
146
147/*
148 * Default printcap file...
149 */
150
151#define CUPS_DEFAULT_PRINTCAP ""
ef416fc2 152
153
154/*
536bc2c6 155 * Default Samba and LPD config files...
ef416fc2 156 */
157
536bc2c6
MS
158#define CUPS_DEFAULT_SMB_CONFIG_FILE ""
159#define CUPS_DEFAULT_LPD_CONFIG_FILE ""
160
161
162/*
163 * Default MaxCopies value...
164 */
165
166#define CUPS_DEFAULT_MAX_COPIES 9999
ef416fc2 167
168
169/*
1e564ac8 170 * Do we have domain socket support, and if so what is the default one?
ef416fc2 171 */
172
173#undef CUPS_DEFAULT_DOMAINSOCKET
174
175
db8b865d
MS
176/*
177 * Default WebInterface value...
178 */
179
61b7ebde 180#define CUPS_DEFAULT_WEBIF 0
db8b865d
MS
181
182
ef416fc2 183/*
184 * Where are files stored?
185 *
186 * Note: These are defaults, which can be overridden by environment
187 * variables at run-time...
188 */
189
536bc2c6
MS
190#define CUPS_BINDIR "C:/CUPS/bin"
191#define CUPS_CACHEDIR "C:/CUPS/cache"
192#define CUPS_DATADIR "C:/CUPS/share"
193#define CUPS_DOCROOT "C:/CUPS/share/doc"
194#define CUPS_FONTPATH "C:/CUPS/share/fonts"
195#define CUPS_LOCALEDIR "C:/CUPS/locale"
196#define CUPS_LOGDIR "C:/CUPS/logs"
197#define CUPS_REQUESTS "C:/CUPS/spool"
198#define CUPS_SBINDIR "C:/CUPS/sbin"
199#define CUPS_SERVERBIN "C:/CUPS/lib"
200#define CUPS_SERVERROOT "C:/CUPS/etc"
201#define CUPS_STATEDIR "C:/CUPS/run"
ef416fc2 202
203
1e564ac8
MS
204/*
205 * Do we have posix_spawn?
206 */
207
208/* #undef HAVE_POSIX_SPAWN */
209
210
ef416fc2 211/*
db8b865d 212 * Do we have ZLIB?
ef416fc2 213 */
214
db8b865d
MS
215#define HAVE_LIBZ 1
216#define HAVE_INFLATECOPY 1
ef416fc2 217
218
219/*
220 * Do we have PAM stuff?
221 */
222
ef416fc2 223#define HAVE_LIBPAM 0
536bc2c6
MS
224/* #undef HAVE_PAM_PAM_APPL_H */
225/* #undef HAVE_PAM_SET_ITEM */
226/* #undef HAVE_PAM_SETCRED */
ef416fc2 227
228
229/*
230 * Do we have <shadow.h>?
231 */
232
536bc2c6 233/* #undef HAVE_SHADOW_H */
ef416fc2 234
235
236/*
237 * Do we have <crypt.h>?
238 */
239
536bc2c6 240/* #undef HAVE_CRYPT_H */
ef416fc2 241
242
f8b3a85b 243/*
db8b865d 244 * Use <stdint.h>?
f8b3a85b
MS
245 */
246
db8b865d 247/* #undef HAVE_STDINT_H */
f8b3a85b
MS
248
249
ef416fc2 250/*
251 * Use <string.h>, <strings.h>, and/or <bstring.h>?
252 */
253
536bc2c6
MS
254#define HAVE_STRING_H 1
255/* #undef HAVE_STRINGS_H */
256/* #undef HAVE_BSTRING_H */
ef416fc2 257
258
259/*
260 * Do we have the long long type?
261 */
262
536bc2c6 263/* #undef HAVE_LONG_LONG */
ef416fc2 264
265#ifdef HAVE_LONG_LONG
266# define CUPS_LLFMT "%lld"
267# define CUPS_LLCAST (long long)
268#else
269# define CUPS_LLFMT "%ld"
270# define CUPS_LLCAST (long)
271#endif /* HAVE_LONG_LONG */
272
273
274/*
275 * Do we have the strtoll() function?
276 */
277
536bc2c6 278/* #undef HAVE_STRTOLL */
ef416fc2 279
280#ifndef HAVE_STRTOLL
281# define strtoll(nptr,endptr,base) strtol((nptr), (endptr), (base))
282#endif /* !HAVE_STRTOLL */
283
284
285/*
286 * Do we have the strXXX() functions?
287 */
288
6d2f911b 289#define HAVE_STRDUP 1
536bc2c6
MS
290/* #undef HAVE_STRLCAT */
291/* #undef HAVE_STRLCPY */
ef416fc2 292
293
294/*
295 * Do we have the geteuid() function?
296 */
297
536bc2c6 298/* #undef HAVE_GETEUID */
ef416fc2 299
300
88f9aafc
MS
301/*
302 * Do we have the setpgid() function?
303 */
304
305/* #undef HAVE_SETPGID */
306
307
ef416fc2 308/*
309 * Do we have the vsyslog() function?
310 */
311
536bc2c6 312/* #undef HAVE_VSYSLOG */
ef416fc2 313
314
61b7ebde
MS
315/*
316 * Do we have the systemd journal functions?
317 */
318
319/* #undef HAVE_SYSTEMD_SD_JOURNAL_H */
320
321
ef416fc2 322/*
323 * Do we have the (v)snprintf() functions?
324 */
325
536bc2c6
MS
326#define HAVE_SNPRINTF 1
327#define HAVE_VSNPRINTF 1
ef416fc2 328
329
330/*
331 * What signal functions to use?
332 */
333
536bc2c6
MS
334/* #undef HAVE_SIGSET */
335/* #undef HAVE_SIGACTION */
ef416fc2 336
337
338/*
339 * What wait functions to use?
340 */
341
536bc2c6
MS
342/* #undef HAVE_WAITPID */
343/* #undef HAVE_WAIT3 */
ef416fc2 344
345
346/*
347 * Do we have the mallinfo function and malloc.h?
348 */
349
536bc2c6
MS
350/* #undef HAVE_MALLINFO */
351/* #undef HAVE_MALLOC_H */
352
353
354/*
355 * Do we have the POSIX ACL functions?
356 */
357
358/* #undef HAVE_ACL_INIT */
ef416fc2 359
360
361/*
362 * Do we have the langinfo.h header file?
363 */
364
536bc2c6 365/* #undef HAVE_LANGINFO_H */
ef416fc2 366
367
368/*
369 * Which encryption libraries do we have?
370 */
371
536bc2c6
MS
372/* #undef HAVE_CDSASSL */
373/* #undef HAVE_GNUTLS */
61b7ebde
MS
374#define HAVE_SSPISSL 1
375#define HAVE_SSL 1
536bc2c6
MS
376
377
1e564ac8
MS
378/*
379 * Do we have the gnutls_transport_set_pull_timeout_function function?
380 */
381
382/* #undef HAVE_GNUTLS_TRANSPORT_SET_PULL_TIMEOUT_FUNCTION */
383
384
19ba6878
MS
385/*
386 * Do we have the gnutls_priority_set_direct function?
387 */
388
389/* #undef HAVE_GNUTLS_PRIORITY_SET_DIRECT */
390
391
536bc2c6 392/*
db8b865d 393 * What Security framework headers do we have?
eac3a0a0
MS
394 */
395
db8b865d
MS
396/* #undef HAVE_AUTHORIZATION_H */
397/* #undef HAVE_SECBASEPRIV_H */
398/* #undef HAVE_SECCERTIFICATE_H */
399/* #undef HAVE_SECIDENTITYSEARCHPRIV_H */
400/* #undef HAVE_SECITEM_H */
401/* #undef HAVE_SECITEMPRIV_H */
402/* #undef HAVE_SECPOLICY_H */
403/* #undef HAVE_SECPOLICYPRIV_H */
404/* #undef HAVE_SECURETRANSPORTPRIV_H */
eac3a0a0
MS
405
406
407/*
408 * Do we have the cssmErrorString function?
409 */
410
411/* #undef HAVE_CSSMERRORSTRING */
412
413
1e564ac8
MS
414/*
415 * Do we have the SecGenerateSelfSignedCertificate function?
416 */
417
418/* #undef HAVE_SECGENERATESELFSIGNEDCERTIFICATE */
419
420
421/*
422 * Do we have the SecKeychainOpen function?
423 */
424
425/* #undef HAVE_SECKEYCHAINOPEN */
426
427
61b7ebde
MS
428/*
429 * Do we have (a working) SSLSetEnabledCiphers function?
430 */
431
432#define HAVE_SSLSETENABLEDCIPHERS 1
433
434
536bc2c6 435/*
db8b865d 436 * Do we have libpaper?
536bc2c6
MS
437 */
438
db8b865d 439/* #undef HAVE_LIBPAPER */
ef416fc2 440
441
442/*
db8b865d 443 * Do we have mDNSResponder for DNS Service Discovery (aka Bonjour)?
ef416fc2 444 */
445
db8b865d 446#define HAVE_DNSSD 1
ef416fc2 447
448
449/*
db8b865d 450 * Do we have Avahi for DNS Service Discovery (aka Bonjour)?
ef416fc2 451 */
452
db8b865d 453#undef HAVE_AVAHI
536bc2c6
MS
454
455
456/*
db8b865d 457 * Do we have <sys/ioctl.h>?
536bc2c6
MS
458 */
459
db8b865d 460#undef HAVE_SYS_IOCTL_H
536bc2c6
MS
461
462
eac3a0a0
MS
463/*
464 * Does the "stat" structure contain the "st_gen" member?
465 */
466
467/* #undef HAVE_ST_GEN */
468
469
ef416fc2 470/*
471 * Does the "tm" structure contain the "tm_gmtoff" member?
472 */
473
536bc2c6 474/* #undef HAVE_TM_GMTOFF */
ef416fc2 475
476
477/*
478 * Do we have rresvport_af()?
479 */
480
536bc2c6 481/* #undef HAVE_RRESVPORT_AF */
ef416fc2 482
483
484/*
485 * Do we have getaddrinfo()?
486 */
487
536bc2c6 488#define HAVE_GETADDRINFO 1
ef416fc2 489
490
491/*
492 * Do we have getnameinfo()?
493 */
494
536bc2c6 495#define HAVE_GETNAMEINFO 1
ef416fc2 496
497
498/*
499 * Do we have getifaddrs()?
500 */
501
536bc2c6 502/* #undef HAVE_GETIFADDRS */
ef416fc2 503
504
505/*
506 * Do we have hstrerror()?
507 */
508
536bc2c6
MS
509/* #undef HAVE_HSTRERROR */
510
511
512/*
513 * Do we have res_init()?
514 */
515
516/* #undef HAVE_RES_INIT */
517
518
519/*
520 * Do we have <resolv.h>
521 */
522
523/* #undef HAVE_RESOLV_H */
ef416fc2 524
525
526/*
527 * Do we have the <sys/sockio.h> header file?
528 */
529
536bc2c6 530/* #undef HAVE_SYS_SOCKIO_H */
ef416fc2 531
532
533/*
534 * Does the sockaddr structure contain an sa_len parameter?
535 */
536
536bc2c6 537/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */
ef416fc2 538
539
ef416fc2 540/*
541 * Do we have pthread support?
542 */
543
536bc2c6
MS
544/* #undef HAVE_PTHREAD_H */
545
546
1166bf58
MS
547/*
548 * Do we have on-demand support (launchd/systemd/upstart)?
549 */
550
551/* #undef HAVE_ONDEMAND */
552
553
536bc2c6
MS
554/*
555 * Do we have launchd support?
556 */
557
558/* #undef HAVE_LAUNCH_H */
559/* #undef HAVE_LAUNCHD */
ef416fc2 560
561
1e564ac8
MS
562/*
563 * Do we have systemd support?
564 */
565
566/* #undef HAVE_SYSTEMD */
567
568
1166bf58
MS
569/*
570 * Do we have upstart support?
571 */
572
573/* #undef HAVE_UPSTART */
574
575
536bc2c6
MS
576/*
577 * Do we have CoreFoundation public and private headers?
578 */
579
580/* #undef HAVE_COREFOUNDATION_H */
581/* #undef HAVE_CFPRIV_H */
582/* #undef HAVE_CFBUNDLEPRIV_H */
583
584
6d2f911b
MS
585/*
586 * Do we have ApplicationServices public headers?
587 */
588
589/* #undef HAVE_APPLICATIONSERVICES_H */
590
591
592/*
593 * Do we have the SCDynamicStoreCopyComputerName function?
594 */
595
596/* #undef HAVE_SCDYNAMICSTORECOPYCOMPUTERNAME */
597
598
6eb98aee
MS
599/*
600 * Do we have the getgrouplist() function?
601 */
602
603#undef HAVE_GETGROUPLIST
604
605
536bc2c6 606/*
8072030b 607 * Do we have macOS 10.4's mbr_XXX functions?
536bc2c6
MS
608 */
609
610/* #undef HAVE_MEMBERSHIP_H */
611/* #undef HAVE_MEMBERSHIPPRIV_H */
612/* #undef HAVE_MBR_UID_TO_UUID */
613
614
615/*
eac3a0a0 616 * Do we have Darwin's notify_post header and function?
536bc2c6
MS
617 */
618
619/* #undef HAVE_NOTIFY_H */
620/* #undef HAVE_NOTIFY_POST */
621
622
536bc2c6 623/*
eac3a0a0 624 * Do we have DBUS?
536bc2c6
MS
625 */
626
eac3a0a0
MS
627/* #undef HAVE_DBUS */
628/* #undef HAVE_DBUS_MESSAGE_ITER_INIT_APPEND */
1e564ac8 629/* #undef HAVE_DBUS_THREADS_INIT */
536bc2c6
MS
630
631
632/*
633 * Do we have the GSSAPI support library (for Kerberos support)?
634 */
635
eac3a0a0
MS
636/* #undef HAVE_GSS_ACQUIRE_CRED_EX_F */
637/* #undef HAVE_GSS_C_NT_HOSTBASED_SERVICE */
638/* #undef HAVE_GSS_GSSAPI_H */
639/* #undef HAVE_GSS_GSSAPI_SPI_H */
536bc2c6 640/* #undef HAVE_GSSAPI */
536bc2c6 641/* #undef HAVE_GSSAPI_GSSAPI_H */
eac3a0a0 642/* #undef HAVE_GSSAPI_H */
536bc2c6
MS
643
644
645/*
646 * Default GSS service name...
647 */
648
f8b3a85b 649#define CUPS_DEFAULT_GSSSERVICENAME "host"
536bc2c6
MS
650
651
652/*
653 * Select/poll interfaces...
654 */
655
656/* #undef HAVE_POLL */
657/* #undef HAVE_EPOLL */
658/* #undef HAVE_KQUEUE */
659
660
661/*
662 * Do we have the <dlfcn.h> header?
663 */
664
665/* #undef HAVE_DLFCN_H */
666
667
668/*
669 * Do we have <sys/param.h>?
670 */
671
672/* #undef HAVE_SYS_PARAM_H */
673
674
675/*
676 * Do we have <sys/ucred.h>?
677 */
678
679/* #undef HAVE_SYS_UCRED_H */
680
681
682/*
683 * Do we have removefile()?
684 */
685
686/* #undef HAVE_REMOVEFILE */
687
688
689/*
690 * Do we have <sandbox.h>?
691 */
692
693/* #undef HAVE_SANDBOX_H */
694
695
696/*
697 * Which random number generator function to use...
698 */
699
f8b3a85b 700/* #undef HAVE_ARC4RANDOM */
536bc2c6 701/* #undef HAVE_RANDOM */
536bc2c6
MS
702/* #undef HAVE_LRAND48 */
703
f8b3a85b
MS
704#ifdef HAVE_ARC4RANDOM
705# define CUPS_RAND() arc4random()
61b7ebde 706# define CUPS_SRAND(v)
f8b3a85b
MS
707#elif defined(HAVE_RANDOM)
708# define CUPS_RAND() random()
709# define CUPS_SRAND(v) srandom(v)
710#elif defined(HAVE_LRAND48)
711# define CUPS_RAND() lrand48()
712# define CUPS_SRAND(v) srand48(v)
713#else
714# define CUPS_RAND() rand()
715# define CUPS_SRAND(v) srand(v)
716#endif /* HAVE_ARC4RANDOM */
717
536bc2c6 718
536bc2c6
MS
719/*
720 * Do we have libusb?
721 */
722
db8b865d 723/* #undef HAVE_LIBUSB */
536bc2c6
MS
724
725
726/*
727 * Do we have libwrap and tcpd.h?
728 */
729
730/* #undef HAVE_TCPD_H */
ef416fc2 731
732
eac3a0a0
MS
733/*
734 * Do we have <iconv.h>?
735 */
736
737/* #undef HAVE_ICONV_H */
738
739
740/*
741 * Do we have statfs or statvfs and one of the corresponding headers?
742 */
743
744/* #undef HAVE_STATFS */
745/* #undef HAVE_STATVFS */
746/* #undef HAVE_SYS_MOUNT_H */
747/* #undef HAVE_SYS_STATFS_H */
748/* #undef HAVE_SYS_STATVFS_H */
749/* #undef HAVE_SYS_VFS_H */
750
751
752/*
8072030b 753 * Location of macOS localization bundle, if any.
eac3a0a0
MS
754 */
755
756/* #undef CUPS_BUNDLEDIR */
757
758
759/*
db8b865d 760 * Do we have XPC?
eac3a0a0
MS
761 */
762
db8b865d
MS
763/* #undef HAVE_XPC */
764/* #undef HAVE_XPC_PRIVATE_H */
eac3a0a0
MS
765
766
767/*
db8b865d 768 * Do we have Mini-XML?
eac3a0a0
MS
769 */
770
db8b865d
MS
771/* #undef HAVE_MXML_H */
772
773
774/*
775 * Do we have the C99 abs() function?
776 */
eac3a0a0 777
db8b865d
MS
778/* #undef HAVE_ABS */
779#if !defined(HAVE_ABS) && !defined(abs)
780# if defined(__GNUC__) || __STDC_VERSION__ >= 199901L
781# define abs(x) _cups_abs(x)
782static inline int _cups_abs(int i) { return (i < 0 ? -i : i); }
783# elif defined(_MSC_VER)
784# define abs(x) _cups_abs(x)
785static __inline int _cups_abs(int i) { return (i < 0 ? -i : i); }
786# else
787# define abs(x) ((x) < 0 ? -(x) : (x))
788# endif /* __GNUC__ || __STDC_VERSION__ */
789#endif /* !HAVE_ABS && !abs */
eac3a0a0 790
ef416fc2 791#endif /* !_CUPS_CONFIG_H_ */