summaryrefslogtreecommitdiff
path: root/usr.bin/ssh
diff options
context:
space:
mode:
authorAndreas Gunnarsson <andreas@cvs.openbsd.org>2009-06-12 20:58:33 +0000
committerAndreas Gunnarsson <andreas@cvs.openbsd.org>2009-06-12 20:58:33 +0000
commit30e4c35a0143c6313a3a5fede36e08c094b40e55 (patch)
treefcdf0a29e36cf0068de1cb046889cd45378de1d8 /usr.bin/ssh
parentb16d1569919c9358b48a12e8791ac69ad5b6678f (diff)
Move some more statics into session_state
ok markus@ djm@
Diffstat (limited to 'usr.bin/ssh')
-rw-r--r--usr.bin/ssh/packet.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/usr.bin/ssh/packet.c b/usr.bin/ssh/packet.c
index 27342e49857..0cb48048f2e 100644
--- a/usr.bin/ssh/packet.c
+++ b/usr.bin/ssh/packet.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: packet.c,v 1.164 2009/06/12 20:43:22 andreas Exp $ */
+/* $OpenBSD: packet.c,v 1.165 2009/06/12 20:58:32 andreas Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -178,6 +178,15 @@ struct session_state {
/* Used in packet_read_poll2() */
u_int packlen;
+ /* Used in packet_send2 */
+ int rekeying;
+
+ /* Used in packet_set_interactive */
+ int set_interactive_called;
+
+ /* Used in packet_set_maxsize */
+ int set_maxsize_called;
+
TAILQ_HEAD(, packet) outgoing;
};
@@ -941,7 +950,6 @@ packet_send2_wrapped(void)
static void
packet_send2(void)
{
- static int rekeying = 0;
struct packet *p;
u_char type, *cp;
@@ -949,7 +957,7 @@ packet_send2(void)
type = cp[5];
/* during rekeying we can only send key exchange messages */
- if (rekeying) {
+ if (active_state->rekeying) {
if (!((type >= SSH2_MSG_TRANSPORT_MIN) &&
(type <= SSH2_MSG_TRANSPORT_MAX))) {
debug("enqueue packet: %u", type);
@@ -965,13 +973,13 @@ packet_send2(void)
/* rekeying starts with sending KEXINIT */
if (type == SSH2_MSG_KEXINIT)
- rekeying = 1;
+ active_state->rekeying = 1;
packet_send2_wrapped();
/* after a NEWKEYS message we can send the complete queue */
if (type == SSH2_MSG_NEWKEYS) {
- rekeying = 0;
+ active_state->rekeying = 0;
while ((p = TAILQ_FIRST(&active_state->outgoing))) {
type = p->type;
debug("dequeue packet: %u", type);
@@ -1726,11 +1734,9 @@ packet_set_tos(int interactive)
void
packet_set_interactive(int interactive)
{
- static int called = 0;
-
- if (called)
+ if (active_state->set_interactive_called)
return;
- called = 1;
+ active_state->set_interactive_called = 1;
/* Record that we are in interactive mode. */
active_state->interactive_mode = interactive;
@@ -1753,9 +1759,7 @@ packet_is_interactive(void)
int
packet_set_maxsize(u_int s)
{
- static int called = 0;
-
- if (called) {
+ if (active_state->set_maxsize_called) {
logit("packet_set_maxsize: called twice: old %d new %d",
active_state->max_packet_size, s);
return -1;
@@ -1764,7 +1768,7 @@ packet_set_maxsize(u_int s)
logit("packet_set_maxsize: bad size %d", s);
return -1;
}
- called = 1;
+ active_state->set_maxsize_called = 1;
debug("packet_set_maxsize: setting to %d", s);
active_state->max_packet_size = s;
return s;