diff options
-rw-r--r-- | session.h | 3 | ||||
-rw-r--r-- | svr-chansession.c | 5 | ||||
-rw-r--r-- | svr-session.c | 3 |
3 files changed, 7 insertions, 4 deletions
@@ -211,6 +211,9 @@ struct serversession { /* The numeric address they connected from, used for logging */ char * addrstring; + /* The resolved remote address, used for lastlog etc */ + char *remotehost; + #ifdef __uClinux__ pid_t server_pid; #endif diff --git a/svr-chansession.c b/svr-chansession.c index 782e97f..5ecc57f 100644 --- a/svr-chansession.c +++ b/svr-chansession.c @@ -253,12 +253,9 @@ static int newchansess(struct Channel *channel) { static struct logininfo* chansess_login_alloc(struct ChanSess *chansess) { - char *remotehost; struct logininfo * li; - get_socket_address(ses.sock_in, NULL, NULL, &remotehost, NULL, 1); li = login_alloc_entry(chansess->pid, ses.authstate.username, - remotehost, chansess->tty); - m_free(remotehost); + svr_ses.remotehost, chansess->tty); return li; } diff --git a/svr-session.c b/svr-session.c index a509906..da49e1a 100644 --- a/svr-session.c +++ b/svr-session.c @@ -101,6 +101,9 @@ void svr_session(int sock, int childpipe) { m_free(host); m_free(port); + get_socket_address(ses.sock_in, NULL, NULL, + &svr_ses.remotehost, NULL, 1); + /* set up messages etc */ ses.remoteclosed = svr_remoteclosed; |