aboutsummaryrefslogtreecommitdiff
path: root/sshconnect2.c
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2008-07-23 09:23:42 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2008-07-23 09:23:42 +0000
commit490bfaade9fd39fe364761a9abb9e53381c5571c (patch)
tree043f54862360ff8a1158c881c9634f7ee0cd52b9 /sshconnect2.c
parent8211d6b01828096abeefb4a88cd06030d0097c10 (diff)
downloadsrc-490bfaade9fd39fe364761a9abb9e53381c5571c.tar.gz
src-490bfaade9fd39fe364761a9abb9e53381c5571c.zip
Vendor import of OpenSSH 4.7p1 for posterity's sakevendor/openssh/4.7p1
Notes
Notes: svn path=/vendor-crypto/openssh/dist/; revision=180744 svn path=/vendor-crypto/openssh/4.7p1/; revision=180745; tag=vendor/openssh/4.7p1
Diffstat (limited to 'sshconnect2.c')
-rw-r--r--sshconnect2.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/sshconnect2.c b/sshconnect2.c
index dd971a9f9bb4..208df078cde3 100644
--- a/sshconnect2.c
+++ b/sshconnect2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshconnect2.c,v 1.162 2006/08/30 00:06:51 dtucker Exp $ */
+/* $OpenBSD: sshconnect2.c,v 1.164 2007/05/17 23:53:41 jolan Exp $ */
/*
* Copyright (c) 2000 Markus Friedl. All rights reserved.
*
@@ -31,6 +31,7 @@
#include <sys/stat.h>
#include <errno.h>
+#include <netdb.h>
#include <pwd.h>
#include <signal.h>
#include <stdarg.h>
@@ -1307,7 +1308,7 @@ userauth_hostbased(Authctxt *authctxt)
Sensitive *sensitive = authctxt->sensitive;
Buffer b;
u_char *signature, *blob;
- char *chost, *pkalg, *p;
+ char *chost, *pkalg, *p, myname[NI_MAXHOST];
const char *service;
u_int blen, slen;
int ok, i, len, found = 0;
@@ -1331,7 +1332,16 @@ userauth_hostbased(Authctxt *authctxt)
return 0;
}
/* figure out a name for the client host */
- p = get_local_name(packet_get_connection_in());
+ p = NULL;
+ if (packet_connection_is_on_socket())
+ p = get_local_name(packet_get_connection_in());
+ if (p == NULL) {
+ if (gethostname(myname, sizeof(myname)) == -1) {
+ verbose("userauth_hostbased: gethostname: %s",
+ strerror(errno));
+ } else
+ p = xstrdup(myname);
+ }
if (p == NULL) {
error("userauth_hostbased: cannot get local ipaddr/name");
key_free(private);