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;