]>
Commit | Line | Data |
---|---|---|
7aa240b7 JR |
1 | --- nfs-utils-1.2.3.dist/aclocal/kerberos5.m4~ 2010-09-28 14:24:16.000000000 +0200 |
2 | +++ nfs-utils-1.2.3.dist/aclocal/kerberos5.m4 2010-10-03 14:13:17.274424855 +0200 | |
7aa240b7 JR |
3 | @@ -56,7 +56,11 @@ |
4 | dnl of Heimdal Kerberos on SuSe | |
5 | elif test \( -f $dir/include/heim_err.h -o\ | |
6 | -f $dir/include/heimdal/heim_err.h \) -a \ | |
7 | - -f $dir/lib/libroken.a; then | |
8 | + \( -f $dir/lib/libroken.a -o \ | |
9 | + -f $dir/lib64/libroken.a -o \ | |
10 | + -f $dir/lib64/libroken.so -o \ | |
11 | + -f $dir/lib/libroken.so \) ; then | |
12 | + K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($(2),v,"."); if (v@<:@"3"@:>@ == "") v@<:@"3"@:>@ = "0"; print v@<:@"1"@:>@v@<:@"2"@:>@v@<:@"3"@:>@ }'` | |
13 | AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries]) | |
14 | KRBDIR="$dir" | |
15 | gssapi_lib=gssapi | |
15e429e6 JB |
16 | --- nfs-utils-2.5.3/utils/gssd/krb5_util.c.orig 2021-02-20 18:16:52.000000000 +0100 |
17 | +++ nfs-utils-2.5.3/utils/gssd/krb5_util.c 2021-02-24 21:11:01.392926374 +0100 | |
18 | @@ -891,7 +891,11 @@ | |
19 | myhostad[i+1] = 0; | |
21904062 JB |
20 | } |
21 | if (adhostoverride) | |
22 | +#ifdef HAVE_HEIMDAL | |
23 | + free(adhostoverride); | |
24 | +#else | |
25 | krb5_free_string(context, adhostoverride); | |
26 | +#endif | |
27 | ||
15e429e6 JB |
28 | code = krb5_get_default_realm(context, &default_realm); |
29 | if (code) { | |
30 | @@ -1050,9 +1054,37 @@ | |
7aa240b7 JR |
31 | { |
32 | krb5_error_code ret; | |
33 | krb5_creds creds; | |
34 | - krb5_cc_cursor cur; | |
35 | int found = 0; | |
36 | ||
37 | +#ifdef HAVE_HEIMDAL | |
38 | + krb5_creds pattern; | |
39 | + krb5_const_realm client_realm; | |
40 | + | |
41 | + krb5_cc_clear_mcred(&pattern); | |
42 | + | |
43 | + client_realm = krb5_principal_get_realm (context, principal); | |
44 | + | |
45 | + ret = krb5_make_principal (context, &pattern.server, | |
46 | + client_realm, KRB5_TGS_NAME, client_realm, | |
47 | + NULL); | |
48 | + if (ret) | |
49 | + krb5_err (context, 1, ret, "krb5_make_principal"); | |
50 | + pattern.client = principal; | |
51 | + | |
52 | + ret = krb5_cc_retrieve_cred (context, ccache, 0, &pattern, &creds); | |
53 | + krb5_free_principal (context, pattern.server); | |
54 | + if (ret) { | |
55 | + if (ret == KRB5_CC_END) | |
56 | + return 1; | |
57 | + krb5_err (context, 1, ret, "krb5_cc_retrieve_cred"); | |
58 | + } | |
59 | + | |
60 | + found = creds.times.endtime > time(NULL); | |
61 | + | |
62 | + krb5_free_cred_contents (context, &creds); | |
63 | +#else | |
64 | + krb5_cc_cursor cur; | |
65 | + | |
66 | ret = krb5_cc_start_seq_get(context, ccache, &cur); | |
67 | if (ret) | |
68 | return 0; | |
15e429e6 | 69 | @@ -1072,6 +1104,7 @@ |
7aa240b7 JR |
70 | krb5_free_cred_contents(context, &creds); |
71 | } | |
72 | krb5_cc_end_seq_get(context, ccache, &cur); | |
73 | +#endif | |
74 | ||
75 | return found; | |
76 | } | |
15e429e6 | 77 | @@ -1118,6 +1151,9 @@ |
7aa240b7 JR |
78 | } |
79 | krb5_free_principal(context, principal); | |
80 | err_princ: | |
81 | +#ifdef HAVE_HEIMDAL | |
82 | +#define KRB5_TC_OPENCLOSE 0x00000001 | |
83 | +#endif | |
84 | krb5_cc_set_flags(context, ccache, KRB5_TC_OPENCLOSE); | |
85 | krb5_cc_close(context, ccache); | |
86 | err_cache: | |
15e429e6 | 87 | @@ -1455,7 +1491,7 @@ |
c17b6001 JB |
88 | #endif |
89 | if (msg != NULL) | |
90 | return msg; | |
91 | -#if HAVE_KRB5 | |
92 | +#ifdef HAVE_KRB5 | |
93 | return strdup(error_message(code)); | |
94 | #else | |
95 | if (context != NULL) |