|
Lines 207-212
Link Here
|
| 207 |
|
207 |
|
| 208 |
int getlast_entry(struct logininfo *li); |
208 |
int getlast_entry(struct logininfo *li); |
| 209 |
int lastlog_get_entry(struct logininfo *li); |
209 |
int lastlog_get_entry(struct logininfo *li); |
|
|
210 |
int utmpx_get_entry(struct logininfo *li); |
| 210 |
int wtmp_get_entry(struct logininfo *li); |
211 |
int wtmp_get_entry(struct logininfo *li); |
| 211 |
int wtmpx_get_entry(struct logininfo *li); |
212 |
int wtmpx_get_entry(struct logininfo *li); |
| 212 |
|
213 |
|
|
Lines 508-513
Link Here
|
| 508 |
#ifdef USE_LASTLOG |
509 |
#ifdef USE_LASTLOG |
| 509 |
return(lastlog_get_entry(li)); |
510 |
return(lastlog_get_entry(li)); |
| 510 |
#else /* !USE_LASTLOG */ |
511 |
#else /* !USE_LASTLOG */ |
|
|
512 |
#if defined(USE_UTMPX) && defined(HAVE_SETUTXDB) && \ |
| 513 |
defined(UTXDB_LASTLOGIN) && defined(HAVE_GETUTXUSER) |
| 514 |
return (utmpx_get_entry(li)); |
| 515 |
#endif |
| 511 |
|
516 |
|
| 512 |
#if defined(DISABLE_LASTLOG) |
517 |
#if defined(DISABLE_LASTLOG) |
| 513 |
/* On some systems we shouldn't even try to obtain last login |
518 |
/* On some systems we shouldn't even try to obtain last login |
|
Lines 1607-1612
Link Here
|
| 1607 |
} |
1612 |
} |
| 1608 |
#endif /* HAVE_GETLASTLOGXBYNAME */ |
1613 |
#endif /* HAVE_GETLASTLOGXBYNAME */ |
| 1609 |
#endif /* USE_LASTLOG */ |
1614 |
#endif /* USE_LASTLOG */ |
|
|
1615 |
|
| 1616 |
#if defined(USE_UTMPX) && defined(HAVE_SETUTXDB) && \ |
| 1617 |
defined(UTXDB_LASTLOGIN) && defined(HAVE_GETUTXUSER) |
| 1618 |
int |
| 1619 |
utmpx_get_entry(struct logininfo *li) |
| 1620 |
{ |
| 1621 |
struct utmpx *utx; |
| 1622 |
|
| 1623 |
if (setutxdb(UTXDB_LASTLOGIN, NULL) != 0) |
| 1624 |
return (0); |
| 1625 |
utx = getutxuser(li->username); |
| 1626 |
if (utx == NULL) { |
| 1627 |
endutxent(); |
| 1628 |
return (0); |
| 1629 |
} |
| 1630 |
|
| 1631 |
line_fullname(li->line, utx->ut_line, |
| 1632 |
MIN_SIZEOF(li->line, utx->ut_line)); |
| 1633 |
strlcpy(li->hostname, utx->ut_host, |
| 1634 |
MIN_SIZEOF(li->hostname, utx->ut_host)); |
| 1635 |
li->tv_sec = utx->ut_tv.tv_sec; |
| 1636 |
li->tv_usec = utx->ut_tv.tv_usec; |
| 1637 |
endutxent(); |
| 1638 |
return (1); |
| 1639 |
} |
| 1640 |
#endif /* USE_UTMPX && HAVE_SETUTXDB && UTXDB_LASTLOGIN && HAVE_GETUTXUSER */ |
| 1610 |
|
1641 |
|
| 1611 |
#ifdef USE_BTMP |
1642 |
#ifdef USE_BTMP |
| 1612 |
/* |
1643 |
/* |