AmendHub

Download:

jcs

/

subtext

/

amendments

/

85

session: Print recent logins sorted by id descending


jcs made amendment 85 over 2 years ago
--- session.c Tue Mar 1 14:27:04 2022 +++ session.c Thu Mar 3 15:43:04 2022 @@ -1007,7 +1007,7 @@ session_recents(struct session *s) struct session_log slog; struct tm *date_tm; unsigned long idle; - size_t scount, rsize; + size_t scount, rsize, *ids; char sdate[12]; short printed; @@ -1015,16 +1015,12 @@ session_recents(struct session *s) session_output_template(s, "{{B}}Date Node User Via Speed{{/}}\r\n"); session_flush(s); - - scount = bile_count_by_type(db->sessions_bile, SL_LOG_RTYPE); - for (printed = 0; printed < 10; printed++) { - slog_obj = bile_get_nth_of_type(db->sessions_bile, - scount - 1 - printed, SL_LOG_RTYPE); - if (slog_obj == NULL) - break; - rsize = bile_read(db->sessions_bile, SL_LOG_RTYPE, slog_obj->id, - (char *)&slog, sizeof(slog)); + scount = bile_sorted_ids_by_type(db->sessions_bile, SL_LOG_RTYPE, + &ids); + for (printed = 0; printed < 10, printed < scount; printed++) { + rsize = bile_read(db->sessions_bile, SL_LOG_RTYPE, + ids[scount - 1 - printed], (char *)&slog, sizeof(slog)); if (rsize != sizeof(slog)) panic("unexpected bile_read response %d (read %ld, " "expected %ld)", bile_error(db->sessions_bile), rsize, @@ -1047,6 +1043,8 @@ session_recents(struct session *s) session_output(s, "\r\n", 2); session_flush(s); session_pause_return(s, 0, NULL); + + free(ids); } void