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