• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/crypto/openssh/

Lines Matching refs:li

192 void set_utmp_time(struct logininfo *li, struct utmp *ut);
193 void construct_utmp(struct logininfo *li, struct utmp *ut);
197 void set_utmpx_time(struct logininfo *li, struct utmpx *ut);
198 void construct_utmpx(struct logininfo *li, struct utmpx *ut);
201 int utmp_write_entry(struct logininfo *li);
202 int utmpx_write_entry(struct logininfo *li);
203 int wtmp_write_entry(struct logininfo *li);
204 int wtmpx_write_entry(struct logininfo *li);
205 int lastlog_write_entry(struct logininfo *li);
206 int syslogin_write_entry(struct logininfo *li);
208 int getlast_entry(struct logininfo *li);
209 int lastlog_get_entry(struct logininfo *li);
210 int utmpx_get_entry(struct logininfo *li);
211 int wtmp_get_entry(struct logininfo *li);
212 int wtmpx_get_entry(struct logininfo *li);
234 login_login(struct logininfo *li)
236 li->type = LTYPE_LOGIN;
237 return (login_write(li));
251 login_logout(struct logininfo *li)
253 li->type = LTYPE_LOGOUT;
254 return (login_write(li));
278 struct logininfo li;
280 if (login_get_lastlog(&li, uid))
281 return (li.tv_sec);
300 login_get_lastlog(struct logininfo *li, const uid_t uid)
304 memset(li, '\0', sizeof(*li));
305 li->uid = uid;
317 if (strlcpy(li->username, pw->pw_name, sizeof(li->username)) >=
318 sizeof(li->username)) {
321 (unsigned long)sizeof(li->username) - 1);
325 if (getlast_entry(li))
326 return (li);
355 login_free_entry(struct logininfo *li)
357 free(li);
370 login_init_entry(struct logininfo *li, pid_t pid, const char *username,
375 memset(li, 0, sizeof(*li));
377 li->pid = pid;
381 line_fullname(li->line, line, sizeof(li->line));
384 strlcpy(li->username, username, sizeof(li->username));
385 pw = getpwnam(li->username);
388 li->username);
390 li->uid = pw->pw_uid;
394 strlcpy(li->hostname, hostname, sizeof(li->hostname));
407 login_set_current_time(struct logininfo *li)
413 li->tv_sec = tv.tv_sec;
414 li->tv_usec = tv.tv_usec;
419 login_set_addr(struct logininfo *li, const struct sockaddr *sa,
425 if (sizeof(li->hostaddr) < sa_size)
426 bufsize = sizeof(li->hostaddr);
428 memcpy(&li->hostaddr.sa, sa, bufsize);
437 login_write(struct logininfo *li)
447 login_set_current_time(li);
449 syslogin_write_entry(li);
452 if (li->type == LTYPE_LOGIN)
453 lastlog_write_entry(li);
456 utmp_write_entry(li);
459 wtmp_write_entry(li);
462 utmpx_write_entry(li);
465 wtmpx_write_entry(li);
468 if (li->type == LTYPE_LOGIN &&
469 !sys_auth_record_login(li->username,li->hostname,li->line,
471 logit("Writing login record failed for %s", li->username);
474 if (li->type == LTYPE_LOGIN)
475 audit_session_open(li);
476 else if (li->type == LTYPE_LOGOUT)
477 audit_session_close(li);
484 login_utmp_only(struct logininfo *li)
486 li->type = LTYPE_LOGIN;
487 login_set_current_time(li);
489 utmp_write_entry(li);
492 wtmp_write_entry(li);
495 utmpx_write_entry(li);
498 wtmpx_write_entry(li);
509 /* take the uid in li and return the last login time */
511 getlast_entry(struct logininfo *li)
514 return(lastlog_get_entry(li));
518 return (utmpx_get_entry(li));
528 return (wtmp_get_entry(li));
532 return (wtmpx_get_entry(li));
636 set_utmp_time(struct logininfo *li, struct utmp *ut)
639 ut->ut_tv.tv_sec = li->tv_sec;
640 ut->ut_tv.tv_usec = li->tv_usec;
642 ut->ut_time = li->tv_sec;
647 construct_utmp(struct logininfo *li,
659 line_abbrevname(ut->ut_id, li->line, sizeof(ut->ut_id));
664 switch (li->type) {
673 set_utmp_time(li, ut);
675 line_stripname(ut->ut_line, li->line, sizeof(ut->ut_line));
678 ut->ut_pid = li->pid;
682 if (li->type == LTYPE_LOGOUT)
691 strncpy(ut->ut_name, li->username,
692 MIN_SIZEOF(ut->ut_name, li->username));
694 strncpy(ut->ut_host, li->hostname,
695 MIN_SIZEOF(ut->ut_host, li->hostname));
699 if (li->hostaddr.sa.sa_family == AF_INET)
700 ut->ut_addr = li->hostaddr.sa_in.sin_addr.s_addr;
704 if (li->hostaddr.sa.sa_family == AF_INET6) {
705 sa6 = ((struct sockaddr_in6 *)&li->hostaddr.sa);
728 set_utmpx_time(struct logininfo *li, struct utmpx *utx)
731 utx->ut_tv.tv_sec = li->tv_sec;
732 utx->ut_tv.tv_usec = li->tv_usec;
734 utx->ut_time = li->tv_sec;
739 construct_utmpx(struct logininfo *li, struct utmpx *utx)
747 line_abbrevname(utx->ut_id, li->line, sizeof(utx->ut_id));
751 switch (li->type) {
759 line_stripname(utx->ut_line, li->line, sizeof(utx->ut_line));
760 set_utmpx_time(li, utx);
761 utx->ut_pid = li->pid;
764 strncpy(utx->ut_user, li->username,
765 MIN_SIZEOF(utx->ut_user, li->username));
767 if (li->type == LTYPE_LOGOUT)
776 strncpy(utx->ut_host, li->hostname,
777 MIN_SIZEOF(utx->ut_host, li->hostname));
781 if (li->hostaddr.sa.sa_family == AF_INET)
782 utx->ut_addr = li->hostaddr.sa_in.sin_addr.s_addr;
786 if (li->hostaddr.sa.sa_family == AF_INET6) {
787 sa6 = ((struct sockaddr_in6 *)&li->hostaddr.sa);
799 utx->ut_syslen = MIN(strlen(li->hostname), sizeof(utx->ut_host));
821 utmp_write_library(struct logininfo *li, struct utmp *ut)
837 utmp_write_direct(struct logininfo *li, struct utmp *ut)
920 utmp_perform_login(struct logininfo *li)
924 construct_utmp(li, &ut);
926 if (!utmp_write_library(li, &ut)) {
931 if (!utmp_write_direct(li, &ut)) {
941 utmp_perform_logout(struct logininfo *li)
945 construct_utmp(li, &ut);
947 if (!utmp_write_library(li, &ut)) {
952 if (!utmp_write_direct(li, &ut)) {
962 utmp_write_entry(struct logininfo *li)
964 switch(li->type) {
966 return (utmp_perform_login(li));
969 return (utmp_perform_logout(li));
996 utmpx_write_library(struct logininfo *li, struct utmpx *utx)
1011 utmpx_write_direct(struct logininfo *li, struct utmpx *utx)
1019 utmpx_perform_login(struct logininfo *li)
1023 construct_utmpx(li, &utx);
1025 if (!utmpx_write_library(li, &utx)) {
1030 if (!utmpx_write_direct(li, &ut)) {
1040 utmpx_perform_logout(struct logininfo *li)
1044 construct_utmpx(li, &utx);
1046 line_abbrevname(utx.ut_id, li->line, sizeof(utx.ut_id));
1053 utmpx_write_library(li, &utx);
1055 utmpx_write_direct(li, &utx);
1061 utmpx_write_entry(struct logininfo *li)
1063 switch(li->type) {
1065 return (utmpx_perform_login(li));
1067 return (utmpx_perform_logout(li));
1087 wtmp_write(struct logininfo *li, struct utmp *ut)
1109 wtmp_perform_login(struct logininfo *li)
1113 construct_utmp(li, &ut);
1114 return (wtmp_write(li, &ut));
1119 wtmp_perform_logout(struct logininfo *li)
1123 construct_utmp(li, &ut);
1124 return (wtmp_write(li, &ut));
1129 wtmp_write_entry(struct logininfo *li)
1131 switch(li->type) {
1133 return (wtmp_perform_login(li));
1135 return (wtmp_perform_logout(li));
1162 wtmp_islogin(struct logininfo *li, struct utmp *ut)
1164 if (strncmp(li->username, ut->ut_name,
1165 MIN_SIZEOF(li->username, ut->ut_name)) == 0) {
1177 wtmp_get_entry(struct logininfo *li)
1184 li->tv_sec = li->tv_usec = 0;
1212 if (wtmp_islogin(li, &ut) ) {
1219 li->tv_sec = ut.ut_time;
1222 li->tv_sec = ut.ut_tv.tv_sec;
1225 line_fullname(li->line, ut.ut_line,
1226 MIN_SIZEOF(li->line, ut.ut_line));
1228 strlcpy(li->hostname, ut.ut_host,
1229 MIN_SIZEOF(li->hostname, ut.ut_host));
1258 wtmpx_write(struct logininfo *li, struct utmpx *utx)
1288 wtmpx_perform_login(struct logininfo *li)
1292 construct_utmpx(li, &utx);
1293 return (wtmpx_write(li, &utx));
1298 wtmpx_perform_logout(struct logininfo *li)
1302 construct_utmpx(li, &utx);
1303 return (wtmpx_write(li, &utx));
1308 wtmpx_write_entry(struct logininfo *li)
1310 switch(li->type) {
1312 return (wtmpx_perform_login(li));
1314 return (wtmpx_perform_logout(li));
1326 wtmpx_islogin(struct logininfo *li, struct utmpx *utx)
1328 if (strncmp(li->username, utx->ut_user,
1329 MIN_SIZEOF(li->username, utx->ut_user)) == 0 ) {
1342 wtmpx_get_entry(struct logininfo *li)
1349 li->tv_sec = li->tv_usec = 0;
1381 if (wtmpx_islogin(li, &utx)) {
1384 li->tv_sec = utx.ut_tv.tv_sec;
1386 li->tv_sec = utx.ut_time;
1388 line_fullname(li->line, utx.ut_line, sizeof(li->line));
1390 strlcpy(li->hostname, utx.ut_host,
1391 MIN_SIZEOF(li->hostname, utx.ut_host));
1412 syslogin_perform_login(struct logininfo *li)
1417 construct_utmp(li, ut);
1425 syslogin_perform_logout(struct logininfo *li)
1430 (void)line_stripname(line, li->line, sizeof(line));
1447 syslogin_write_entry(struct logininfo *li)
1449 switch (li->type) {
1451 return (syslogin_perform_login(li));
1453 return (syslogin_perform_logout(li));
1472 lastlog_openseek(struct logininfo *li, int *fd, int filemode)
1485 LASTLOG_FILE, li->username);
1503 offset = (off_t) ((u_long)li->uid * sizeof(struct lastlog));
1519 lastlog_write_entry(struct logininfo *li)
1521 switch(li->type) {
1531 lastlog_write_entry(struct logininfo *li)
1536 switch(li->type) {
1540 line_stripname(last.ll_line, li->line, sizeof(last.ll_line));
1541 strlcpy(last.ll_host, li->hostname,
1542 MIN_SIZEOF(last.ll_host, li->hostname));
1543 last.ll_time = li->tv_sec;
1545 if (!lastlog_openseek(li, &fd, O_RDWR|O_CREAT))
1567 lastlog_get_entry(struct logininfo *li)
1571 if ((ll = getlastlogxbyname(li->username, &l)) == NULL) {
1575 line_fullname(li->line, ll->ll_line, sizeof(li->line));
1576 strlcpy(li->hostname, ll->ll_host,
1577 MIN_SIZEOF(li->hostname, ll->ll_host));
1578 li->tv_sec = ll->ll_tv.tv_sec;
1579 li->tv_usec = ll->ll_tv.tv_usec;
1584 lastlog_get_entry(struct logininfo *li)
1589 if (!lastlog_openseek(li, &fd, O_RDONLY))
1600 line_fullname(li->line, last.ll_line, sizeof(li->line));
1601 strlcpy(li->hostname, last.ll_host,
1602 MIN_SIZEOF(li->hostname, last.ll_host));
1603 li->tv_sec = last.ll_time;
1624 utmpx_get_entry(struct logininfo *li)
1630 utx = getutxuser(li->username);
1636 line_fullname(li->line, utx->ut_line,
1637 MIN_SIZEOF(li->line, utx->ut_line));
1638 strlcpy(li->hostname, utx->ut_host,
1639 MIN_SIZEOF(li->hostname, utx->ut_host));
1640 li->tv_sec = utx->ut_tv.tv_sec;
1641 li->tv_usec = utx->ut_tv.tv_usec;