- Don't touch utmp if USE_UTMPX defined
This commit is contained in:
parent
d999ae26b7
commit
ad1bc5f986
|
@ -1,5 +1,6 @@
|
|||
20000520
|
||||
- Xauth fix from Markus Friedl <markus.friedl@informatik.uni-erlangen.de>
|
||||
- Don't touch utmp if USE_UTMPX defined
|
||||
|
||||
20000518
|
||||
- Include Andre Lucas' fixprogs script. Forgot to "cvs add" it yesterday
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
#undef HAVE_SYSLEN_IN_UTMPX
|
||||
#undef HAVE_PID_IN_UTMP
|
||||
#undef HAVE_TYPE_IN_UTMP
|
||||
#undef HAVE_TYPE_IN_UTMPX
|
||||
#undef HAVE_TV_IN_UTMP
|
||||
#undef HAVE_ID_IN_UTMP
|
||||
|
||||
|
|
14
bsd-login.c
14
bsd-login.c
|
@ -73,7 +73,7 @@ struct utmp * utp;
|
|||
int t = 0;
|
||||
struct utmp * u;
|
||||
|
||||
#ifdef HAVE_TYPE_IN_UTMP
|
||||
#if defined(HAVE_TYPE_IN_UTMP) || defined(HAVE_TYPE_IN_UTMPX)
|
||||
setutent();
|
||||
|
||||
while((u = getutent()) != NULL) {
|
||||
|
@ -123,16 +123,26 @@ login(utp)
|
|||
*/
|
||||
tty = find_tty_slot(utp);
|
||||
|
||||
#ifdef USE_UTMPX
|
||||
fd = open(_PATH_UTMPX, O_RDWR|O_CREAT, 0644);
|
||||
if (fd == -1) {
|
||||
log("Couldn't open %s: %s", _PATH_UTMPX, strerror(errno));
|
||||
#else /* USE_UTMPX */
|
||||
fd = open(_PATH_UTMP, O_RDWR|O_CREAT, 0644);
|
||||
if (fd == -1) {
|
||||
log("Couldn't open %s: %s", _PATH_UTMP, strerror(errno));
|
||||
#endif /* USE_UTMPX */
|
||||
} else {
|
||||
/* If no tty was found... */
|
||||
if (tty == -1) {
|
||||
/* ... append it to utmp on login */
|
||||
#ifdef HAVE_TYPE_IN_UTMP
|
||||
#if defined(HAVE_TYPE_IN_UTMP) || defined(HAVE_TYPE_IN_UTMPX)
|
||||
if (utp->ut_type == USER_PROCESS) {
|
||||
#ifdef USE_UTMPX
|
||||
if ((fd = open(_PATH_UTMPX, O_WRONLY|O_APPEND, 0)) >= 0) {
|
||||
#else /* USE_UTMPX */
|
||||
if ((fd = open(_PATH_UTMP, O_WRONLY|O_APPEND, 0)) >= 0) {
|
||||
#endif /* USE_UTMPX */
|
||||
(void)write(fd, utp, sizeof(struct utmp));
|
||||
(void)close(fd);
|
||||
}
|
||||
|
|
|
@ -494,6 +494,7 @@ OSSH_CHECK_HEADER_FOR_FIELD(ut_host, utmpx.h, HAVE_HOST_IN_UTMPX)
|
|||
OSSH_CHECK_HEADER_FOR_FIELD(syslen, utmpx.h, HAVE_SYSLEN_IN_UTMPX)
|
||||
OSSH_CHECK_HEADER_FOR_FIELD(ut_pid, utmp.h, HAVE_PID_IN_UTMP)
|
||||
OSSH_CHECK_HEADER_FOR_FIELD(ut_type, utmp.h, HAVE_TYPE_IN_UTMP)
|
||||
OSSH_CHECK_HEADER_FOR_FIELD(ut_type, utmpx.h, HAVE_TYPE_IN_UTMPX)
|
||||
OSSH_CHECK_HEADER_FOR_FIELD(ut_tv, utmp.h, HAVE_TV_IN_UTMP)
|
||||
OSSH_CHECK_HEADER_FOR_FIELD(ut_id, utmp.h, HAVE_ID_IN_UTMP)
|
||||
OSSH_CHECK_HEADER_FOR_FIELD(ut_addr, utmp.h, HAVE_ADDR_IN_UTMP)
|
||||
|
|
Loading…
Reference in New Issue