summaryrefslogtreecommitdiff
path: root/kex.c
diff options
context:
space:
mode:
Diffstat (limited to 'kex.c')
-rw-r--r--kex.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/kex.c b/kex.c
index 4c19be9a0..a09e25228 100644
--- a/kex.c
+++ b/kex.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: kex.c,v 1.81 2009/05/27 06:34:36 andreas Exp $ */ 1/* $OpenBSD: kex.c,v 1.82 2009/10/24 11:13:54 andreas Exp $ */
2/* 2/*
3 * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
4 * 4 *
@@ -48,6 +48,7 @@
48#include "match.h" 48#include "match.h"
49#include "dispatch.h" 49#include "dispatch.h"
50#include "monitor.h" 50#include "monitor.h"
51#include "roaming.h"
51 52
52#ifdef GSSAPI 53#ifdef GSSAPI
53#include "ssh-gss.h" 54#include "ssh-gss.h"
@@ -404,6 +405,16 @@ kex_choose_conf(Kex *kex)
404 sprop=peer; 405 sprop=peer;
405 } 406 }
406 407
408 /* Check whether server offers roaming */
409 if (!kex->server) {
410 char *roaming;
411 roaming = match_list(KEX_RESUME, peer[PROPOSAL_KEX_ALGS], NULL);
412 if (roaming) {
413 kex->roaming = 1;
414 xfree(roaming);
415 }
416 }
417
407 /* Algorithm Negotiation */ 418 /* Algorithm Negotiation */
408 for (mode = 0; mode < MODE_MAX; mode++) { 419 for (mode = 0; mode < MODE_MAX; mode++) {
409 newkeys = xcalloc(1, sizeof(*newkeys)); 420 newkeys = xcalloc(1, sizeof(*newkeys));