diff options
Diffstat (limited to 'clientloop.c')
-rw-r--r-- | clientloop.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clientloop.c b/clientloop.c index c1d1d4472..2ef816ab3 100644 --- a/clientloop.c +++ b/clientloop.c | |||
@@ -111,6 +111,10 @@ | |||
111 | #include "msg.h" | 111 | #include "msg.h" |
112 | #include "roaming.h" | 112 | #include "roaming.h" |
113 | 113 | ||
114 | #ifdef GSSAPI | ||
115 | #include "ssh-gss.h" | ||
116 | #endif | ||
117 | |||
114 | /* import options */ | 118 | /* import options */ |
115 | extern Options options; | 119 | extern Options options; |
116 | 120 | ||
@@ -1599,6 +1603,15 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id) | |||
1599 | /* Do channel operations unless rekeying in progress. */ | 1603 | /* Do channel operations unless rekeying in progress. */ |
1600 | if (!rekeying) { | 1604 | if (!rekeying) { |
1601 | channel_after_select(readset, writeset); | 1605 | channel_after_select(readset, writeset); |
1606 | |||
1607 | #ifdef GSSAPI | ||
1608 | if (options.gss_renewal_rekey && | ||
1609 | ssh_gssapi_credentials_updated(GSS_C_NO_CONTEXT)) { | ||
1610 | debug("credentials updated - forcing rekey"); | ||
1611 | need_rekeying = 1; | ||
1612 | } | ||
1613 | #endif | ||
1614 | |||
1602 | if (need_rekeying || packet_need_rekeying()) { | 1615 | if (need_rekeying || packet_need_rekeying()) { |
1603 | debug("need rekeying"); | 1616 | debug("need rekeying"); |
1604 | xxx_kex->done = 0; | 1617 | xxx_kex->done = 0; |