mirror of
https://github.com/PowerShell/openssh-portable.git
synced 2025-07-27 07:44:29 +02:00
- Don't touch utmp if USE_UTMPX defined
This commit is contained in:
parent
d999ae26b7
commit
ad1bc5f986
@ -1,5 +1,6 @@
|
|||||||
20000520
|
20000520
|
||||||
- Xauth fix from Markus Friedl <markus.friedl@informatik.uni-erlangen.de>
|
- Xauth fix from Markus Friedl <markus.friedl@informatik.uni-erlangen.de>
|
||||||
|
- Don't touch utmp if USE_UTMPX defined
|
||||||
|
|
||||||
20000518
|
20000518
|
||||||
- Include Andre Lucas' fixprogs script. Forgot to "cvs add" it yesterday
|
- Include Andre Lucas' fixprogs script. Forgot to "cvs add" it yesterday
|
||||||
|
@ -50,6 +50,7 @@
|
|||||||
#undef HAVE_SYSLEN_IN_UTMPX
|
#undef HAVE_SYSLEN_IN_UTMPX
|
||||||
#undef HAVE_PID_IN_UTMP
|
#undef HAVE_PID_IN_UTMP
|
||||||
#undef HAVE_TYPE_IN_UTMP
|
#undef HAVE_TYPE_IN_UTMP
|
||||||
|
#undef HAVE_TYPE_IN_UTMPX
|
||||||
#undef HAVE_TV_IN_UTMP
|
#undef HAVE_TV_IN_UTMP
|
||||||
#undef HAVE_ID_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;
|
int t = 0;
|
||||||
struct utmp * u;
|
struct utmp * u;
|
||||||
|
|
||||||
#ifdef HAVE_TYPE_IN_UTMP
|
#if defined(HAVE_TYPE_IN_UTMP) || defined(HAVE_TYPE_IN_UTMPX)
|
||||||
setutent();
|
setutent();
|
||||||
|
|
||||||
while((u = getutent()) != NULL) {
|
while((u = getutent()) != NULL) {
|
||||||
@ -123,16 +123,26 @@ login(utp)
|
|||||||
*/
|
*/
|
||||||
tty = find_tty_slot(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);
|
fd = open(_PATH_UTMP, O_RDWR|O_CREAT, 0644);
|
||||||
if (fd == -1) {
|
if (fd == -1) {
|
||||||
log("Couldn't open %s: %s", _PATH_UTMP, strerror(errno));
|
log("Couldn't open %s: %s", _PATH_UTMP, strerror(errno));
|
||||||
|
#endif /* USE_UTMPX */
|
||||||
} else {
|
} else {
|
||||||
/* If no tty was found... */
|
/* If no tty was found... */
|
||||||
if (tty == -1) {
|
if (tty == -1) {
|
||||||
/* ... append it to utmp on login */
|
/* ... 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) {
|
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) {
|
if ((fd = open(_PATH_UTMP, O_WRONLY|O_APPEND, 0)) >= 0) {
|
||||||
|
#endif /* USE_UTMPX */
|
||||||
(void)write(fd, utp, sizeof(struct utmp));
|
(void)write(fd, utp, sizeof(struct utmp));
|
||||||
(void)close(fd);
|
(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(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_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, 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_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_id, utmp.h, HAVE_ID_IN_UTMP)
|
||||||
OSSH_CHECK_HEADER_FOR_FIELD(ut_addr, utmp.h, HAVE_ADDR_IN_UTMP)
|
OSSH_CHECK_HEADER_FOR_FIELD(ut_addr, utmp.h, HAVE_ADDR_IN_UTMP)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user