diff options
author | Sumit Bose <sbose@redhat.com> | 2012-10-15 13:24:28 +0200 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2012-10-26 12:10:23 -0400 |
commit | 95a386c009fabc76a700a2bea6dd53ae987961e1 (patch) | |
tree | a4082cf4dbd42e7633a60b3fd35e161cc715a35b | |
parent | 8af633c9d2610d0129b3cf63dc7bc019452d77db (diff) | |
download | sssd-95a386c009fabc76a700a2bea6dd53ae987961e1.tar.gz sssd-95a386c009fabc76a700a2bea6dd53ae987961e1.tar.xz sssd-95a386c009fabc76a700a2bea6dd53ae987961e1.zip |
Add replacement for krb5_find_authdata()
krb5_find_authdata() is only available in MIT Kerberos 1.10 or higher.
To allow sssd to be compiled on platform with lower version of MIT
Kerberos a replacement call is added. Please note that on those
platform the replacement call will only return an error. If the
krb5_find_authdata functionality is really needed on those platform it
must be implemented by a different patch.
-rw-r--r-- | src/external/krb5.m4 | 1 | ||||
-rw-r--r-- | src/util/sss_krb5.c | 14 | ||||
-rw-r--r-- | src/util/sss_krb5.h | 5 |
3 files changed, 20 insertions, 0 deletions
diff --git a/src/external/krb5.m4 b/src/external/krb5.m4 index cb420aaed..5bc871128 100644 --- a/src/external/krb5.m4 +++ b/src/external/krb5.m4 @@ -60,6 +60,7 @@ AC_CHECK_FUNCS([krb5_get_init_creds_opt_alloc krb5_get_error_message \ krb5_cc_cache_match \ krb5_timestamp_to_sfstring \ krb5_set_trace_callback \ + krb5_find_authdata \ krb5_cc_get_full_name]) CFLAGS=$SAVE_CFLAGS LIBS=$SAVE_LIBS diff --git a/src/util/sss_krb5.c b/src/util/sss_krb5.c index c36a13748..cbee96e86 100644 --- a/src/util/sss_krb5.c +++ b/src/util/sss_krb5.c @@ -990,3 +990,17 @@ sss_child_set_krb5_tracing(krb5_context ctx) return 0; } #endif /* HAVE_KRB5_SET_TRACE_CALLBACK */ + +krb5_error_code sss_krb5_find_authdata(krb5_context context, + krb5_authdata *const *ticket_authdata, + krb5_authdata *const *ap_req_authdata, + krb5_authdatatype ad_type, + krb5_authdata ***results) +{ +#ifdef HAVE_KRB5_FIND_AUTHDATA + return krb5_find_authdata(context, ticket_authdata, ap_req_authdata, + ad_type, results); +#else + return ENOTSUP; +#endif +} diff --git a/src/util/sss_krb5.h b/src/util/sss_krb5.h index c16dab59a..6a61f0ea8 100644 --- a/src/util/sss_krb5.h +++ b/src/util/sss_krb5.h @@ -170,4 +170,9 @@ typedef krb5_times sss_krb5_ticket_times; /* Redirect libkrb5 tracing towards our DEBUG statements */ errno_t sss_child_set_krb5_tracing(krb5_context ctx); +krb5_error_code sss_krb5_find_authdata(krb5_context context, + krb5_authdata *const *ticket_authdata, + krb5_authdata *const *ap_req_authdata, + krb5_authdatatype ad_type, + krb5_authdata ***results); #endif /* __SSS_KRB5_H__ */ |