summaryrefslogtreecommitdiff
path: root/serverloop.c
diff options
context:
space:
mode:
Diffstat (limited to 'serverloop.c')
-rw-r--r--serverloop.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/serverloop.c b/serverloop.c
index 47bc168b2..80d1db549 100644
--- a/serverloop.c
+++ b/serverloop.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: serverloop.c,v 1.181 2016/01/14 16:17:40 markus Exp $ */ 1/* $OpenBSD: serverloop.c,v 1.182 2016/02/08 10:57:07 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -820,7 +820,7 @@ void
820server_loop2(Authctxt *authctxt) 820server_loop2(Authctxt *authctxt)
821{ 821{
822 fd_set *readset = NULL, *writeset = NULL; 822 fd_set *readset = NULL, *writeset = NULL;
823 int rekeying = 0, max_fd; 823 int max_fd;
824 u_int nalloc = 0; 824 u_int nalloc = 0;
825 u_int64_t rekey_timeout_ms = 0; 825 u_int64_t rekey_timeout_ms = 0;
826 826
@@ -847,11 +847,11 @@ server_loop2(Authctxt *authctxt)
847 for (;;) { 847 for (;;) {
848 process_buffered_input_packets(); 848 process_buffered_input_packets();
849 849
850 rekeying = (active_state->kex != NULL && !active_state->kex->done); 850 if (!ssh_packet_is_rekeying(active_state) &&
851 851 packet_not_very_much_data_to_write())
852 if (!rekeying && packet_not_very_much_data_to_write())
853 channel_output_poll(); 852 channel_output_poll();
854 if (options.rekey_interval > 0 && compat20 && !rekeying) 853 if (options.rekey_interval > 0 && compat20 &&
854 !ssh_packet_is_rekeying(active_state))
855 rekey_timeout_ms = packet_get_rekey_timeout() * 1000; 855 rekey_timeout_ms = packet_get_rekey_timeout() * 1000;
856 else 856 else
857 rekey_timeout_ms = 0; 857 rekey_timeout_ms = 0;
@@ -866,14 +866,8 @@ server_loop2(Authctxt *authctxt)
866 } 866 }
867 867
868 collect_children(); 868 collect_children();
869 if (!rekeying) { 869 if (!ssh_packet_is_rekeying(active_state))
870 channel_after_select(readset, writeset); 870 channel_after_select(readset, writeset);
871 if (packet_need_rekeying()) {
872 debug("need rekeying");
873 active_state->kex->done = 0;
874 kex_send_kexinit(active_state);
875 }
876 }
877 process_input(readset); 871 process_input(readset);
878 if (connection_closed) 872 if (connection_closed)
879 break; 873 break;