]> git.pld-linux.org Git - packages/nfs-utils.git/blame - nfs-utils-heimdal.patch
- updated to 2.6.4
[packages/nfs-utils.git] / nfs-utils-heimdal.patch
CommitLineData
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)
This page took 0.162787 seconds and 5 git commands to generate.