]>
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 | |
21904062 JB |
16 | --- nfs-utils-2.5.1/utils/gssd/krb5_util.c.orig 2020-06-18 19:10:06.000000000 +0200 |
17 | +++ nfs-utils-2.5.1/utils/gssd/krb5_util.c 2020-08-22 18:47:27.393014417 +0200 | |
21904062 JB |
18 | @@ -836,7 +836,11 @@ |
19 | myhostad[i+1] = 0; | |
20 | } | |
21 | if (adhostoverride) | |
22 | +#ifdef HAVE_HEIMDAL | |
23 | + free(adhostoverride); | |
24 | +#else | |
25 | krb5_free_string(context, adhostoverride); | |
26 | +#endif | |
27 | ||
28 | if (!srchost) { | |
29 | retval = get_full_hostname(myhostname, myhostname, sizeof(myhostname)); | |
21904062 | 30 | @@ -1003,9 +1007,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; | |
21904062 | 69 | @@ -1025,6 +1057,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 | } | |
21904062 | 77 | @@ -1071,6 +1104,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: | |
21904062 | 87 | @@ -1369,7 +1405,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) |