diff options
Diffstat (limited to 'clientname.c')
-rw-r--r-- | clientname.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/clientname.c b/clientname.c index 8f8460dc..d085fc78 100644 --- a/clientname.c +++ b/clientname.c @@ -41,7 +41,6 @@ char *client_addr(int fd) static int initialised; struct sockaddr_storage ss; socklen_t length = sizeof ss; - char *ssh_info, *p; if (initialised) return addr_buf; @@ -49,11 +48,14 @@ char *client_addr(int fd) initialised = 1; if (am_server) { /* daemon over --rsh mode */ + char *env_str; strlcpy(addr_buf, "0.0.0.0", sizeof addr_buf); - if ((ssh_info = getenv("SSH_CONNECTION")) != NULL - || (ssh_info = getenv("SSH_CLIENT")) != NULL - || (ssh_info = getenv("SSH2_CLIENT")) != NULL) { - strlcpy(addr_buf, ssh_info, sizeof addr_buf); + if ((env_str = getenv("SSH_CONNECTION")) != NULL + || (env_str = getenv("SSH_CLIENT")) != NULL + || (env_str = getenv("SSH2_CLIENT")) != NULL + || (env_str = getenv("REMOTE_HOST")) != NULL) { + char *p; + strlcpy(addr_buf, env_str, sizeof addr_buf); /* Truncate the value to just the IP address. */ if ((p = strchr(addr_buf, ' ')) != NULL) *p = '\0'; |