X-Git-Url: http://www.project-moonshot.org/gitweb/?p=openssh.git;a=blobdiff_plain;f=clientloop.c;fp=clientloop.c;h=ed1902363298402385d7d05e0660b1b4324ab966;hp=f6c1444a385bad648eef44649e72d343036ee825;hb=c4431b13b468d93eabfdb2a7e9c4a245678067a5;hpb=fc4c43dfd9d29f097b21cdce5cadee691948dd4a diff --git a/clientloop.c b/clientloop.c index f6c1444..ed19023 100644 --- a/clientloop.c +++ b/clientloop.c @@ -111,6 +111,10 @@ #include "msg.h" #include "roaming.h" +#ifdef GSSAPI +#include "ssh-gss.h" +#endif + /* import options */ extern Options options; @@ -1483,6 +1487,15 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id) /* Do channel operations unless rekeying in progress. */ if (!rekeying) { channel_after_select(readset, writeset); + +#ifdef GSSAPI + if (options.gss_renewal_rekey && + ssh_gssapi_credentials_updated(GSS_C_NO_CONTEXT)) { + debug("credentials updated - forcing rekey"); + need_rekeying = 1; + } +#endif + if (need_rekeying || packet_need_rekeying()) { debug("need rekeying"); xxx_kex->done = 0;