зеркало из https://github.com/Azure/sonic-openssh.git
- NetBSD login.c compile fix from David Rankin
<drankin@bohemians.lexington.ky.us> - Fully set ut_tv if present in utmp or utmpx
This commit is contained in:
Родитель
13bc0be2b6
Коммит
4ff2b9bf42
|
@ -1,5 +1,8 @@
|
||||||
19991228
|
19991228
|
||||||
- Replacement for getpagesize() for systems which lack it
|
- Replacement for getpagesize() for systems which lack it
|
||||||
|
- NetBSD login.c compile fix from David Rankin
|
||||||
|
<drankin@bohemians.lexington.ky.us>
|
||||||
|
- Fully set ut_tv if present in utmp or utmpx
|
||||||
|
|
||||||
19991227
|
19991227
|
||||||
- Automatically correct paths in manpages and configuration files. Patch
|
- Automatically correct paths in manpages and configuration files. Patch
|
||||||
|
|
|
@ -36,6 +36,15 @@
|
||||||
/* Define is utmpx.h has a syslen field */
|
/* Define is utmpx.h has a syslen field */
|
||||||
#undef HAVE_SYSLEN_IN_UTMPX
|
#undef HAVE_SYSLEN_IN_UTMPX
|
||||||
|
|
||||||
|
/* Define is utmp.h has a ut_pid field */
|
||||||
|
#undef HAVE_PID_IN_UTMP
|
||||||
|
|
||||||
|
/* Define is utmp.h has a ut_type field */
|
||||||
|
#undef HAVE_TYPE_IN_UTMP
|
||||||
|
|
||||||
|
/* Define is utmp.h has a ut_tv field */
|
||||||
|
#undef HAVE_TV_IN_UTMP
|
||||||
|
|
||||||
/* Define if you want to use utmpx */
|
/* Define if you want to use utmpx */
|
||||||
#undef USE_UTMPX
|
#undef USE_UTMPX
|
||||||
|
|
||||||
|
|
15
configure.in
15
configure.in
|
@ -264,6 +264,21 @@ AC_EGREP_HEADER(syslen, utmpx.h,
|
||||||
[AC_DEFINE(HAVE_SYSLEN_IN_UTMPX) AC_MSG_RESULT(yes); ],
|
[AC_DEFINE(HAVE_SYSLEN_IN_UTMPX) AC_MSG_RESULT(yes); ],
|
||||||
[AC_MSG_RESULT(no)]
|
[AC_MSG_RESULT(no)]
|
||||||
)
|
)
|
||||||
|
AC_MSG_CHECKING([whether utmp.h has ut_pid field])
|
||||||
|
AC_EGREP_HEADER(ut_pid, utmp.h,
|
||||||
|
[AC_DEFINE(HAVE_PID_IN_UTMP) AC_MSG_RESULT(yes); ],
|
||||||
|
[AC_MSG_RESULT(no)]
|
||||||
|
)
|
||||||
|
AC_MSG_CHECKING([whether utmp.h has ut_type field])
|
||||||
|
AC_EGREP_HEADER(ut_type, utmp.h,
|
||||||
|
[AC_DEFINE(HAVE_TYPE_IN_UTMP) AC_MSG_RESULT(yes); ],
|
||||||
|
[AC_MSG_RESULT(no)]
|
||||||
|
)
|
||||||
|
AC_MSG_CHECKING([whether utmp.h has ut_tv field])
|
||||||
|
AC_EGREP_HEADER(ut_tv, utmp.h,
|
||||||
|
[AC_DEFINE(HAVE_TV_IN_UTMP) AC_MSG_RESULT(yes); ],
|
||||||
|
[AC_MSG_RESULT(no)]
|
||||||
|
)
|
||||||
|
|
||||||
dnl Look for lastlog location
|
dnl Look for lastlog location
|
||||||
AC_ARG_WITH(lastlog,
|
AC_ARG_WITH(lastlog,
|
||||||
|
|
16
login.c
16
login.c
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$Id: login.c,v 1.13 1999/12/27 00:33:56 damien Exp $");
|
RCSID("$Id: login.c,v 1.14 1999/12/27 23:41:12 damien Exp $");
|
||||||
|
|
||||||
#if defined(HAVE_UTMPX_H) && defined(USE_UTMPX)
|
#if defined(HAVE_UTMPX_H) && defined(USE_UTMPX)
|
||||||
# include <utmpx.h>
|
# include <utmpx.h>
|
||||||
|
@ -142,10 +142,18 @@ record_login(int pid, const char *ttyname, const char *user, uid_t uid,
|
||||||
memset(&u, 0, sizeof(u));
|
memset(&u, 0, sizeof(u));
|
||||||
strncpy(u.ut_line, ttyname + 5, sizeof(u.ut_line));
|
strncpy(u.ut_line, ttyname + 5, sizeof(u.ut_line));
|
||||||
strncpy(u.ut_id, ttyname + 8, sizeof(u.ut_id));
|
strncpy(u.ut_id, ttyname + 8, sizeof(u.ut_id));
|
||||||
u.ut_pid = (pid_t)pid;
|
|
||||||
u.ut_time = time(NULL);
|
|
||||||
strncpy(u.ut_name, user, sizeof(u.ut_name));
|
strncpy(u.ut_name, user, sizeof(u.ut_name));
|
||||||
|
#if defined(HAVE_TV_IN_UTMP)
|
||||||
|
(void)gettimeofday(&u.ut_tv, NULL);
|
||||||
|
#else /* defined(HAVE_TV_IN_UTMP) */
|
||||||
|
u.ut_time = time(NULL);
|
||||||
|
#endif /* defined(HAVE_TV_IN_UTMP) */
|
||||||
|
#if defined(HAVE_PID_IN_UTMP)
|
||||||
|
u.ut_pid = (pid_t)pid;
|
||||||
|
#endif /* HAVE_PID_IN_UTMP */
|
||||||
|
#if defined(HAVE_TYPE_IN_UTMP)
|
||||||
u.ut_type = (uid == -1)?DEAD_PROCESS:USER_PROCESS;
|
u.ut_type = (uid == -1)?DEAD_PROCESS:USER_PROCESS;
|
||||||
|
#endif /* HAVE_TYPE_IN_UTMP */
|
||||||
#if defined(HAVE_HOST_IN_UTMP)
|
#if defined(HAVE_HOST_IN_UTMP)
|
||||||
strncpy(u.ut_host, host, sizeof(u.ut_host));
|
strncpy(u.ut_host, host, sizeof(u.ut_host));
|
||||||
#endif
|
#endif
|
||||||
|
@ -156,7 +164,7 @@ record_login(int pid, const char *ttyname, const char *user, uid_t uid,
|
||||||
strncpy(utx.ut_line, ttyname + 5, sizeof(utx.ut_line));
|
strncpy(utx.ut_line, ttyname + 5, sizeof(utx.ut_line));
|
||||||
strncpy(utx.ut_id, ttyname + 8, sizeof(utx.ut_id));
|
strncpy(utx.ut_id, ttyname + 8, sizeof(utx.ut_id));
|
||||||
utx.ut_pid = (pid_t)pid;
|
utx.ut_pid = (pid_t)pid;
|
||||||
utx.ut_tv.tv_sec = time(NULL);
|
(void)gettimeofday(&utx.ut_tv, NULL);
|
||||||
utx.ut_type = (uid == -1)?DEAD_PROCESS:USER_PROCESS;
|
utx.ut_type = (uid == -1)?DEAD_PROCESS:USER_PROCESS;
|
||||||
# ifdef HAVE_HOST_IN_UTMPX
|
# ifdef HAVE_HOST_IN_UTMPX
|
||||||
# ifdef HAVE_SYSLEN_IN_UTMPX
|
# ifdef HAVE_SYSLEN_IN_UTMPX
|
||||||
|
|
Загрузка…
Ссылка в новой задаче