diff options
-rw-r--r-- | source4/auth/kerberos/clikrb5.c | 4 | ||||
-rw-r--r-- | source4/auth/kerberos/config.m4 | 13 | ||||
-rw-r--r-- | source4/auth/kerberos/kerberos.h | 8 |
3 files changed, 23 insertions, 2 deletions
diff --git a/source4/auth/kerberos/clikrb5.c b/source4/auth/kerberos/clikrb5.c index dc02cf7b01..3858b694a7 100644 --- a/source4/auth/kerberos/clikrb5.c +++ b/source4/auth/kerberos/clikrb5.c @@ -484,7 +484,7 @@ static int smb_krb5_context_destory_1(void *ptr) return 0; } -#if defined(HAVE_KRB5_INITLOG) && defined(HAVE_KRB5_ADDLOG_FUNC) && defined(HAVE_KRB5_FREELOG) +#ifdef HAVE_KRB5_LOGGING_CONTROL static int smb_krb5_context_destory_2(void *ptr) { struct smb_krb5_context *ctx = ptr; @@ -547,7 +547,7 @@ static void smb_krb5_debug_wrapper(const char *timestr, const char *msg, void *p } } -#if defined(HAVE_KRB5_INITLOG) && defined(HAVE_KRB5_ADDLOG_FUNC) && defined(HAVE_KRB5_FREELOG) +#ifdef HAVE_KRB5_LOGGING_CONTROL /* TODO: Should we have a different name here? */ ret = krb5_initlog((*smb_krb5_context)->krb5_context, "Samba", &(*smb_krb5_context)->logf); diff --git a/source4/auth/kerberos/config.m4 b/source4/auth/kerberos/config.m4 index 010a1c85da..0c24828907 100644 --- a/source4/auth/kerberos/config.m4 +++ b/source4/auth/kerberos/config.m4 @@ -263,9 +263,22 @@ if test x"$with_krb5_support" != x"no"; then AC_CHECK_FUNC_EXT(krb5_initlog, $KRB5_LIBS) AC_CHECK_FUNC_EXT(krb5_freelog, $KRB5_LIBS) AC_CHECK_FUNC_EXT(krb5_addlog_func, $KRB5_LIBS) + AC_CHECK_FUNC_EXT(krb5_set_warn_dest, $KRB5_LIBS) LIBS="$LIBS $KRB5_LIBS" + AC_CACHE_CHECK([for krb5_log_facility type], + samba_cv_HAVE_KRB5_LOG_FACILITY,[ + AC_TRY_COMPILE([#include <krb5.h>], + [krb5_log_facility block;], + samba_cv_HAVE_KRB5_LOG_FACILITY=yes, + samba_cv_HAVE_KRB5_LOG_FACILITY=no)]) + + if test x"$samba_cv_HAVE_KRB5_LOG_FACILITY" = x"yes"; then + AC_DEFINE(HAVE_KRB5_LOG_FACILITY,1, + [Whether the type krb5_log_facility exists]) + fi + AC_CACHE_CHECK([for krb5_encrypt_block type], samba_cv_HAVE_KRB5_ENCRYPT_BLOCK,[ AC_TRY_COMPILE([#include <krb5.h>], diff --git a/source4/auth/kerberos/kerberos.h b/source4/auth/kerberos/kerberos.h index b65416e619..286e8ceb2e 100644 --- a/source4/auth/kerberos/kerberos.h +++ b/source4/auth/kerberos/kerberos.h @@ -21,9 +21,17 @@ #if defined(HAVE_KRB5) +#if defined(HAVE_KRB5_INITLOG) && defined(HAVE_KRB5_ADDLOG_FUNC) && defined(HAVE_KRB5_FREELOG) && defined (HAVE_KRB5_SET_WARN_DEST) && defined(HAVE_KRB5_LOG_FACILITY) +#define HAVE_KRB5_LOGGGING_CONTROL +#else +#undef HAVE_KRB5_LOGGGING_CONTROL +#endif + struct smb_krb5_context { krb5_context krb5_context; +#ifdef HAVE_KRB5_LOGGGING_CONTROL krb5_log_facility *logf; +#endif }; |