From 5909c80ec464046df19551dea37f08e36aa8973d Mon Sep 17 00:00:00 2001 From: Amos Jeffries Date: Wed, 10 Dec 2025 16:52:37 +1300 Subject: [PATCH] Polish SQUID_CHECK_KRB5_CONTEXT_MEMORY_KEYTAB macro --- acinclude/krb5.m4 | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/acinclude/krb5.m4 b/acinclude/krb5.m4 index 156c6a25980..704c0165742 100644 --- a/acinclude/krb5.m4 +++ b/acinclude/krb5.m4 @@ -5,6 +5,27 @@ ## Please see the COPYING and CONTRIBUTORS files for details. ## +dnl check whether the Kerberos context has a memory keytab +AC_DEFUN([SQUID_CHECK_KRB5_CONTEXT_MEMORY_KEYTAB],[ + AC_REQUIRE([SQUID_STATE_SAVE]) + AC_REQUIRE([SQUID_STATE_ROLLBACK]) + AC_REQUIRE([SQUID_DEFINE_BOOL]) + AC_CACHE_CHECK([for memory keytab],squid_cv_krb5_memory_keytab,[ + SQUID_STATE_SAVE(squid_krb5_test) + CPPFLAGS="-I${srcdir:-.} $CPPFLAGS" + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[#include "compat/krb5.h"]],[[ + krb5_context c; + krb5_keytab kt; + krb5_init_context(&c); + return krb5_kt_resolve(c, "MEMORY:test_keytab", &kt); + ]]) + ],[squid_cv_krb5_memory_keytab=yes],[squid_cv_krb5_memory_keytab=no],[:]) + SQUID_STATE_ROLLBACK(squid_krb5_test) + ]) + SQUID_DEFINE_BOOL(HAVE_KRB5_MEMORY_KEYTAB,$squid_cv_krb5_memory_keytab,[Kerberos has MEMORY: keytab support]) +]) dnl SQUID_CHECK_KRB5_CONTEXT_MEMORY_KEYTAB + AC_DEFUN([SQUID_CHECK_SOLARIS_KRB5],[ # no pkg-config for solaris native Kerberos AS_IF([test "$cross_compiling" = "no" -a "x$with_mit_krb5" != "xyes" -a "x$with_mit_krb5" != "xno"],[ @@ -65,29 +86,6 @@ int main(int argc, char *argv[]) ]) ]) -dnl check whether the kerberos context has a memory keytab. Sets -dnl squid_cv_memory_keytab if that's the case. -AC_DEFUN([SQUID_CHECK_KRB5_CONTEXT_MEMORY_KEYTAB],[ - AC_CACHE_CHECK([for memory keytab], squid_cv_memory_keytab, [ - SQUID_STATE_SAVE(squid_krb5_test) - CPPFLAGS="-I${srcdir:-.} $CPPFLAGS" - AC_RUN_IFELSE([ - AC_LANG_SOURCE([[ -#include "compat/krb5.h" -int main(int argc, char *argv[]) -{ - krb5_context context; - krb5_keytab kt; - - krb5_init_context(&context); - return krb5_kt_resolve(context, "MEMORY:test_keytab", &kt); -} - ]]) - ], [ squid_cv_memory_keytab=yes ], [ squid_cv_memory_keytab=no ], [:]) - SQUID_STATE_ROLLBACK(squid_krb5_test) - ]) -]) - dnl check for PAC requirements AC_DEFUN([SQUID_CHECK_KRB5_PAC_SUPPORT],[ AC_CHECK_TYPE(krb5_pac,[ @@ -279,8 +277,6 @@ AC_DEFUN([SQUID_CHECK_KRB5_FUNCS],[ [Define if kerberos has MEMORY: cache support]) SQUID_CHECK_KRB5_CONTEXT_MEMORY_KEYTAB - SQUID_DEFINE_BOOL(HAVE_KRB5_MEMORY_KEYTAB,$squid_cv_memory_keytab, - [Define if kerberos has MEMORY: keytab support]) SQUID_CHECK_WORKING_GSSAPI SQUID_DEFINE_BOOL(HAVE_GSSAPI,$squid_cv_working_gssapi,[GSSAPI support])