Amendments on September 23, 2022
telnet: Limit NAWS update logging
A user frequently making adjustments to their terminal window can
flood us with NAWS commands, we don't need to log every one of them.
Amendments on September 21, 2022
session: Stop persisting tally, prune old session logs
Prune after 21 days of logs by default, every morning. The db was
getting quite large and each new login or recent call check was
taking a long time.
We're stable now so we don't have to persist the call log tally to
disk, just keep it in memory.
Amendments on September 16, 2022
board: Store each user's 'via' in each post
I saw this on another BBS and thought it was kind of neat to see
how each person connected when they made a post.
Amendments on September 15, 2022
session: Add 'b' as a shortcut to first board, 'n' to mail->new
These letter->function assignments really need to be made dynamic
so main menu changes don't require source code changes.
Amendments on September 14, 2022
*: Add Message of the Day support
Track the highest MOTD id each user has seen and only show it on
login if the current one is higher than the user's highest seen.
Also, in migrations, we can't iterate through users while modifying
each one, because the order will change as we save and write a new
user in the map.
Amendments on September 13, 2022
Amendments on September 12, 2022
Amendments on September 8, 2022
Amendments on August 14, 2022
logger: Add buffered logging, support logging without updating window
During telnet negotiation, many lines are logged in quick succession
which means we spend a lot of time updating the log TextEdit. Just
buffer these logs and spit them out all at once upon login or
disconnection, so the user's login prompt is immediately responsive.
Rename session_log to session_logf while I'm in here, to reflect that
it's a format-string function.
Amendments on August 13, 2022
chat: Previous change to drawing reverse bar isn't widely compatible
Go back to padding it with spaces.
session: Don't set default terminal type, if node doesn't, prompt user
This way modem users and telnet users with weird clients that don't
negotiate TTYPE will get prompted for vt100 compatibility.
Amendments on August 11, 2022
telnet: Increase IAC SB buffer, log when it overflows
macOS telnet clients have a very long DISPLAY variable that was
reaching our limit of iac_sb, which then spilled into the login field
since we stop treating further data as IAC SB data.
uthread: Crank stack sizes for each thread
Something having to do with QuickDraw operations puts a ton of stuff
on the stack momentarily, which was writing into our stack gaps with
3K stacks. I haven't been able to figure out what actually causes
it, but when the logger window is disabled, it never happens.
Move defines into uthread.c file so they can be tweaked without having
to recompile everything.