AmendHub

Download:

jcs

/

subtext

/

amendments

/

172

session: Print when login times out, type some boolean fields to bool


jcs made amendment 172 about 1 year ago
--- session.c Thu Jun 23 10:14:08 2022 +++ session.c Thu Jun 23 14:18:57 2022 @@ -291,7 +291,7 @@ session_close(struct session *session) uthread_yield(); } } - session->ending = 1; + session->ending = true; } /* finalize session log */ @@ -596,7 +596,7 @@ idled_out: session_printf(session, "\r\n\r\nYou have been idle too long, goodbye.\r\n\r\n"); session_flush(session); - session->ending = 1; + session->ending = true; return 0; } @@ -627,7 +627,7 @@ session_field_input(struct session *session, unsigned unsigned char chc; bool redraw = false; - session->abort_input = 0; + session->abort_input = false; field = xmalloczero(size); @@ -883,9 +883,17 @@ login_bail: if (password != NULL) free(password); if (!s->ban_node_source) { - session_printf(s, "Thanks for playing\r\n"); - session_flush(s); + if (session_idled_out(s)) { + session_printf(s, "\r\nLogin timed out after %d seconds\r\n", + db->config.max_login_seconds); + /* session_flush won't do anything since s->ending is set */ + s->node_funcs->output(s); + } else { + session_printf(s, "Thanks for playing\r\n"); + session_flush(s); + } } + return AUTH_USER_FAILED; } --- session.h Thu Jun 16 11:00:57 2022 +++ session.h Thu Jun 23 13:39:31 2022 @@ -67,7 +67,6 @@ struct session_log { }; struct session { - short ending; char node[10]; char via[10]; unsigned char obuf[512]; /* telnet.obuf must be double this */ @@ -75,23 +74,23 @@ struct session { short obuflen; short ibuflen; enum session_input_state input_state; - unsigned short last_input; - unsigned char abort_input; - unsigned char ban_node_source; unsigned long established_at; + bool logged_in; + bool ending; + bool abort_input; + bool ban_node_source; + unsigned short last_input; unsigned long last_input_at; unsigned short terminal_columns; unsigned short terminal_lines; char terminal_type[20]; unsigned short tspeed; - unsigned char vt100; - unsigned char vt52; - unsigned char color; - unsigned char cp437; - unsigned char chatting; + bool vt100; + bool vt52; + bool color; + bool cp437; + bool chatting; unsigned char chatting_with_node[10]; - unsigned char chat_ring_idx; - unsigned char logged_in; struct session_log log; char autologin_username[DB_USERNAME_LENGTH + 1]; struct user *user;