summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandreas <andreas@openbsd.org>2009-05-27 06:31:25 +0000
committerandreas <andreas@openbsd.org>2009-05-27 06:31:25 +0000
commit44b2b058809e409b80bff0c6511eb49589340c59 (patch)
treebb0111e73c2691cce441263ed1db8b057e0b5b2e
parentadd an option to change the "connect-retry" timer which defaults to 120s. (diff)
downloadwireguard-openbsd-44b2b058809e409b80bff0c6511eb49589340c59.tar.xz
wireguard-openbsd-44b2b058809e409b80bff0c6511eb49589340c59.zip
Add clear_cached_addr(), needed for upcoming changes allowing the peer
address to change. ok markus@
-rw-r--r--usr.bin/ssh/canohost.c24
-rw-r--r--usr.bin/ssh/canohost.h4
2 files changed, 18 insertions, 10 deletions
diff --git a/usr.bin/ssh/canohost.c b/usr.bin/ssh/canohost.c
index 0b37e7a5db1..007c517c126 100644
--- a/usr.bin/ssh/canohost.c
+++ b/usr.bin/ssh/canohost.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: canohost.c,v 1.64 2009/02/12 03:00:56 djm Exp $ */
+/* $OpenBSD: canohost.c,v 1.65 2009/05/27 06:31:25 andreas Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -32,6 +32,8 @@
#include "misc.h"
static void check_ip_options(int, char *);
+static char *canonical_host_ip = NULL;
+static int cached_port = -1;
/*
* Return the canonical name of the host at the other end of the socket. The
@@ -262,6 +264,16 @@ get_local_name(int sock)
return get_socket_address(sock, 0, NI_NAMEREQD);
}
+void
+clear_cached_addr(void)
+{
+ if (canonical_host_ip != NULL) {
+ xfree(canonical_host_ip);
+ canonical_host_ip = NULL;
+ }
+ cached_port = -1;
+}
+
/*
* Returns the IP-address of the remote host as a string. The returned
* string must not be freed.
@@ -270,8 +282,6 @@ get_local_name(int sock)
const char *
get_remote_ipaddr(void)
{
- static char *canonical_host_ip = NULL;
-
/* Check whether we have cached the ipaddr. */
if (canonical_host_ip == NULL) {
if (packet_connection_is_on_socket()) {
@@ -355,13 +365,11 @@ get_peer_port(int sock)
int
get_remote_port(void)
{
- static int port = -1;
-
/* Cache to avoid getpeername() on a dead connection */
- if (port == -1)
- port = get_port(0);
+ if (cached_port == -1)
+ cached_port = get_port(0);
- return port;
+ return cached_port;
}
int
diff --git a/usr.bin/ssh/canohost.h b/usr.bin/ssh/canohost.h
index cdd7b46826c..6b9a2dd83a6 100644
--- a/usr.bin/ssh/canohost.h
+++ b/usr.bin/ssh/canohost.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: canohost.h,v 1.10 2009/02/12 03:00:56 djm Exp $ */
+/* $OpenBSD: canohost.h,v 1.11 2009/05/27 06:31:25 andreas Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -24,4 +24,4 @@ char *get_local_name(int);
int get_remote_port(void);
int get_local_port(void);
int get_sock_port(int, int);
-
+void clear_cached_addr(void);