Lines Matching refs:li

185 void set_utmp_time(struct logininfo *li, struct utmp *ut);
186 void construct_utmp(struct logininfo *li, struct utmp *ut);
190 void set_utmpx_time(struct logininfo *li, struct utmpx *ut);
191 void construct_utmpx(struct logininfo *li, struct utmpx *ut);
194 int utmp_write_entry(struct logininfo *li);
195 int utmpx_write_entry(struct logininfo *li);
196 int wtmp_write_entry(struct logininfo *li);
197 int wtmpx_write_entry(struct logininfo *li);
198 int lastlog_write_entry(struct logininfo *li);
199 int syslogin_write_entry(struct logininfo *li);
201 int getlast_entry(struct logininfo *li);
202 int lastlog_get_entry(struct logininfo *li);
203 int wtmp_get_entry(struct logininfo *li);
204 int wtmpx_get_entry(struct logininfo *li);
223 login_login (struct logininfo *li) in login_login() argument
225 li->type = LTYPE_LOGIN; in login_login()
226 return login_write(li); in login_login()
239 login_logout(struct logininfo *li) in login_logout() argument
241 li->type = LTYPE_LOGOUT; in login_logout()
242 return login_write(li); in login_logout()
266 struct logininfo li;
268 if (login_get_lastlog(&li, uid))
269 return li.tv_sec;
289 login_get_lastlog(struct logininfo *li, const int uid) in login_get_lastlog() argument
293 (void) memset(li, '\0', sizeof(*li)); in login_get_lastlog()
294 li->uid = uid; in login_get_lastlog()
307 (void) strlcpy(li->username, pw->pw_name, sizeof(li->username)); in login_get_lastlog()
309 if (getlast_entry(li)) in login_get_lastlog()
310 return li; in login_get_lastlog()
340 login_free_entry(struct logininfo *li) in login_free_entry() argument
342 xfree(li); in login_free_entry()
355 login_init_entry(struct logininfo *li, int pid, const char *username, in login_init_entry() argument
360 (void) memset(li, 0, sizeof(*li)); in login_init_entry()
362 li->pid = pid; in login_init_entry()
366 (void) line_fullname(li->line, line, sizeof(li->line)); in login_init_entry()
368 li->line_null = 1; in login_init_entry()
371 (void) strlcpy(li->progname, progname, sizeof(li->progname)); in login_init_entry()
373 li->progname_null = 1; in login_init_entry()
376 (void) strlcpy(li->username, username, sizeof(li->username)); in login_init_entry()
377 pw = getpwnam(li->username); in login_init_entry()
379 fatal("login_init_entry: Cannot find user \"%s\"", li->username); in login_init_entry()
380 li->uid = pw->pw_uid; in login_init_entry()
384 (void) strlcpy(li->hostname, hostname, sizeof(li->hostname)); in login_init_entry()
396 login_set_current_time(struct logininfo *li) in login_set_current_time() argument
402 li->tv_sec = tv.tv_sec; in login_set_current_time()
403 li->tv_usec = tv.tv_usec; in login_set_current_time()
408 login_set_addr(struct logininfo *li, const struct sockaddr *sa, in login_set_addr() argument
414 if (sizeof(li->hostaddr) < sa_size) in login_set_addr()
415 bufsize = sizeof(li->hostaddr); in login_set_addr()
417 (void) memcpy((void *)&(li->hostaddr.sa), (const void *)sa, bufsize); in login_set_addr()
426 login_write (struct logininfo *li) in login_write() argument
436 login_set_current_time(li); in login_write()
438 syslogin_write_entry(li); in login_write()
441 if (li->type == LTYPE_LOGIN) { in login_write()
442 (void) lastlog_write_entry(li); in login_write()
446 utmp_write_entry(li); in login_write()
449 wtmp_write_entry(li); in login_write()
452 (void) utmpx_write_entry(li); in login_write()
455 (void) wtmpx_write_entry(li); in login_write()
467 getlast_entry(struct logininfo *li) in getlast_entry() argument
470 return(lastlog_get_entry(li)); in getlast_entry()
481 return (wtmp_get_entry(li)); in getlast_entry()
486 return (wtmpx_get_entry(li)); in getlast_entry()
590 set_utmp_time(struct logininfo *li, struct utmp *ut) in set_utmp_time() argument
593 ut->ut_tv.tv_sec = li->tv_sec; in set_utmp_time()
594 ut->ut_tv.tv_usec = li->tv_usec; in set_utmp_time()
597 ut->ut_time = li->tv_sec; in set_utmp_time()
603 construct_utmp(struct logininfo *li, in construct_utmp() argument
611 (void) line_abbrevname(ut->ut_id, li->line, sizeof(ut->ut_id)); in construct_utmp()
616 switch (li->type) { in construct_utmp()
626 cray_retain_utmp(ut, li->pid); in construct_utmp()
631 set_utmp_time(li, ut); in construct_utmp()
633 (void) line_stripname(ut->ut_line, li->line, sizeof(ut->ut_line)); in construct_utmp()
636 ut->ut_pid = li->pid; in construct_utmp()
640 if (li->type == LTYPE_LOGOUT) in construct_utmp()
649 (void) strncpy(ut->ut_name, li->username, MIN_SIZEOF(ut->ut_name, li->username)); in construct_utmp()
651 (void) strncpy(ut->ut_host, li->hostname, MIN_SIZEOF(ut->ut_host, li->hostname)); in construct_utmp()
655 if (li->hostaddr.sa.sa_family == AF_INET) in construct_utmp()
656 ut->ut_addr = li->hostaddr.sa_in.sin_addr.s_addr; in construct_utmp()
671 set_utmpx_time(struct logininfo *li, struct utmpx *utx) in set_utmpx_time() argument
674 utx->ut_tv.tv_sec = li->tv_sec; in set_utmpx_time()
675 utx->ut_tv.tv_usec = li->tv_usec; in set_utmpx_time()
678 utx->ut_time = li->tv_sec; in set_utmpx_time()
684 construct_utmpx(struct logininfo *li, struct utmpx *utx) in construct_utmpx() argument
688 (void) line_abbrevname(utx->ut_id, li->line, sizeof(utx->ut_id)); in construct_utmpx()
692 switch (li->type) { in construct_utmpx()
700 if (!li->line_null) in construct_utmpx()
701 (void) line_stripname(utx->ut_line, li->line, sizeof(utx->ut_line)); in construct_utmpx()
702 else if (!li->progname_null) in construct_utmpx()
703 (void) line_stripname(utx->ut_line, li->progname, sizeof(utx->ut_line)); in construct_utmpx()
705 set_utmpx_time(li, utx); in construct_utmpx()
706 utx->ut_pid = li->pid; in construct_utmpx()
708 (void) strncpy(utx->ut_name, li->username, MIN_SIZEOF(utx->ut_name, li->username)); in construct_utmpx()
710 if (li->type == LTYPE_LOGOUT) in construct_utmpx()
719 (void) strncpy(utx->ut_host, li->hostname, MIN_SIZEOF(utx->ut_host, li->hostname)); in construct_utmpx()
723 if (li->hostaddr.sa.sa_family == AF_INET) in construct_utmpx()
724 utx->ut_addr = li->hostaddr.sa_in.sin_addr.s_addr; in construct_utmpx()
728 utx->ut_syslen = MIN(strlen(li->hostname), sizeof(utx->ut_host)); in construct_utmpx()
750 utmp_write_library(struct logininfo *li, struct utmp *ut) in utmp_write_library() argument
765 utmp_write_direct(struct logininfo *li, struct utmp *ut) in utmp_write_direct() argument
824 utmp_perform_login(struct logininfo *li) in utmp_perform_login() argument
828 construct_utmp(li, &ut); in utmp_perform_login()
830 if (!utmp_write_library(li, &ut)) { in utmp_perform_login()
835 if (!utmp_write_direct(li, &ut)) { in utmp_perform_login()
845 utmp_perform_logout(struct logininfo *li) in utmp_perform_logout() argument
849 construct_utmp(li, &ut); in utmp_perform_logout()
851 if (!utmp_write_library(li, &ut)) { in utmp_perform_logout()
856 if (!utmp_write_direct(li, &ut)) { in utmp_perform_logout()
866 utmp_write_entry(struct logininfo *li) in utmp_write_entry() argument
868 if (li->line_null) { in utmp_write_entry()
874 switch(li->type) { in utmp_write_entry()
876 return utmp_perform_login(li); in utmp_write_entry()
879 return utmp_perform_logout(li); in utmp_write_entry()
906 utmpx_write_library(struct logininfo *li, struct utmpx *utx) in utmpx_write_library() argument
921 utmpx_write_direct(struct logininfo *li, struct utmpx *utx) in utmpx_write_direct() argument
929 utmpx_perform_login(struct logininfo *li) in utmpx_perform_login() argument
933 construct_utmpx(li, &utx); in utmpx_perform_login()
935 if (!utmpx_write_library(li, &utx)) { in utmpx_perform_login()
940 if (!utmpx_write_direct(li, &ut)) { in utmpx_perform_login()
950 utmpx_perform_logout(struct logininfo *li) in utmpx_perform_logout() argument
954 construct_utmpx(li, &utx); in utmpx_perform_logout()
956 (void) line_abbrevname(utx.ut_id, li->line, sizeof(utx.ut_id)); in utmpx_perform_logout()
963 (void) utmpx_write_library(li, &utx); in utmpx_perform_logout()
965 utmpx_write_direct(li, &utx); in utmpx_perform_logout()
971 utmpx_write_entry(struct logininfo *li) in utmpx_write_entry() argument
973 if (li->line_null) { in utmpx_write_entry()
979 switch(li->type) { in utmpx_write_entry()
981 return utmpx_perform_login(li); in utmpx_write_entry()
983 return utmpx_perform_logout(li); in utmpx_write_entry()
1001 wtmp_write(struct logininfo *li, struct utmp *ut) in wtmp_write() argument
1023 wtmp_perform_login(struct logininfo *li) in wtmp_perform_login() argument
1027 construct_utmp(li, &ut); in wtmp_perform_login()
1028 return wtmp_write(li, &ut); in wtmp_perform_login()
1033 wtmp_perform_logout(struct logininfo *li) in wtmp_perform_logout() argument
1037 construct_utmp(li, &ut); in wtmp_perform_logout()
1038 return wtmp_write(li, &ut); in wtmp_perform_logout()
1043 wtmp_write_entry(struct logininfo *li) in wtmp_write_entry() argument
1045 switch(li->type) { in wtmp_write_entry()
1047 return wtmp_perform_login(li); in wtmp_write_entry()
1049 return wtmp_perform_logout(li); in wtmp_write_entry()
1075 wtmp_islogin(struct logininfo *li, struct utmp *ut) in wtmp_islogin() argument
1077 if (strncmp(li->username, ut->ut_name, in wtmp_islogin()
1078 MIN_SIZEOF(li->username, ut->ut_name)) == 0) { in wtmp_islogin()
1090 wtmp_get_entry(struct logininfo *li) in wtmp_get_entry() argument
1097 li->tv_sec = li->tv_usec = 0; in wtmp_get_entry()
1125 if ( wtmp_islogin(li, &ut) ) { in wtmp_get_entry()
1130 li->tv_sec = ut.ut_time; in wtmp_get_entry()
1133 li->tv_sec = ut.ut_tv.tv_sec; in wtmp_get_entry()
1136 (void) line_fullname(li->line, ut.ut_line, in wtmp_get_entry()
1137 MIN_SIZEOF(li->line, ut.ut_line)); in wtmp_get_entry()
1139 (void) strlcpy(li->hostname, ut.ut_host, in wtmp_get_entry()
1140 MIN_SIZEOF(li->hostname, ut.ut_host)); in wtmp_get_entry()
1167 wtmpx_write(struct logininfo *li, struct utmpx *utx) in wtmpx_write() argument
1192 wtmpx_perform_login(struct logininfo *li) in wtmpx_perform_login() argument
1196 construct_utmpx(li, &utx); in wtmpx_perform_login()
1197 return wtmpx_write(li, &utx); in wtmpx_perform_login()
1202 wtmpx_perform_logout(struct logininfo *li) in wtmpx_perform_logout() argument
1206 construct_utmpx(li, &utx); in wtmpx_perform_logout()
1207 return wtmpx_write(li, &utx); in wtmpx_perform_logout()
1212 wtmpx_write_entry(struct logininfo *li) in wtmpx_write_entry() argument
1214 switch(li->type) { in wtmpx_write_entry()
1216 return wtmpx_perform_login(li); in wtmpx_write_entry()
1218 return wtmpx_perform_logout(li); in wtmpx_write_entry()
1230 wtmpx_islogin(struct logininfo *li, struct utmpx *utx) in wtmpx_islogin() argument
1232 if ( strncmp(li->username, utx->ut_name, in wtmpx_islogin()
1233 MIN_SIZEOF(li->username, utx->ut_name)) == 0 ) { in wtmpx_islogin()
1247 wtmpx_get_entry(struct logininfo *li)
1254 li->tv_sec = li->tv_usec = 0;
1284 if ( wtmpx_islogin(li, &utx) ) {
1287 li->tv_sec = utx.ut_tv.tv_sec;
1290 li->tv_sec = utx.ut_time;
1293 (void) line_fullname(li->line, utx.ut_line, sizeof(li->line));
1295 (void) strlcpy(li->hostname, utx.ut_host,
1296 MIN_SIZEOF(li->hostname, utx.ut_host));
1318 syslogin_perform_login(struct logininfo *li) in syslogin_perform_login() argument
1326 construct_utmp(li, ut); in syslogin_perform_login()
1333 syslogin_perform_logout(struct logininfo *li) in syslogin_perform_logout() argument
1338 (void)line_stripname(line, li->line, sizeof(line)); in syslogin_perform_logout()
1356 syslogin_write_entry(struct logininfo *li) in syslogin_write_entry() argument
1358 switch (li->type) { in syslogin_write_entry()
1360 return syslogin_perform_login(li); in syslogin_write_entry()
1362 return syslogin_perform_logout(li); in syslogin_write_entry()
1382 lastlog_construct(struct logininfo *li, struct lastlog *last) in lastlog_construct() argument
1387 (void)line_stripname(last->ll_line, li->line, sizeof(last->ll_line)); in lastlog_construct()
1388 (void) strlcpy(last->ll_host, li->hostname, in lastlog_construct()
1389 MIN_SIZEOF(last->ll_host, li->hostname)); in lastlog_construct()
1390 last->ll_time = li->tv_sec; in lastlog_construct()
1414 lastlog_openseek(struct logininfo *li, int *fd, int filemode) in lastlog_openseek() argument
1427 LASTLOG_FILE, li->username); in lastlog_openseek()
1444 offset = (off_t) ((long)li->uid * sizeof(struct lastlog)); in lastlog_openseek()
1457 lastlog_perform_login(struct logininfo *li) in lastlog_perform_login() argument
1463 lastlog_construct(li, &last); in lastlog_perform_login()
1465 if (!lastlog_openseek(li, &fd, O_RDWR|O_CREAT)) in lastlog_perform_login()
1481 lastlog_write_entry(struct logininfo *li) in lastlog_write_entry() argument
1483 switch(li->type) { in lastlog_write_entry()
1485 return lastlog_perform_login(li); in lastlog_write_entry()
1493 lastlog_populate_entry(struct logininfo *li, struct lastlog *last) in lastlog_populate_entry() argument
1495 (void) line_fullname(li->line, last->ll_line, sizeof(li->line)); in lastlog_populate_entry()
1496 (void) strlcpy(li->hostname, last->ll_host, in lastlog_populate_entry()
1497 MIN_SIZEOF(li->hostname, last->ll_host)); in lastlog_populate_entry()
1498 li->tv_sec = last->ll_time; in lastlog_populate_entry()
1502 lastlog_get_entry(struct logininfo *li) in lastlog_get_entry() argument
1507 if (!lastlog_openseek(li, &fd, O_RDONLY)) in lastlog_get_entry()
1518 lastlog_populate_entry(li, &last); in lastlog_get_entry()