- Nov 07, 2018
-
-
rswindell authored
buffer passed to it doesn't have to be INI_MAX_VALUE_LEN in size.
-
- Oct 22, 2018
-
-
rswindell authored
So Omegix recently asked in the Synchronet Discussion group whether or not a PETSCII (Commodore) terminal could be used to access his Synchronet BBS. Now, the answer is "Yes". :-) The major issues addressed: - detecting a PETSCII terminal, solved by assigning specific (configurable): TCP ports to be used for incoming PETSCII connections, by default: port 64 is for 40-column PETSCII and port 128 is for 80-column PETSCII, but if the terminal sends a Telnet Window Size reply (e.g. SyncTERM), then either size terminal should fine on either port. The port numbers are configurable in the [BBS] section of your sbbs.ini file using the new keys: PET40Port (default value: 64) and PET80Port (default value: 128). Having these keys set doesn't make make the terminal server listen on that additional port - you'll need to add more IP:port combinations to one of Interfaces values, example: TelnetInterface=71.95.196.34,71.95.196.34:64,71.95.196.34:128 And you don't have to use Telnet for the PETSCII connections - you could use RLogin or SSH instead (or in addition). - support for terminal widths < 80 columns: This was achieved through a combination of text.dat changes (numerous), new Ctrl-A and @-codes and new optional terminal-width-specific menu files (e.g. text/menu/main.40col.asc) A side effect of these changes is actually better support for terminals *wider* than 80 columns as well! - support for terminals that don't expand tabs to spaces (e.g. PETSCII): The terminal server now handles tab expansion with a run-time settable tab-size (default size: 8) - conditional access based on PETSCII (or small) terminal use (or not): + New PETSCII ARS keyword (boolean) + New COLS and ROWS ARS keywords (for terminal width and height requirements) + New TERM (string) ARS keyword New @-codes: - WORDWRAP, when placed at the top of a file, enables auto-wordwrap for lines longer than the terminal width - CENTER, the text following before an end of line will be displayed centered on the terminal (whatever the width, in columns) - CLEAR, like CLS, except it ignores (doesn't display) a CRLF that follows - COLS, current number of terminal columns (width) - ROWS, current number of terminal rows (height) - TERM, the auto-detected or reported terminal type (e.g. ANSI, TTY, etc.) - SYSONLY, toggles "echo" (display) off/back-on for non-sysops similar to the Ctrl-A( and ) codes, but more convenient to use (and PabloDraw won't strip the @-code from the file like it does with Ctrl-A codes it doesn't support) New Ctrl-A codes: - \ conditional new-line/continuation when the terminal width is < 80 cols prints the new text.dat string LongLineContinuationPrefix yesno() will now return true if passed a blank string. noyes() will now return false if passed a blank string. getstr()'s input length limiting based on terminal width is more broadly applied now (not just when using the K_LINE mode flag). New JS bbs object method: menu_exists(<base_filename>) returns Boolean New JS console object property: tabstop (Number) New JS console object methods: getbyte() and putbyte() to recv/send raw byte value with (very little) interpretation/intervention by the terminal server New JS console object method: creturn() - performs a carriage return (or equivalent) New JS (and C) printfile() mode flag: P_TRUNCATE, causes long lines to be truncated, rather than displaying causing a line-wrap. New text.dat strings: - NoAccessTerminal (for ARS check failures) - LongLineContinuationPrefix (for breaking long lines for 40col terminals) - Scanning (replaces a previously hard-coded "Scanning" string) - Done (replaces a previusly hard-coded "Done") - Scanned (when finished scannning, clears the progress bar)
-
- Oct 06, 2018
-
-
rswindell authored
-
- Oct 05, 2018
-
-
rswindell authored
record in the node.dab - only the node(s) that have the requested user number. In sbbs_t::getsmsg() and ::getsmsg(), strip all invalid Ctrl-A attribute codes (e.g. clear screen, pause, etc.) since short-messages (telegrams) can come from external sources.
-
- Jul 26, 2018
-
-
rswindell authored
not exist), set the user->number to 0 before returning as many callers of this function do not check the return value, just the value of user->number after it returns (ugh). This problem was discovered when running a fresh install, typing "1" at the Login prompt and immediately getting a "Time's Up" message and a disconnect - only happens when there's no data/user.dat file. getnodedat() - don't try to unlock the node.dab file unless the read() fails. When using the MSVC2017 CRTL, an unlock() of a region that was not previously locked is a blocking call causing major slowness in the MSVC2017 build. putmsgptrs() - cleans up obsolete sections in the data/user/*.subs files now. So if you go from say 10,000 sub-boards to 2,000, it won't have to load and search through the extra 8,000 invalid subs (once the file is re-written upon log-off). This requires an updated xpdev build (for iniAppendSectionWithKeys) fixmsgptrs() - if the msgbase index can't be opened or the last index record cannot be read (e.g. there isn't one), insure the msg-scan pointer value is set to 0 (not ~0).
-
- Jul 24, 2018
-
-
rswindell authored
more (!) by removing the sections from the total file string list, once parsed. Fixed a couple of minor and unlikely off-by-one errors with message ptrs based on date/time.
-
rswindell authored
-
rswindell authored
-
rswindell authored
each section (sub-code) once. Should cut the search/parse algorithm by 66% (since there's 3 keys/values we're searching for, per sub).
-
rswindell authored
users) and adjusting scan ptrs by date or set to "Last msg" while online: - speed (on my system, reduced from 12 to < 2 seconds) This involved 2 enhancements: check msgbase index file timestamp (fast) before opening any files. When opening the msgbase, just open the index file (no other msgbase files) - required new smblib function: smb_open_index. - fixed off-by-one when setting by date (when setting the new-scan ptr to Jan-1-2018, you want that first message posted on/after Jan-1-2018 to be found as "new", not the first message posted *after* that date. - re-added the fixmsgptrs() call in putmsgptrs(), inadvertently removed in the .ixb -> .ini ptr storage update in rev 1.192 of userdat.c.
-
- Jul 08, 2018
-
-
rswindell authored
-
- Jun 10, 2018
-
-
rswindell authored
(out of disk space?).
-
- Apr 04, 2018
-
-
rswindell authored
not known/available (e.g. certain types of SSH login failures).
-
- Mar 26, 2018
-
-
rswindell authored
of the #if !NO_SOCKET_SUPPORT block. Fixes Windows build of addfiles and other utils.
-
- Mar 25, 2018
-
-
rswindell authored
Fix-up the user/####.subs ini style (only one blank line between sections). Also, don't re-write the .subs file if nothing has changed.
-
rswindell authored
-
rswindell authored
(data/user/*.subs - in familar .ini syntax) indexed by the sub-board internal rather than the old flat binary file using the troublesome "pointer index" (ptridx) as an offset. The old files (data/user/ptrs/*.ixb) will still be read in when the new file doesn't exist, for upgrading users automatically to the new method of pointer storage. This should resolve long-standing issues around users' new-scan pointers and configurations getting corrupted when the sysop inserts/remove sub-boards. However, if you change a sub-board's internal code, that invalidates the users' pointers and scan configurations - so that may need to be addrsesed via SCFG. The subs' ptridx values are still be used for storing QWKnet hub pointers, for now, but that too will soon be addressed with a new file format for those ptrs too.
-
- Mar 23, 2018
-
-
rswindell authored
like a str_list_t declared in line (but the char* is fine?!).
-
- Mar 18, 2018
-
-
rswindell authored
used, that requires a socket lib too. util builds (that don't need the .ini file functions), they #define NO_SOCKET_SUPPORT, so exclude the user/####.ini support functions in that case too.
-
- Mar 16, 2018
-
-
rswindell authored
I'm calling these "user properties", but that might change.
-
- Mar 15, 2018
-
-
rswindell authored
"unique" login attempt (e.g. hack attempt).
-
- Mar 10, 2018
-
-
rswindell authored
-
- Mar 09, 2018
-
-
rswindell authored
Thanks scan-build!
-
- Feb 25, 2018
-
-
rswindell authored
so they can be more easily used by external utils (e.g. umonitor).
-
- Feb 20, 2018
-
-
rswindell authored
-
- Nov 24, 2017
-
-
rswindell authored
-
- Oct 12, 2017
-
-
rswindell authored
Introduced closeuserdat().
-
- Oct 10, 2017
-
-
rswindell authored
-
- Dec 10, 2016
- Dec 02, 2016
-
-
rswindell authored
-
- Nov 28, 2016
- Nov 27, 2016
-
-
rswindell authored
Introduced a better progress indicator (similar to poll results), using the backfill() method. 2 new attr.cfg fields allow the progress indicator colors to be configured separately from poll results (though they default to the same white on magenta). This new progress indicator is used when loading msg ptrs and scanning for votes. I will be using it while performing other searches (e.g. file libraries/dirs) as well.
-
- Nov 17, 2016
-
-
rswindell authored
record (e.g. the user number is invalid), the user number should be 0 after returning. This would cause, for example, sbbs_t::login() to accept a login string with an invalid usernumber (e.g. "12345") and do some strange things. The same side-effect was missing in the (new) fgetuserdat().
-
- Nov 16, 2016
-
-
rswindell authored
it just calls the (newer) functions readuserdat() and parseuserdat() in a easy replacement for getuserdat() for places where all users are read in a loop (the file is only opened one time, dramatically reducing the amount of time). Added an argument to openuserdat() so it can be used in more situations (i.e. where the file needs to be opened for modify/create acces).
-
- Nov 08, 2016
-
-
rswindell authored
loginFailure() now handles a NULL password argument correctly.
-
- Oct 17, 2016
-
-
rswindell authored
file (in .can file format) which lists IP addresses or hostnames which will be exempt from temporary bans or permanent filters.
-
- Oct 06, 2016
-
-
rswindell authored
into a terminal server node)
-
- Aug 06, 2016
-
-
rswindell authored
be 0 (at least on Windows), but readuserdat() treated 0 as an invalid file descriptor and opened the file again. The probably is the reason for the reported issues with the Windows GUI user editor not being able to save changes to the user database. Bug introduced in Dec-2015 (rev 1.164 of this file).
-