updated on Mon Jan 16 20:00:43 UTC 2012
[aur-mirror.git] / nfs-utils-ipv6 / nfs-utils-1.1.6-heimdal_functions.patch
blob7f6c7a751564856fa499330511b9aa443c20bc9c
1 diff -Naur nfs-utils-1.1.6.orig/utils/gssd/krb5_util.c nfs-utils-1.1.6/utils/gssd/krb5_util.c
2 --- utils/gssd/krb5_util.c 2009-04-20 19:32:50.000000000 +0200
3 +++ utils/gssd/krb5_util.c 2009-04-20 20:57:31.000000000 +0200
4 @@ -940,9 +940,37 @@
6 krb5_error_code ret;
7 krb5_creds creds;
8 - krb5_cc_cursor cur;
9 int found = 0;
11 +#ifdef HAVE_HEIMDAL
12 + krb5_creds pattern;
13 + krb5_realm *client_realm;
15 + krb5_cc_clear_mcred(&pattern);
17 + client_realm = krb5_princ_realm (context, principal);
19 + ret = krb5_make_principal (context, &pattern.server,
20 + *client_realm, KRB5_TGS_NAME, *client_realm,
21 + NULL);
22 + if (ret)
23 + krb5_err (context, 1, ret, "krb5_make_principal");
24 + pattern.client = principal;
26 + ret = krb5_cc_retrieve_cred (context, ccache, 0, &pattern, &creds);
27 + krb5_free_principal (context, pattern.server);
28 + if (ret) {
29 + if (ret == KRB5_CC_END)
30 + return 1;
31 + krb5_err (context, 1, ret, "krb5_cc_retrieve_cred");
32 + }
34 + found = creds.times.endtime > time(NULL);
36 + krb5_free_cred_contents (context, &creds);
37 +#else
38 + krb5_cc_cursor cur;
40 ret = krb5_cc_start_seq_get(context, ccache, &cur);
41 if (ret)
42 return 0;
43 @@ -962,6 +990,7 @@
44 krb5_free_cred_contents(context, &creds);
46 krb5_cc_end_seq_get(context, ccache, &cur);
47 +#endif
49 return found;
51 @@ -1008,6 +1037,9 @@
53 krb5_free_principal(context, principal);
54 err_princ:
55 +#ifdef HAVE_HEIMDAL
56 +#define KRB5_TC_OPENCLOSE 0x00000001
57 +#endif
58 krb5_cc_set_flags(context, ccache, KRB5_TC_OPENCLOSE);
59 krb5_cc_close(context, ccache);
60 err_cache:
61 @@ -1262,7 +1294,7 @@
62 if (context != NULL) {
63 origmsg = krb5_get_error_message(context, code);
64 msg = strdup(origmsg);
65 - krb5_free_error_message(context, origmsg);
66 + krb5_free_error_string(context, origmsg);
68 #endif
69 if (msg != NULL)