krb5: Require krb5_principal_compare_any_realm be available to build with krb5
authorAndrew Bartlett <abartlet@samba.org>
Thu, 5 Jan 2012 00:30:22 +0000 (11:30 +1100)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 10 Jan 2012 20:50:07 +0000 (21:50 +0100)
libcli/auth/krb5_wrap.c
source3/configure.in
source3/wscript

index 8bd17670bb5ee0deecf9fcde5ac7a0bcb1116c54..a16a7cdffa61df5ceaf24a92b564fbfd09bc874c 100644 (file)
@@ -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,
index 53eaaf2bc5ca00e6d9d58372b7625e1337110668..b408b1c1a6345a3bbcf6dd80b5c424792c117866 100644 (file)
@@ -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
index 7d6b70859189a4a10ed05fa6e947df7f49d081ff..8734a4f069f63f6f6e88f3297bc7014f2d535472 100644 (file)
@@ -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")