]> andersk Git - openssh.git/commitdiff
- andreas@cvs.openbsd.org 2009/05/27 06:33:39
authordtucker <dtucker>
Sun, 21 Jun 2009 08:13:57 +0000 (08:13 +0000)
committerdtucker <dtucker>
Sun, 21 Jun 2009 08:13:57 +0000 (08:13 +0000)
     [clientloop.c]
     Send SSH2_MSG_DISCONNECT when the client disconnects. From a larger
     change from Martin Forssen, maf at appgate dot com.
     ok markus@

ChangeLog
canohost.c
canohost.h

index bd1367e7c566a5c067ae6a432caf93e107997a70..11b75e9270f3de6591e28616f5ce87552053a271 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
      Add clear_cached_addr(), needed for upcoming changes allowing the peer
      address to change.
      ok markus@
+   - andreas@cvs.openbsd.org 2009/05/27 06:33:39
+     [clientloop.c]
+     Send SSH2_MSG_DISCONNECT when the client disconnects. From a larger
+     change from Martin Forssen, maf at appgate dot com.
+     ok markus@
 
 20090616
  - (dtucker) [configure.ac defines.h] Bug #1607: handle the case where fsid_t
index 7138f48d0f418b3f8d4fa0ec7a356c75ab536472..22b19bb9fa49d487cf8d63eb0288d964cab1c31d 100644 (file)
@@ -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
@@ -35,6 +35,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
@@ -304,6 +306,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.
@@ -312,8 +324,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()) {
@@ -402,13 +412,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
index d9b41ffe5449c05112a0c6639d99cdfbab0e419e..64000f5eb3d9663342968525101030c6ba65144c 100644 (file)
@@ -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,6 +24,6 @@ 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);
 
 void            ipv64_normalise_mapped(struct sockaddr_storage *, socklen_t *);
This page took 0.045925 seconds and 5 git commands to generate.