From 0c6af1e2da4619634c3806b5c0ee022bef935bb5 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Thu, 5 Jan 2012 11:30:22 +1100 Subject: krb5: Require krb5_principal_compare_any_realm be available to build with krb5 --- libcli/auth/krb5_wrap.c | 28 ---------------------------- source3/configure.in | 6 ++++++ source3/wscript | 3 +++ 3 files changed, 9 insertions(+), 28 deletions(-) diff --git a/libcli/auth/krb5_wrap.c b/libcli/auth/krb5_wrap.c index 8bd17670bb..a16a7cdffa 100644 --- a/libcli/auth/krb5_wrap.c +++ b/libcli/auth/krb5_wrap.c @@ -187,35 +187,7 @@ krb5_error_code smb_krb5_unparse_name(TALLOC_CTX *mem_ctx, krb5_const_principal princ1, krb5_const_principal princ2) { -#ifdef HAVE_KRB5_PRINCIPAL_COMPARE_ANY_REALM - return krb5_principal_compare_any_realm(context, princ1, princ2); - -/* krb5_princ_size is a macro in MIT */ -#elif defined(HAVE_KRB5_PRINC_SIZE) || defined(krb5_princ_size) - - int i, len1, len2; - const krb5_data *p1, *p2; - - len1 = krb5_princ_size(context, princ1); - len2 = krb5_princ_size(context, princ2); - - if (len1 != len2) - return False; - - for (i = 0; i < len1; i++) { - - p1 = krb5_princ_component(context, (krb5_principal)discard_const(princ1), i); - p2 = krb5_princ_component(context, (krb5_principal)discard_const(princ2), i); - - if (p1->length != p2->length || memcmp(p1->data, p2->data, p1->length)) - return False; - } - - return True; -#else -#error NO_SUITABLE_PRINCIPAL_COMPARE_FUNCTION -#endif } void smb_krb5_checksum_from_pac_sig(krb5_checksum *cksum, diff --git a/source3/configure.in b/source3/configure.in index 53eaaf2bc5..b408b1c1a6 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -4447,6 +4447,12 @@ if test x"$with_ads_support" != x"no"; then use_ads=no fi + if test x"$ac_cv_func_ext_krb5_principal_compare_any_realm" != x"yes" + then + AC_MSG_WARN(krb5_principal_compare_any_realm not found in -lkrb5) + use_ads=no + fi + if test x"$ac_cv_func_ext_krb5_principal2salt" != x"yes" -a \ x"$ac_cv_func_ext_krb5_get_pw_salt" != x"yes" then diff --git a/source3/wscript b/source3/wscript index 7d6b708591..8734a4f069 100644 --- a/source3/wscript +++ b/source3/wscript @@ -768,6 +768,9 @@ return krb5_kt_resolve(context, "WRFILE:api", &keytab); if not conf.CONFIG_SET('HAVE_KRB5_GET_RENEWED_CREDS'): Logs.warn("krb5_get_renewed_creds not found in -lkrb5") use_ads=False + if not conf.CONFIG_SET('HAVE_KRB5_PRINCIPAL_COMPARE_ANY_REALM'): + Logs.warn("krb5_principal_compare_any_realm not found in -lkrb5") + use_ads=False if not conf.CONFIG_SET('HAVE_KRB5_PRINCIPAL2SALT') and \ not conf.CONFIG_SET('HAVE_KRB5_GET_PW_SALT'): Logs.warn("no CREATE_KEY_FUNCTIONS detected") -- cgit