summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2012-01-05 11:30:22 +1100
committerAndrew Bartlett <abartlet@samba.org>2012-01-10 21:50:07 +0100
commit0c6af1e2da4619634c3806b5c0ee022bef935bb5 (patch)
tree1fa3517cf31153a9c7aefce29a434b92840d84d8
parent39d73e2420be17cc7db16353e1a51a5d2123f9f1 (diff)
downloadsamba-0c6af1e2da4619634c3806b5c0ee022bef935bb5.tar.gz
samba-0c6af1e2da4619634c3806b5c0ee022bef935bb5.tar.bz2
samba-0c6af1e2da4619634c3806b5c0ee022bef935bb5.zip
krb5: Require krb5_principal_compare_any_realm be available to build with krb5
-rw-r--r--libcli/auth/krb5_wrap.c28
-rw-r--r--source3/configure.in6
-rw-r--r--source3/wscript3
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")