#! /bin/sh /usr/share/dpatch/dpatch-run ## 91krb5_errors_afs_support.dpatch by ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: No description. @DPATCH@ diff -urNad screen-4.0.3~/kerberos.c screen-4.0.3/kerberos.c --- screen-4.0.3~/kerberos.c 2008-10-31 22:24:55.102690021 -0500 +++ screen-4.0.3/kerberos.c 2008-10-31 22:24:55.102690021 -0500 @@ -52,6 +52,7 @@ krb5_cc_cursor cur; time_t now; int renew; + char *name = NULL; SetTimeout(&renewev, 60000); evenq(&renewev); @@ -77,6 +78,20 @@ { if(!creds.times.starttime) creds.times.starttime = creds.times.authtime; + if((ret = krb5_unparse_name(context, myprinc, &name)) != 0) + { + Msg(0, "Could not get name for principal: %s", error_message(ret)); + krb5_free_principal(context, myprinc); + krb5_free_cred_contents(context, &creds); + return; + } + if(creds.times.endtime < now) + { + Msg(0, "Could not renew %s because it has expired.", name); + krb5_free_principal(context, myprinc); + krb5_free_cred_contents(context, &creds); + return; + } if(now > (creds.times.starttime + (((creds.times.endtime - creds.times.starttime) * 9) / 10))) renew = 1; break; @@ -114,7 +129,12 @@ krb5_free_principal(context, myprinc); krb5_free_cred_contents(context, &creds); - Msg(0, "Renewed Kerberos credentials successfully."); + + ret = system("/usr/bin/aklog"); + if(ret == 0) + Msg(0, "Renewed Kerberos and AFS credentials successfully."); + else + Msg(0, "Renewed Kerberos credentials successfully."); } int