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