svn commit: r201682 - user/ed/utmpx/crypto/openssh
Ed Schouten
ed at FreeBSD.org
Wed Jan 6 22:15:26 UTC 2010
Author: ed
Date: Wed Jan 6 22:15:26 2010
New Revision: 201682
URL: http://svn.freebsd.org/changeset/base/201682
Log:
Improve hacks on OpenSSH:
- Reduce the diff against config.h generated by openssh-portable.
- Add some bits to make Last login: work. This should eventually be sent
upstream.
Modified:
user/ed/utmpx/crypto/openssh/config.h
user/ed/utmpx/crypto/openssh/loginrec.c
Modified: user/ed/utmpx/crypto/openssh/config.h
==============================================================================
--- user/ed/utmpx/crypto/openssh/config.h Wed Jan 6 22:14:05 2010 (r201681)
+++ user/ed/utmpx/crypto/openssh/config.h Wed Jan 6 22:15:26 2010 (r201682)
@@ -448,7 +448,7 @@
#define HAVE_GETUTXENT 1
/* Define to 1 if you have the `getutxid' function. */
-/* #undef HAVE_GETUTXID */
+#define HAVE_GETUTXID 1
/* Define to 1 if you have the `getutxline' function. */
#define HAVE_GETUTXLINE 1
@@ -484,7 +484,7 @@
#define HAVE_HEADER_AD 1
/* Define if you have ut_host in utmp.h */
-#define HAVE_HOST_IN_UTMP 1
+/* #undef HAVE_HOST_IN_UTMP */
/* Define if you have ut_host in utmpx.h */
#define HAVE_HOST_IN_UTMPX 1
@@ -586,10 +586,10 @@
/* #undef HAVE_LOGIN_H */
/* Define to 1 if you have the `logout' function. */
-#define HAVE_LOGOUT 1
+/* #undef HAVE_LOGOUT */
/* Define to 1 if you have the `logwtmp' function. */
-#define HAVE_LOGWTMP 1
+/* #undef HAVE_LOGWTMP */
/* Define to 1 if the system has the type `long double'. */
#define HAVE_LONG_DOUBLE 1
@@ -1025,7 +1025,7 @@
#define HAVE_TIME_H 1
/* Define if you have ut_time in utmp.h */
-#define HAVE_TIME_IN_UTMP 1
+/* #undef HAVE_TIME_IN_UTMP */
/* Define if you have ut_time in utmpx.h */
/* #undef HAVE_TIME_IN_UTMPX */
@@ -1049,7 +1049,7 @@
/* #undef HAVE_TYPE_IN_UTMP */
/* Define if you have ut_type in utmpx.h */
-/* #undef HAVE_TYPE_IN_UTMPX */
+#define HAVE_TYPE_IN_UTMPX 1
/* Define to 1 if you have the <ucred.h> header file. */
/* #undef HAVE_UCRED_H */
@@ -1175,7 +1175,7 @@
/* #undef KRB5 */
/* Define if pututxline updates lastlog too */
-#define LASTLOG_WRITE_PUTUTXLINE 1
+/* #undef LASTLOG_WRITE_PUTUTXLINE */
/* Define if you want TCP Wrappers support */
#define LIBWRAP 1
Modified: user/ed/utmpx/crypto/openssh/loginrec.c
==============================================================================
--- user/ed/utmpx/crypto/openssh/loginrec.c Wed Jan 6 22:14:05 2010 (r201681)
+++ user/ed/utmpx/crypto/openssh/loginrec.c Wed Jan 6 22:15:26 2010 (r201682)
@@ -509,6 +509,10 @@ getlast_entry(struct logininfo *li)
return(lastlog_get_entry(li));
#else /* !USE_LASTLOG */
+#if 1
+ return (utmpx_get_entry(li));
+#endif
+
#if defined(DISABLE_LASTLOG)
/* On some systems we shouldn't even try to obtain last login
* time, e.g. AIX */
@@ -1608,6 +1612,30 @@ lastlog_get_entry(struct logininfo *li)
#endif /* HAVE_GETLASTLOGXBYNAME */
#endif /* USE_LASTLOG */
+#if 1
+int
+utmpx_get_entry(struct logininfo *li)
+{
+ struct utmpx *utx;
+
+ if (setutxdb(UTXDB_LASTLOGIN, NULL) != 0)
+ return (0);
+ utx = getutxuser(li->username);
+ if (utx == NULL) {
+ endutxent();
+ return (0);
+ }
+
+ line_fullname(li->line, utx->ut_line, sizeof(utx->ut_line));
+ strlcpy(li->hostname, utx->ut_host,
+ MIN_SIZEOF(li->hostname, utx->ut_host));
+ li->tv_sec = utx->ut_tv.tv_sec;
+ li->tv_usec = utx->ut_tv.tv_usec;
+ endutxent();
+ return (1);
+}
+#endif
+
#ifdef USE_BTMP
/*
* Logs failed login attempts in _PATH_BTMP if that exists.
More information about the svn-src-user
mailing list