krb5.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2025 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 #ifndef SQUID_COMPAT_KRB5_H
10 #define SQUID_COMPAT_KRB5_H
11 
12 /*
13  * The Kerberos library krb5.h header file has various major
14  * bugs in some implementations:
15  *
16  * - MacOS marks as deprecated the POSIX compatible APIs.
17  * Apparently to encourage code to use their internal APIs.
18  *
19  * - Heimdal may lack the extern "C" syntax for building in C++
20  *
21  * This file exists to fix those issues the best we can and to
22  * ensure the logic is identical in Squid code, Squid helpers,
23  * and autoconf tests. See acinclude/krb5.h for the latter.
24  */
25 
26 #if HAVE_KRB5_H
27 # if USE_APPLE_KRB5
28 # define KERBEROS_APPLE_DEPRECATED(x)
29 # endif
30 # if HAVE_BROKEN_HEIMDAL_KRB5_H && defined(__cplusplus)
31 extern "C" {
32 # include <krb5.h>
33 }
34 # else
35 # include <krb5.h>
36 # endif
37 #endif /* HAVE_KRB5_H */
38 
39 #endif /* SQUID_COMPAT_KRB5_H */

 

Introduction

Documentation

Support

Miscellaneous