]> git.pld-linux.org Git - packages/nfs-utils.git/blob - nfs-utils-heimdal_functions.patch
- revert accidental removal
[packages/nfs-utils.git] / nfs-utils-heimdal_functions.patch
1 --- utils/gssd/krb5_util.c      2008-10-17 14:20:09.000000000 +0000
2 +++ utils/gssd/krb5_util.c      2008-11-22 13:52:42.000000000 +0000
3 @@ -115,9 +115,7 @@
4  #include <errno.h>
5  #include <time.h>
6  #include <gssapi/gssapi.h>
7 -#ifdef USE_PRIVATE_KRB5_FUNCTIONS
8  #include <gssapi/gssapi_krb5.h>
9 -#endif
10  #include <krb5.h>
11  #include <rpc/auth_gss.h>
12  
13 @@ -927,9 +927,37 @@ 
14  {
15         krb5_error_code ret;
16         krb5_creds creds;
17 -       krb5_cc_cursor cur;
18         int found = 0;
19  
20 +#ifdef HAVE_HEIMDAL
21 +       krb5_creds pattern;
22 +       krb5_const_realm client_realm;
23 +
24 +       krb5_cc_clear_mcred(&pattern);
25 +
26 +       client_realm = krb5_principal_get_realm (context, principal);
27 +
28 +       ret = krb5_make_principal (context, &pattern.server,
29 +                                  client_realm, KRB5_TGS_NAME, client_realm,
30 +                                  NULL);
31 +       if (ret)
32 +         krb5_err (context, 1, ret, "krb5_make_principal");
33 +       pattern.client = principal;
34 +
35 +       ret = krb5_cc_retrieve_cred (context, ccache, 0, &pattern, &creds);
36 +       krb5_free_principal (context, pattern.server);
37 +       if (ret) {
38 +         if (ret == KRB5_CC_END)
39 +            return 1;
40 +         krb5_err (context, 1, ret, "krb5_cc_retrieve_cred");
41 +       }
42 +
43 +       found = creds.times.endtime > time(NULL);
44 +
45 +       krb5_free_cred_contents (context, &creds);
46 +#else
47 +       krb5_cc_cursor cur;
48 +
49         ret = krb5_cc_start_seq_get(context, ccache, &cur);
50         if (ret) 
51                 return 0;
52 @@ -949,6 +977,7 @@ 
53                 krb5_free_cred_contents(context, &creds);
54         }
55         krb5_cc_end_seq_get(context, ccache, &cur);
56 +#endif
57  
58         return found;
59  }
60 @@ -995,6 +1024,9 @@ 
61         }
62         krb5_free_principal(context, principal);
63  err_princ:
64 +#ifdef HAVE_HEIMDAL
65 +#define KRB5_TC_OPENCLOSE              0x00000001
66 +#endif
67         krb5_cc_set_flags(context, ccache,  KRB5_TC_OPENCLOSE);
68         krb5_cc_close(context, ccache);
69  err_cache:
This page took 0.063301 seconds and 3 git commands to generate.