Synchronet Git Commit Log

This is a log of the 500 most recent pushes to the master branch of the Synchronet Git repository.
If you want to view more pushes/commits, you can by passing ?<number> in URL.
  1. Eric Oulashin
    Wed Feb 01 2023 22:51:59 GMT-0800 (PST)
    Modified Files:
    

    exec/load/dd_lightbar_menu.js diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/DefaultTheme.cfg diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: Fix for reading colors from the theme file. Also, removed debug function from dd_lightbar_menu.js

  2. Rob Swindell
    Wed Feb 01 2023 22:51:59 GMT-0800 (PST)
    Modified Files:
    

    exec/load/dd_lightbar_menu.js diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/DefaultTheme.cfg diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_read_theme_colors_fix' into 'master' DDMsgReader: Fix for reading colors from the theme file. Also, removed debug function from dd_lightbar_menu.js See merge request main/sbbs!251

  3. Eric Oulashin
    Tue Jan 31 2023 15:07:28 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: (Hopefully) improved display of certain ANSI messages

  4. Rob Swindell
    Tue Jan 31 2023 15:07:28 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_lister_ansi_improvement' into 'master' DDMsgReader: (Hopefully) improved display of certain ANSI messages See merge request main/sbbs!250

  5. Rob Swindell
    Mon Jan 30 2023 17:36:00 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Convert spaces to underscores in MQTT topics e.g. "action/hack/smtp login" -> "smtp_login", best practices and all.

  6. Rob Swindell
    Mon Jan 30 2023 17:13:49 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Fix MQTT-published action/login message for web server users e.g. 20230130T171211-480 0 <unknown user> 76.89.231.66 <no name> the user number name actually *are* known at this stage

  7. Rob Swindell
    Mon Jan 30 2023 15:57:52 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgsys.c diff
    Remember the Security Level selection upon exit/reenter security levels

  8. Rob Swindell
    Mon Jan 30 2023 15:58:22 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    Don't MQTT-publish the download of temp files

  9. Rob Swindell
    Mon Jan 30 2023 15:58:50 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Lowercase the protocol name in action/login and logout topics

  10. Rob Swindell
    Mon Jan 30 2023 15:59:17 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/logfile.cpp diff
    Lowercase the topics in hack and spam action messages

  11. Rob Swindell (on Debian Linux)
    Mon Jan 30 2023 15:35:38 GMT-0800 (PST)
    Modified Files:
    

    install/systemd/sbbs.service diff
    Add sudo to example command-lines (you have systemd, you probably have sudo) Add some handy tips too (querying status, monitoring log output)

  12. Rob Swindell (on Debian Linux)
    Mon Jan 30 2023 15:36:37 GMT-0800 (PST)
    Modified Files:
    

    text/password.can diff
    Add a couple of overly-used passwords

  13. Rob Swindell (on Debian Linux)
    Mon Jan 30 2023 15:39:48 GMT-0800 (PST)
    Modified Files:
    

    exec/chksetup.js diff
    Check for and warn about passwords that match user's name, alias, or handle This shouldn't be possible during new user sign-up, but there have been ways to curtail checks and generate user accounts with login names and passwords that are the same sequence of characters, unfortunately.

  14. Rob Swindell (on Debian Linux)
    Mon Jan 30 2023 15:41:59 GMT-0800 (PST)
    Modified Files:
    

    exec/newuser.js diff
    Don't allow QWKnet accounts with login IDs that match the account password Don't give QWKnet accounts the 'M' (email messages per day) exemption by default as this has been abused by email spammers. These are security/anti-spam improvements.

  15. Rob Swindell (on Debian Linux)
    Sun Jan 29 2023 20:23:42 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Fix accidental static storage for login/logout functions

  16. Rob Swindell
    Sun Jan 29 2023 20:19:10 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/chat.cpp diff
    src/sbbs3/download.cpp diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/logfile.cpp diff
    src/sbbs3/logon.cpp diff
    src/sbbs3/logout.cpp diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/mqtt.c diff
    src/sbbs3/mqtt.h diff
    src/sbbs3/newuser.cpp diff
    src/sbbs3/postmsg.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/server.h diff
    src/sbbs3/services.c diff
    src/sbbs3/upload.cpp diff
    src/sbbs3/websrvr.c diff
    src/sbbs3/xtrn_sec.cpp diff
    The 3rd great MQTT data scheme update (sorry Nelgin) - Most published messages (besides log entries) have a timestamp (in ISO8601 format) prepended and tab-separated - The order and number of elements in client messages (list and activities) has been updated, now includes user number - Server client lists are now published to .../SERVER/client/list - Server client activities (connect, disconnect, update) are now published to .../SERVER/client/action/# - Server client count is now published to .../SERVER/client (with the maximum client count, if applicable) - Server states are now just represented by name (e.g. initializing, ready, stopping, stopped) and not number - BBS errors are logged to sbbs/BBS/action/error/LEVEL (where LEVEL is the log level name, e.g. "critical" or "error') - All server hack-attempts, SPAM attempts, logins, logouts, uploads, downloads, are published to sbbs/BBS/action/ACTION/* - Chat pages are published to sbbs/BBS/action/page/node/# - New users (on the terminal server) are published to sbbs/BBS/action/newuser - Posted messages and executed external programs (on the terminal server) are published to sbbs/BBS/action/ACTION/CODE topic - The event thread started/stopped status is published to .../SERVER/event Yeah, the wiki will get updated soon to reflect/document all these changes

  17. Rob Swindell
    Sun Jan 29 2023 20:20:40 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/inkey.cpp diff
    Don't do the DEL/Backspace swap for PETSCII terminals This was a bug if the user had set their terminal to swap Delete and Backspace keys while not using a PETSCII terminal.

  18. Eric Oulashin
    Sun Jan 29 2023 16:54:45 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Removed some debugging lines

  19. Rob Swindell
    Sun Jan 29 2023 18:06:56 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Merge branch 'dd_msg_reader_removed_debugging_lines' into 'master' Removed some debugging lines See merge request main/sbbs!249

  20. Rob Swindell (on Windows)
    Sat Jan 28 2023 17:28:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/node.c diff
    src/sbbs3/userdat.c diff
    Report the telegram waiting and node-msg waiting statuses separately (M and N) I noticed that the node status displayed by load/presence_lib.js (e.g. used by exec/nodelist.js) would have (N) for node-message waiting instead of (M) as is reported in other places (e.g. the node utility, umonitor, sbbsctrl). So this commit commonizes this behavior. Now, it's crazy that there are (at least) 3 places that this node status display is implemented and more things should just use nodestatus() to get that string, but I'm not solving that copy/pasta issue in this commit.

  21. Rob Swindell (on Debian Linux)
    Fri Jan 27 2023 21:11:34 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/con_out.cpp diff
    src/sbbs3/newuser.cpp diff
    New user terminal settings weren't display/settable durin sign-up The interactive prompting for terminal capabilities worked fine, but the default configuration menu settings did not reflect the user's previous choices and changes they made (e.g. toggle mouse support or BS/DEL key swap) were not reflected in the menu. Once logged in, the normal user defaults menu worked as expected. This is all because term_supports() keyed off of SS_USERON which isn't set during new user sign-up, so let's key off SS_USERON|SS_NEWUSER now.

  22. Rob Swindell (on ChromeOS)
    Thu Jan 26 2023 23:36:11 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/gen_defs.h diff
    Add XSAFECOPY (extra safe copy) that won't pass NULL to strncpy() The previous (reverted) change to SAFECOPY would double-resolve the (src) argument and caused weird side effects. Again, removes SAFECOPY_USES_SNPRINTF since it was unused.

  23. Rob Swindell (on ChromeOS)
    Thu Jan 26 2023 23:44:35 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/services.c diff
    Use XSAFECOPY in place of SAFECOPY to avoid NULL pointer checks

  24. Rob Swindell (on ChromeOS)
    Thu Jan 26 2023 23:28:30 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/gen_defs.h diff
    Revert "Make SAFECOPY() even safer by not passing NULL destination to strncpy()" This reverts commit c0e857c930feb9833d40617f00ff5d11be9f7772.

  25. Rob Swindell (on Windows)
    Thu Jan 26 2023 13:22:24 GMT-0800 (PST)
    Modified Files:
    

    xtrn/sdk/xsdkinet.h diff
    xtrn/sdk/xsdkvars.c diff
    xtrn/sdk/xsdkwrap.c diff
    xtrn/sdk/xsdkwrap.h diff
    Comment header block clean-up Really just testing to see if gitlab CI will be triggered by this commit.

  26. Rob Swindell
    Thu Jan 26 2023 12:05:57 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    Trigger CI builds on any C/C++ source or makefile changes in xtrn/*

  27. Rob Swindell
    Thu Jan 26 2023 11:01:13 GMT-0800 (PST)
    Modified Files:
    

    xtrn/sdk/xsdk.c diff
    Don't try to #include XPDEV header files unless USE_XPDEV is defined This fixes the Borland/Windows build of xsdk that broke yesterday.

  28. Rob Swindell (ChromeOS)
    Thu Jan 26 2023 00:20:41 GMT-0800 (PST)
    Modified Files:
    

    install/GNUmakefile diff
    Remove showstats from install list, added pktdump and fmsgdump

  29. Rob Swindell (ChromeOS)
    Wed Jan 25 2023 23:20:30 GMT-0800 (PST)
    Modified Files:
    

    xtrn/sdk/xsdk.c diff
    xtrn/sdk/xsdk.h diff
    Resolve GCC-Linux build warnings

  30. Rob Swindell (ChromeOS)
    Wed Jan 25 2023 23:22:14 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/conwrap.h diff
    Add missing prototype for _termios_setup() - causing build warnings

  31. Rob Swindell
    Wed Jan 25 2023 20:27:16 GMT-0800 (PST)
    Modified Files:
    

    3rdp/build/js-disable-warnings.patch diff
    Revert "Patching the configure.in seems the better approach" This reverts commit 64931c4722b6b9c82a30ffe5d3a3dee1de19a990.

  32. Rob Swindell (ChromeOS)
    Wed Jan 25 2023 20:03:00 GMT-0800 (PST)
    Modified Files:
    

    3rdp/build/js-disable-warnings.patch diff
    Patching the configure.in seems the better approach The previous method (patching Makefile.in) didn't disable warnings when building 'jsshell' (e.g. js.cpp).

  33. Rob Swindell (ChromeOS)
    Wed Jan 25 2023 19:24:56 GMT-0800 (PST)
    Modified Files:
    

    3rdp/build/js-disable-warnings.patch diff
    Fix Makefile.in path

  34. Rob Swindell (ChromeOS)
    Wed Jan 25 2023 18:55:18 GMT-0800 (PST)
    Added Files:
    

    3rdp/build/js-disable-warnings.patch diff
    Modified Files:

    3rdp/build/GNUmakefile diff
    Disable warnings when build (very noisy) SpiderMonkey C++ code

  35. Rob Swindell (ChromeOS)
    Wed Jan 25 2023 19:03:28 GMT-0800 (PST)
    Modified Files:
    

    3rdp/build/GNUmakefile diff
    By default, build SpiderMonkey (libmozjs) in silent (no recipe) output mode If debugging build issues, build with VERBOSE=1 to get the very verbose SpiderMonkey build output again.

  36. Rob Swindell
    Wed Jan 25 2023 13:54:24 GMT-0800 (PST)
    Modified Files:
    

    install/GNUmakefile diff
    Don't set/reset ownership of files if Linux setcap was used 'chown' resets Linux capabilities (e.g. cap_net_bind_service=ep), so these calls reset the earlier bind-capabilities enablement, meaning the auto-setup feature on Linux-install really never worked?

  37. Rob Swindell
    Wed Jan 25 2023 10:29:09 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/xtrn.cpp diff
    0-init the 'gamedir' variable Resolves CID 434888, not sure why this one didn't show up before.

  38. Rob Swindell
    Tue Jan 24 2023 21:28:56 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Don't try to upgrade */csts.dab and */dsts.dab files that don't exist In a fresh v3.20 install, the legacy stats files don't exist, so don't try to convert/upgrade them and log errors about it.

  39. Rob Swindell
    Tue Jan 24 2023 17:37:29 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfglib2.c diff
    Don't conditionally allocate scfg_t dynamic arrays malloc(0) returns a usable/freeable pointer on all supported platforms. This change insures that the scfg_t dynamically allocated arrays are all valid non-NULL pointers, even if/when the array length is 0. This should resolve a lot of new(ish) CIDs. Or not. We'll see. :-/

  40. Eric Oulashin
    Tue Jan 24 2023 14:45:37 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    xtrn/gttrivia/readme.txt diff
    xtrn/gttrivia/revision_history.txt diff
    Added a crlf after printing message scan aborted

  41. Rob Swindell
    Tue Jan 24 2023 14:45:37 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    xtrn/gttrivia/readme.txt diff
    xtrn/gttrivia/revision_history.txt diff
    Merge branch 'dd_msg_reader_scan_abort_crlf' into 'master' Added a crlf after printing message scan aborted See merge request main/sbbs!248

  42. Rob Swindell
    Tue Jan 24 2023 12:48:44 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    src/xpdev/xpdatetime.c diff
    src/xpdev/xpdatetime.h diff
    New functions: [gm]time_to_isoDateTimeStr() Not as flexible with regards to formatting as xpDateTime_to_isoDateTimeStr() but simpler to use (with a time_t source).

  43. Rob Swindell
    Tue Jan 24 2023 12:40:16 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/gen_defs.h diff
    Make SAFECOPY() even safer by not passing NULL destination to strncpy() This should resolve (new) CID 434884 and 434885. Also, remove the SAFECOPY_USES_SPRINTF check/block - nobody enables this.

  44. Eric Oulashin
    Tue Jan 24 2023 12:35:54 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    DDMsgReader: Small change in resetting the terminal attributes before the script exits

  45. Rob Swindell
    Tue Jan 24 2023 12:35:54 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Merge branch 'dd_msg_reader_attr_reset_change' into 'master' DDMsgReader: Small change in resetting the terminal attributes before the script exits See merge request main/sbbs!247

  46. Rob Swindell
    Mon Jan 23 2023 19:04:07 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Fix crash in mqtt_startup() when configured broker isn't reachable

  47. Rob Swindell
    Mon Jan 23 2023 13:29:17 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/objects.mk diff
    src/sbbs3/targets.mk diff
    Remove showstat - this functionality is provided via MQTT clients

  48. Rob Swindell
    Mon Jan 23 2023 17:04:07 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/client.h diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/logon.cpp diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/postmsg.cpp diff
    src/sbbs3/services.c diff
    src/sbbs3/userdat.c diff
    src/sbbs3/websrvr.c diff
    Store a copy (rather than a pointer to) the user name in client_t This fixes issue #495.

  49. Rob Swindell
    Mon Jan 23 2023 12:20:09 GMT-0800 (PST)
    Modified Files:
    

    exec/text_sec.js diff
    We need store the file full path in the section name We need to support the same filename in different directories. The 'path' key is just an artifact and not normally used when read, so that was a distraction that apparently confused me previously and I broke this functionality in commit c44ed79a3b2c5e5. This should fix the issues reported by xbit (XBITBBS) on DOVE-Net. Also, don't open the file.ini for write-access (unnecessary).

  50. Rob Swindell
    Sun Jan 22 2023 20:30:50 GMT-0800 (PST)
    Modified Files:
    

    install/logrotate.d/sbbs diff
    Add notes about required ownership (root) and mode/permissions

  51. Rob Swindell
    Sun Jan 22 2023 17:28:13 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfgsave.c diff
    Fix issue with QWKnet hub sub-board mappings when inserting new sub-boards The sub_t.subnum's that were being updated as message areas were being saved to msgs.ini could not be used as an index into the scfg_t.sub array at this point (the subnum would be the new index position when the msgs.ini was re-read/loaded) . This was not an issue in v3.19 because we just saved the subnum (to msgs.cnf) and in v3.20, we save the sub's internal code (to msgs.ini) and were using the newly updated sub_t.subnum to find the corresponding sub_t for that internal code. Since the subnum is not used now during the save process, no need to update it here (this reverses part of the commit 11e529d40bca40 from 5 years ago). This fixes issue #502 - thanks to the irc.synchro.netizens that reported it!

  52. Rob Swindell
    Sun Jan 22 2023 14:42:14 GMT-0800 (PST)
    Modified Files:
    

    exec/load/sbbsdefs.js diff
    Update U_* variables (pseudo consts) to use v3.20 user.tab field numbers The first argument to system.matchuserdata() in v3.20 is the user.tab field number, not the user.dat byte-offset that was used in versions of SBBS prior to v3.20. These values are synchronized with userfields.h, but I keept the U_ prefix here (instead of USER_) to maintain compatibility with existing JS scripts. This is a fix for issue #501 - thanks for the report Eric!

  53. Eric Oulashin
    Sun Jan 22 2023 14:20:39 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: Fix for #499 (replying to emails from unknown user)

  54. Rob Swindell
    Sun Jan 22 2023 14:20:39 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_unknown_sender_reply_fix' into 'master' DDMsgReader: Fix for #499 (replying to emails from unknown user) See merge request main/sbbs!246

  55. Rob Swindell
    Sat Jan 21 2023 21:47:55 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/useredit.cpp diff
    Better handling of Quit/Ctrl-C at default protocol selection IF user hits 'Q' (or whatever the "Quit" key is), set the default protocol field in the user record to " " (instead of an empty string). If user hits abort (Ctrl-C), don't make any change to the default protocol.

  56. Rob Swindell
    Sat Jan 21 2023 19:50:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    Don't truncate a user's record if the default download protocol or gender are '\0' A blank download protocol field in a user.dat, when parsed, sets the 'prot' field of user_t to 0. When writing the record back to the user.dat, this would prematurely truncate all other fields off the user record (since strings in C are NUL terminated and we're using sprintf() to format the record and %c specifier for that field). The fix is to write a ' ' character instead of '\0' if the user_t.prot is '\0'. As part of this fix, I'm writing a '?' if a user_t.sex is '\0' (not sure if this is actually possible, but just as insurance). Those are the only 2 single-character user properties/fields today. Bug reported/debugged by Al of The Rusty Mailbox (1:153/757.2) - thank you!

  57. Rob Swindell
    Sat Jan 21 2023 19:51:12 GMT-0800 (PST)
    Modified Files:
    

    exec/update.js diff
    Don't run upgrade_to_v320 if user.dat doesn't exist There's nothing to upgrade if there's no legacy userbase.

  58. Rob Swindell
    Sat Jan 21 2023 18:25:57 GMT-0800 (PST)
    Modified Files:
    

    exec/login.js diff
    Restore stealth legacy login prompt (NN:) This old prompt used to be sent for any login scripts (e.g. QWKnet via dial-up) that would key off that WWIV-like "name or number" (NN:) prompt, but was removed (accidentally?) in commit fedabb0b8f6dfcdc4. Send "NN: " and "PW: " (include the trailing space, just in case), and use carriage return to move back (and overwrite) rather than 4 backspaces.

  59. Eric Oulashin
    Sat Jan 21 2023 16:56:54 GMT-0800 (PST)
    Modified Files:
    

    exec/load/attr_conv.js diff
    xtrn/DDMsgReader/DDMsgReader.cfg diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader can now optionally convert Y-style MCI attributes to Synchronet attributes.

  60. Rob Swindell
    Sat Jan 21 2023 16:56:54 GMT-0800 (PST)
    Modified Files:
    

    exec/load/attr_conv.js diff
    xtrn/DDMsgReader/DDMsgReader.cfg diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_convert_y_style_mci_attrs' into 'master' DDMsgReader can now optionally convert Y-style MCI attributes to Synchronet attributes. See merge request main/sbbs!244

  61. Rob Swindell
    Sat Jan 21 2023 16:24:53 GMT-0800 (PST)
    Modified Files:
    

    exec/qnet-ftp.js diff
    Treat 0-byte QW* files the same as non-existent The SBBS event_thread ignores 0-byte QW* files, so we should here as well (just overwrite them if they exist), otherwise, if 10 0-byte QW* files got created, we would just stop downloading QWK packets indefinitely. Fixes issue reported by deon (ALTERANT) on DOVE-Net.

  62. Rob Swindell
    Sat Jan 21 2023 13:15:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Refactor mqtt_client_on() This function has been causing somewhat rare crashes (e.g. one per week on a very active system with MQTT enabled) on both Windows and Linux (see issue #495). The root-cause is still unclear (possible heap corruption?). This function needed more robustification anyway (see previous TODO comment), so I'm refactoring here to no longer use strListAppendFormat, which uses vasprintf (the function where the rare crash was occurring) and instead just use snprintf and strListPush. The total client_list that's published (as a single string/message) is now dynamically allocated (this was the point of the previous TODO comment). This may not actually fix the issue if there's a heap corruption occurring somewhere else in this function or the call-chain that's reaching here (usually from the web server). Another change to mqtt_client_on(): don't incremented the server's 'served' counter until client disconnects (this is a past-tense statistic). Also: - mqtt_pub_strval() can now accept a null 'str' argument which is effectively the same as mqtt_pub_noval(), so the pub_noval() function is now just a thin wrapper around pub_strval(). - mqtt_startup() now clears the client_list topic and sets the client_count topic to 0.

  63. Rob Swindell
    Sat Jan 21 2023 13:15:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Don't attempt to remove a non-existing qwk-pack semfile Reduce occurrences of subsequent errors (unsure of root-cause): !ERROR 2 (No such file or directory) in main.cpp line 2778 (event_thread) removing "/sbbs/data/pack0341.now" This does seem to be the only location that deleted pack*.now files, so weird that they'd disappear sometime after calling glob(), but I do understand that its theoretically possible.

  64. Rob Swindell
    Sat Jan 21 2023 13:15:12 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/str_list.c diff
    strListJoin() will now fail gracefully (return NULL) if passed NULL buf No immediate need/use.

  65. Rob Swindell
    Sat Jan 21 2023 13:15:12 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/str_list.c diff
    strListJoin() will now fail gracefully (return NULL) if passed NULL buf No immediate need/use.

  66. Rob Swindell
    Sat Jan 21 2023 13:15:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Don't attempt to remove a non-existing qwk-pack semfile Reduce occurrences of subsequent errors (unsure of root-cause): !ERROR 2 (No such file or directory) in main.cpp line 2778 (event_thread) removing "/sbbs/data/pack0341.now" This does seem to be the only location that deleted pack*.now files, so weird that they'd disappear sometime after calling glob(), but I do understand that its theoretically possible.

  67. Rob Swindell
    Sat Jan 21 2023 13:15:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Refactor mqtt_client_on() This function has been causing somewhat rare crashes (e.g. one per week on a very active system with MQTT enabled) on both Windows and Linux (see issue #495). The root-cause is still unclear (possible heap corruption?). This function needed more robustification anyway (see previous TODO comment), so I'm refactoring here to no longer use strListAppendFormat, which uses vasprintf (the function where the rare crash was occurring) and instead just use snprintf and strListPush. The total client_list that's published (as a single string/message) is now dynamically allocated (this was the point of the previous TODO comment). This may not actually fix the issue if there's a heap corruption occurring somewhere else in this function or the call-chain that's reaching here (usually from the web server). Another change to mqtt_client_on(): don't incremented the server's 'served' counter until client disconnects (this is a past-tense statistic). Also: - mqtt_pub_strval() can now accept a null 'str' argument which is effectively the same as mqtt_pub_noval(), so the pub_noval() function is now just a thin wrapper around pub_strval(). - mqtt_startup() now clears the client_list topic and sets the client_count topic to 0.

  68. Eric Oulashin
    Fri Jan 20 2023 21:21:26 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    Screen header update optimization for file searching & scanning

  69. Rob Swindell
    Fri Jan 20 2023 21:21:26 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    Merge branch 'ddfilelister_search_scan_header_update_optimization' into 'master' Screen header update optimization for file searching & scanning See merge request main/sbbs!243

  70. Rob Swindell
    Fri Jan 20 2023 21:13:38 GMT-0800 (PST)
    Modified Files:
    

    exec/upgrade_to_v320.js diff
    Another paranoia check, in case the new user command shell is invalid

  71. Rob Swindell
    Thu Jan 19 2023 21:07:56 GMT-0800 (PST)
    Modified Files:
    

    exec/upgrade_to_v320.js diff
    Protect against line 335: TypeError: cnf.guru[obj.guru] is undefined As reported in #synchronet by Android8675

  72. Eric Oulashin
    Wed Jan 18 2023 20:11:59 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Fix for issue #494 (DD File Lister searching and scanning)

  73. Rob Swindell
    Thu Jan 19 2023 08:28:31 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Merge branch 'issue_494_ddfilelister_scan_more_detail' into 'master' Fix for issue #494 (DD File Lister searching and scanning) Closes #494 See merge request main/sbbs!242

  74. Rob Swindell
    Mon Jan 16 2023 21:52:18 GMT-0800 (PST)
    Modified Files:
    

    exec/init-fidonet.js diff
    Fix a couple of compile errors introduced since v3.19 It'd be nice if someone (me?) tested this. :-)

  75. Rob Swindell
    Mon Jan 16 2023 21:28:40 GMT-0800 (PST)
    Modified Files:
    

    exec/load/install-binkit.js diff
    Updated to read/write xtrn.ini instead of xtrn.cnf, for SBBS v3.20+ Fixes issue #477

  76. Rob Swindell
    Mon Jan 16 2023 21:05:41 GMT-0800 (PST)
    Modified Files:
    

    exec/letsyncrypt.js diff
    Use main.ini instead of main.cnf for system password Fixes issue #471

  77. Rob Swindell
    Mon Jan 16 2023 21:08:08 GMT-0800 (PST)
    Modified Files:
    

    exec/certtool.js diff
    Use main.ini instead of main.cnf for system password Fixes issue #472

  78. Rob Swindell
    Mon Jan 16 2023 21:13:43 GMT-0800 (PST)
    Modified Files:
    

    exec/tickfix.js diff
    Use new cfglib.js instead of cnflib.js for SBBS v3.20+ compatibility Fixes issue #475

  79. Rob Swindell
    Mon Jan 16 2023 21:21:29 GMT-0800 (PST)
    Modified Files:
    

    exec/text_sec.js diff
    text_sec updated for v3.20+ There are some changes in here that I forgot the history behind, but the most important is that it uses file.ini rather than file.cnf, thus fixing issue #478. I actually had this changed file sitting outside of my git repo for a while now and didn't realize it. The other changes appear to be: - RIP support (clearing the window before/after each file is displayed) - read the display files a chunk at a time (rather than read the entire file into RAM, which could take a really long time on very large files), - allow files that don't exist on disk to be added to the list

  80. Rob Swindell
    Mon Jan 16 2023 20:52:02 GMT-0800 (PST)
    Modified Files:
    

    exec/chksetup.js diff
    Log a debug-level message when sending finger query to vert The "opening list file" log message referenced in issue #480 is a debug level log message, so seemed appropriate to make the newly-added message also debug-level. Fixes issue #480

  81. Rob Swindell
    Mon Jan 16 2023 20:29:54 GMT-0800 (PST)
    Modified Files:
    

    exec/install-xtrn.js diff
    Updated to use cfglib.js for SBBS v3.20+ compatibility Fixes issue #473

  82. Rob Swindell
    Mon Jan 16 2023 20:23:55 GMT-0800 (PST)
    Added Files:
    

    exec/load/cfglib.js diff
    New config library for dealing with new ctrl/????.ini files Replaces functionality of cnflib.js for sbbs v3.20+ Only the xtrn.ini read/write support has been added so far (for use in install-xtrn.js). I didn't think a lib like this would be needed, being that the files are now in .ini format, but there was some re-arranging of property values/section names that still needed to be done by something (unfortunately), so this does that. But it does make updating existing scripts that use cnflib.js a breeze.

  83. Rob Swindell
    Mon Jan 16 2023 19:42:09 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_file.c diff
    Add File method: iniRemoveSections() to remove all sections in an .ini file or all sections with a specified prefix.

  84. Rob Swindell
    Mon Jan 16 2023 17:12:28 GMT-0800 (PST)
    Modified Files:
    

    exec/filearea-lb.js diff
    Merge branch 'eugeneso/filearealb' into 'master' Migrate filearea-lb.js to use FileBase See merge request main/sbbs!240

  85. Eugene So
    Mon Jan 16 2023 17:12:28 GMT-0800 (PST)
    Modified Files:
    

    exec/filearea-lb.js diff
    Migrate filearea-lb.js to use FileBase

  86. Rob Swindell
    Sat Jan 14 2023 17:29:38 GMT-0800 (PST)
    Added Files:
    

    xtrn/gttrivia/qa/names_of_people.qa diff
    xtrn/gttrivia/qa/star_trek_general.qa diff
    xtrn/gttrivia/qa/the_office_us.qa diff
    xtrn/gttrivia/qa/word_unscramble_english.qa diff
    Modified Files:

    xtrn/gttrivia/gttrivia.ini diff
    xtrn/gttrivia/gttrivia.js diff
    xtrn/gttrivia/qa/dirty_minds.qa diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    xtrn/gttrivia/readme.txt diff
    xtrn/gttrivia/revision_history.txt diff
    Merge branch 'gttrivia_qa_set_and_answer_metadata' into 'master' Good Time Trivia 1.03: Fixes to score reading & parsing. Q&A files can have more flexible metadata. Added more questions. See merge request main/sbbs!241

  87. Rob Swindell
    Mon Jan 16 2023 17:12:28 GMT-0800 (PST)
    Modified Files:
    

    exec/filearea-lb.js diff
    Merge branch 'eugeneso/filearealb' into 'master' Migrate filearea-lb.js to use FileBase See merge request main/sbbs!240

  88. Eugene So
    Mon Jan 16 2023 17:12:28 GMT-0800 (PST)
    Modified Files:
    

    exec/filearea-lb.js diff
    Migrate filearea-lb.js to use FileBase

  89. Rob Swindell
    Sat Jan 14 2023 17:29:38 GMT-0800 (PST)
    Added Files:
    

    xtrn/gttrivia/qa/names_of_people.qa diff
    xtrn/gttrivia/qa/star_trek_general.qa diff
    xtrn/gttrivia/qa/the_office_us.qa diff
    xtrn/gttrivia/qa/word_unscramble_english.qa diff
    Modified Files:

    xtrn/gttrivia/gttrivia.ini diff
    xtrn/gttrivia/gttrivia.js diff
    xtrn/gttrivia/qa/dirty_minds.qa diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    xtrn/gttrivia/readme.txt diff
    xtrn/gttrivia/revision_history.txt diff
    Merge branch 'gttrivia_qa_set_and_answer_metadata' into 'master' Good Time Trivia 1.03: Fixes to score reading & parsing. Q&A files can have more flexible metadata. Added more questions. See merge request main/sbbs!241

  90. Rob Swindell
    Mon Jan 16 2023 17:12:28 GMT-0800 (PST)
    Modified Files:
    

    exec/filearea-lb.js diff
    Merge branch 'eugeneso/filearealb' into 'master' Migrate filearea-lb.js to use FileBase See merge request main/sbbs!240

  91. Eugene So
    Mon Jan 16 2023 17:12:28 GMT-0800 (PST)
    Modified Files:
    

    exec/filearea-lb.js diff
    Migrate filearea-lb.js to use FileBase

  92. Rob Swindell
    Sat Jan 14 2023 17:29:38 GMT-0800 (PST)
    Added Files:
    

    xtrn/gttrivia/qa/names_of_people.qa diff
    xtrn/gttrivia/qa/star_trek_general.qa diff
    xtrn/gttrivia/qa/the_office_us.qa diff
    xtrn/gttrivia/qa/word_unscramble_english.qa diff
    Modified Files:

    xtrn/gttrivia/gttrivia.ini diff
    xtrn/gttrivia/gttrivia.js diff
    xtrn/gttrivia/qa/dirty_minds.qa diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    xtrn/gttrivia/readme.txt diff
    xtrn/gttrivia/revision_history.txt diff
    Merge branch 'gttrivia_qa_set_and_answer_metadata' into 'master' Good Time Trivia 1.03: Fixes to score reading & parsing. Q&A files can have more flexible metadata. Added more questions. See merge request main/sbbs!241

  93. Rob Swindell
    Mon Jan 16 2023 17:12:28 GMT-0800 (PST)
    Modified Files:
    

    exec/filearea-lb.js diff
    Merge branch 'eugeneso/filearealb' into 'master' Migrate filearea-lb.js to use FileBase See merge request main/sbbs!240

  94. Eugene So
    Mon Jan 16 2023 17:12:28 GMT-0800 (PST)
    Modified Files:
    

    exec/filearea-lb.js diff
    Migrate filearea-lb.js to use FileBase

  95. Rob Swindell
    Sat Jan 14 2023 17:29:38 GMT-0800 (PST)
    Added Files:
    

    xtrn/gttrivia/qa/names_of_people.qa diff
    xtrn/gttrivia/qa/star_trek_general.qa diff
    xtrn/gttrivia/qa/the_office_us.qa diff
    xtrn/gttrivia/qa/word_unscramble_english.qa diff
    Modified Files:

    xtrn/gttrivia/gttrivia.ini diff
    xtrn/gttrivia/gttrivia.js diff
    xtrn/gttrivia/qa/dirty_minds.qa diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    xtrn/gttrivia/readme.txt diff
    xtrn/gttrivia/revision_history.txt diff
    Merge branch 'gttrivia_qa_set_and_answer_metadata' into 'master' Good Time Trivia 1.03: Fixes to score reading & parsing. Q&A files can have more flexible metadata. Added more questions. See merge request main/sbbs!241

  96. Rob Swindell
    Thu Jan 12 2023 18:11:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scfg/scfgxfr1.c diff
    src/sbbs3/scfgdefs.h diff
    Increase maximum file extension length from 3 to 15 characters For Viewable, Testable, Compressible file types and download events, the file extension is no longer limited to 3 characters. 15 characters seemed like "enough". Similarly, a user's temp/QWK file type preference is also extended from 3 to 15 characters. This fixes issue #486, but file types such as *.tar.gz (2 dots in the extension) are still an issue and will be addressed next.

  97. Rob Swindell
    Thu Jan 12 2023 19:37:36 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/pack_qwk.cpp diff
    src/sbbs3/un_rep.cpp diff
    Fix possible crash when no extractable file types are configured in SCFG If libarchive couldn't extract a QWK or REP packet, we'd fallback to searching for a match among the configured extractable file types and if no extension/type match was found, default to the first configured extractable file type (even if there wasn't one) which would result in a NULL pointer dereference and most likely a crash. Instead, if no matching configured extractable file type is found, just log a warning message and don't continue with the extraction attempt. With SBBS v3.19+, it's totally valid/legit to have no extractable file types configured in SCFG and things "just work" (using libarchive).

  98. Rob Swindell
    Thu Jan 12 2023 19:50:47 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/filedat.c diff
    src/sbbs3/filedat.h diff
    src/sbbs3/listfile.cpp diff
    src/sbbs3/upload.cpp diff
    src/sbbs3/viewfile.cpp diff
    Create/use file_type_match() for viewing, testing, and download-events Allows for more/better wildcard matching in viewable and testable file types and download-events (e.g. "tar.gz" or "tar.*"). This solves the "double-dot" problem in some file types/extensions. An implicit "*." is prepended before the configured file type/extension.

  99. Rob Swindell
    Wed Jan 11 2023 22:26:44 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/upgrade_to_v320.c diff
    Fix sizeof(cursub / curdir) issue as these user_t fields were increased in v3.20 ... but the old user.dat fields would still just be 16 chars in size. Also a strcpy -> SAFECOPY conversion for user tmpext.

  100. Rob Swindell
    Wed Jan 11 2023 22:25:49 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/makeuser.c diff
    strcpy -> SAFECOPY

  101. Rob Swindell
    Mon Jan 09 2023 15:48:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/readmail.cpp diff
    Elminate old copy/paste cruft (likely from readmsgs.c/cpp)

  102. Rob Swindell
    Wed Jan 11 2023 22:26:44 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/upgrade_to_v320.c diff
    Fix sizeof(cursub / curdir) issue as these user_t fields were increased in v3.20 ... but the old user.dat fields would still just be 16 chars in size. Also a strcpy -> SAFECOPY conversion for user tmpext.

  103. Rob Swindell
    Wed Jan 11 2023 22:25:49 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/makeuser.c diff
    strcpy -> SAFECOPY

  104. Rob Swindell
    Mon Jan 09 2023 15:48:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/readmail.cpp diff
    Elminate old copy/paste cruft (likely from readmsgs.c/cpp)

  105. Rob Swindell
    Wed Jan 11 2023 22:26:44 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/upgrade_to_v320.c diff
    Fix sizeof(cursub / curdir) issue as these user_t fields were increased in v3.20 ... but the old user.dat fields would still just be 16 chars in size. Also a strcpy -> SAFECOPY conversion for user tmpext.

  106. Rob Swindell
    Wed Jan 11 2023 22:25:49 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/makeuser.c diff
    strcpy -> SAFECOPY

  107. Rob Swindell
    Mon Jan 09 2023 15:48:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/readmail.cpp diff
    Elminate old copy/paste cruft (likely from readmsgs.c/cpp)

  108. Rob Swindell
    Mon Jan 09 2023 15:36:49 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/services.c diff
    src/sbbs3/websrvr.c diff
    Log client IP address along with MAXIMUM CLIENTS reached log message

  109. Rob Swindell
    Mon Jan 09 2023 15:38:13 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgnet.c diff
    Use more verbose MQTT version numers (e.g. 3.1.0 rather than 3.1)

  110. Rob Swindell
    Mon Jan 09 2023 15:39:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Log to log/# topic only when MQTT protocol version is < 5 When MQTT protocol version is >= 5, just log to the */log topic (the level is a property). This means you can't subscribe only to specific log levels when using MQTT v5 so I may re-think this, but I don't want to keep publishing every single log message twice.

  111. Rob Swindell
    Mon Jan 09 2023 15:42:02 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfglib1.c diff
    Change the default MQTT protocol version from 5.0 to 3.1.1 I read that 3.1.1 is much more widely supported, but perhaps that was old info.

  112. Rob Swindell
    Mon Jan 09 2023 15:48:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/readmail.cpp diff
    Elminate old copy/paste cruft (likely from readmsgs.c/cpp)

  113. Eric Oulashin
    Mon Jan 09 2023 15:14:07 GMT-0800 (PST)
    Modified Files:
    

    exec/load/dd_lightbar_menu.js diff
    DD lightbar menu fix for navigating with the HOME key with the top item index > 0 & selected item is in the middle of the screen

  114. Rob Swindell
    Mon Jan 09 2023 15:14:07 GMT-0800 (PST)
    Modified Files:
    

    exec/load/dd_lightbar_menu.js diff
    Merge branch 'dd_lightbar_menu_scroll_home_fix' into 'master' DD lightbar menu fix for navigating with the HOME key with the top item index > 0 & selected item is in the middle of the screen See merge request main/sbbs!239

  115. Deucе
    Fri Jan 06 2023 14:21:13 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Add a "scheme" property to http_request object Value is "http" or "https" depending on if TLS is in use.

  116. Rob Swindell
    Wed Jan 04 2023 21:33:37 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    src/sbbs3/mqtt.c diff
    src/sbbs3/mqtt.h diff
    Public log messages over MQTT with the 'retain' flag set to true This can be useful when debugging issues (e.g. crashes) and an MQTT consuming/logging client wasn't connected at the time.

  117. Rob Swindell
    Wed Jan 04 2023 18:58:42 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/con_out.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/putnode.cpp diff
    Go back to singular "node" topic

  118. Rob Swindell
    Wed Jan 04 2023 19:03:03 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Prepend "server/" before server topics This solves the problem of subscribing to "sbbs/+/+/+" and getting node status in addition to server status (very different formatted messages). Also include a change for the singular-again "node" topic

  119. Rob Swindell
    Wed Jan 04 2023 18:31:09 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgsys.c diff
    Range-check the cfg.new_shell value before using as index into array If a configuration had *no* command shells, this would have caused a crash here in SCFG. Also, when selecting the new user command shell, default to the current selection.

  120. Rob Swindell
    Wed Jan 04 2023 16:30:29 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Fix crash in mqtt_errormsg() when MQTT is disabled Should fix the segfault reported by NeoArata_ in #synchronet Also include singular/plural error/s in server status messages.

  121. Rob Swindell
    Wed Jan 04 2023 13:54:11 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/con_out.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/mqtt.c diff
    src/sbbs3/mqtt.h diff
    src/sbbs3/putnode.cpp diff
    src/sbbs3/scfg/scfgnet.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    Publish some topics directly to topic levels <server>/state is now published directly to the <sever> topic level (the "state" topic goes away). Moved <bbs-id>/node# topics to <bbs-id>/nodes/# (allows better wild-card subscription per MQTT standards). Publishing total node count to <bbs-id>/nodes rather than <bbs-id>/node_count Introduced "publish verbosity" control (defaults to "High") - if you want nice human readable (and sometimes redundant) topic messages, leave this set to "High". To reduce traffic, set to "Low". It's expected that purpose-built Synchronet/MQTT clients should work equally-well with either setting, but when using generic MQTT clients/browser, "high" verbosity is nice. The human-readable node status is only published when "high" verbosity is enabled. Publishing the BBS name to the <bbs-id> topic, the instance hostname (as configured in sbbs.ini) to the <host> topic. Makes the hierarchy much more clear when using an MQTT browser like MQTT Explorer.

  122. Rob Swindell
    Tue Jan 03 2023 22:12:37 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/logfile.cpp diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/mqtt.c diff
    src/sbbs3/services.c diff
    src/sbbs3/websrvr.c diff
    Public hack, spam, and error logs at the MQTT BBS-ID topic depth This is more consistent with how these events are logged in a BBS-common log file in data/*.log. This change also restores the server abbreviation to the error log entries that used to be there until recently.

  123. Rob Swindell
    Tue Jan 03 2023 21:39:39 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/answer.cpp diff
    Write/publish node client terminal params after telnet cmd parsing

  124. Rob Swindell
    Tue Jan 03 2023 21:40:14 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/con_out.cpp diff
    Include terminal description in terminal.ini and node#/terminal mqtt msg

  125. Rob Swindell
    Tue Jan 03 2023 21:40:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Include time used (HH:MM:SS) in node#/laston mqtt msg

  126. Rob Swindell
    Tue Jan 03 2023 21:41:26 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/putnode.cpp diff
    Publish human readable nodestatus to node# mqtt topic Makes for a nice node listing with pure-text MQTT clients/tools

  127. Rob Swindell
    Tue Jan 03 2023 18:56:19 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/con_out.cpp diff
    src/sbbs3/ctrl/MainFormUnit.cpp diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/logfile.cpp diff
    src/sbbs3/login.cpp diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/mqtt.c diff
    src/sbbs3/mqtt.h diff
    src/sbbs3/putnode.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/sbbscon.c diff
    src/sbbs3/server.h diff
    src/sbbs3/services.c diff
    src/sbbs3/startup.h diff
    src/sbbs3/websrvr.c diff
    Over-overhaul of MQTT support Each Synchronet server is now its own MQTT client. This means there's no longer any MQTT logic in the Synchronet "hosts" (e.g. sbbscon.c, ctrl/*.cpp) and none needed for SBBS NT services (they'll "just work" with MQTT). This also means that just about everything (except for nodes, spam and hack) is now published per-server (in the sbbs/BBS-ID/hostname/server/ topic branch) and if you want aggregated totals or client lists, you'll have to do that in your own MQTT client or dashboard. I also removed the publishing of thread_count and socket_count topics as they weren't universally supported across all servers and are of questionable value. They can be added back later if determined to be useful.

  128. Rob Swindell
    Tue Jan 03 2023 17:59:49 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbscon.c diff
    Set server_stopped back to FALSE if a server is restarted (via recycle) A set_state() may be called with SERVER_STOPPED while recycling.

  129. Rob Swindell
    Tue Jan 03 2023 17:23:21 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbscon.c diff
    Only report systemd service "READY=1" state if any server is actually ready any server "running" is not enough because the server could still be initializing, re-initializing, or even shutting down.

  130. echicken
    Tue Jan 03 2023 14:30:32 GMT-0800 (PST)
    Modified Files:
    

    webv4/lib/auth.js diff
    Aripoll auth wtf

  131. Rob Swindell
    Tue Jan 03 2023 14:30:32 GMT-0800 (PST)
    Modified Files:
    

    webv4/lib/auth.js diff
    Merge branch 'aripoll-auth-wtf' into 'master' Aripoll auth wtf See merge request main/sbbs!238

  132. Rob Swindell
    Mon Jan 02 2023 22:07:18 GMT-0800 (PST)
    Modified Files:
    

    exec/testbuild.js diff
    Windows builds reqquire Mosquitto (for MQTT) and OpsenSSL DLLs now Technically, the OpenSSL DLLs aren't used right now because I have TLS support disabled in the 'develop' branch version of mosquitto.dll v2.1.0 that I have in the repo, but that should soon change.

  133. Rob Swindell
    Mon Jan 02 2023 22:06:26 GMT-0800 (PST)
    Modified Files:
    

    exec/init-fidonet.js diff
    Report correct filename in open failure error message Fixes issue #476

  134. Rob Swindell
    Mon Jan 02 2023 19:33:43 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbscon.c diff
    Setup signal blocking before MQTT (which spawns a thread) This solves the problem of any signal (even HUP) ungracefully terminating sbbs (on *nix) when MQTT was enabled. As reported by Nightfox on IRC.

  135. Rob Swindell
    Mon Jan 02 2023 19:25:48 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Fix total-disablement of MQTT support in previous crash-fix-commit

  136. Rob Swindell
    Mon Jan 02 2023 19:15:45 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbscon.c diff
    Log an error upon failure to create/open the pid file

  137. Rob Swindell
    Mon Jan 02 2023 18:52:20 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    More support for running (without crashing) with MQTT disabled

  138. Rob Swindell
    Mon Jan 02 2023 18:41:44 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Don't call mosquttio (MQTT lib) functions when disabled Should fix the new crash issues reported by Retros via #synchronet on irc.synchro.net

  139. Rob Swindell
    Mon Jan 02 2023 17:21:41 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/node.c diff
    Actually allow node utility to run without SBBSCTRL being set

  140. Rob Swindell
    Mon Jan 02 2023 17:19:49 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ntsvcs.c diff
    Updated NT service descriptions and initialize startup.type members

  141. Rob Swindell
    Mon Jan 02 2023 17:19:49 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/node.c diff
    src/sbbs3/node.vcxproj diff
    src/sbbs3/objects.mk diff
    Add default SBBSCTRL path to node utility Update brace style and header comment while at it.

  142. Rob Swindell
    Mon Jan 02 2023 15:13:07 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Resolve GCC warning about function prototype mismatch warning: passing argument 2 of ‘mosquitto_message_callback_set’ from incompatible pointer type

  143. Rob Swindell
    Mon Jan 02 2023 15:10:31 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.h diff
    Fix GCC build with foward struct startup declaration. Interestingly, not required for successful MSVC build. <shurg> I suspecte the circular dependency and include-guards around mqtt.h and startup.h were going to be a problem.

  144. Rob Swindell
    Mon Jan 02 2023 15:03:08 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/con_out.cpp diff
    src/sbbs3/ctrl/MainFormUnit.cpp diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/logfile.cpp diff
    src/sbbs3/login.cpp diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/mqtt.c diff
    src/sbbs3/mqtt.h diff
    src/sbbs3/putnode.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/sbbscon.c diff
    src/sbbs3/services.c diff
    src/sbbs3/startup.h diff
    src/sbbs3/websrvr.c diff
    Second part of MQTT overhaul Now support subscriptions (e.g. recycle topics, node input topics) in SBBSCTRL. This required a lot of search/replace and fun with circular struct pointers.

  145. Rob Swindell
    Sun Jan 01 2023 21:37:40 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/sbbsctrl.res diff
    Gotta include the updated resource file for new version details.

  146. Rob Swindell
    Sun Jan 01 2023 21:36:22 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/sbbsctrl.bpr diff
    Update version and copyright information using C++Builder IDE Doing this via manual edits to this bpr file don't seem to work.

  147. Rob Swindell
    Sun Jan 01 2023 21:24:39 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfglib2.c diff
    src/sbbs3/scfgsave.c diff
    Timed event month-days (mdays) is 32-bit, not 16 Fix issue #470 reported via IRC: timed event "mdays" values were read and written as 16-bit values, meaning any setting for days > 15 would do weird things.

  148. Rob Swindell
    Sun Jan 01 2023 20:44:08 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    src/sbbs3/sbbscon.c diff
    When the client_list is shared between servers, the served count is too

  149. Rob Swindell
    Sun Jan 01 2023 20:26:49 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Remove accidentally added debug line with no effect.

  150. Rob Swindell
    Sun Jan 01 2023 20:27:56 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Resolve GCC warning: enumeration value ‘SERVER_COUNT’ not handled in switch

  151. Rob Swindell
    Sun Jan 01 2023 20:16:55 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/sbbsctrl.bpr diff
    Use int-sized enums for API compatible with MSVC built DLLs e.g. sbbs.dll

  152. Rob Swindell
    Sun Jan 01 2023 20:17:45 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/AboutBoxFormUnit.cpp diff
    src/sbbs3/ctrl/AboutBoxFormUnit.h diff
    Include git branch/hash in sbbsctrl version info And export a simple ver() function to be used in MainFormUnit.cpp (for mqtt stuff)

  153. Rob Swindell
    Sun Jan 01 2023 20:25:36 GMT-0800 (PST)
    Added Files:
    

    src/sbbs3/server.h diff
    Modified Files:

    src/sbbs3/ctrl/MainFormUnit.cpp diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/ftpsrvr.h diff
    src/sbbs3/logfile.cpp diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/mailsrvr.h diff
    src/sbbs3/main.cpp diff
    src/sbbs3/mqtt.c diff
    src/sbbs3/mqtt.h diff
    src/sbbs3/sbbscon.c diff
    src/sbbs3/services.c diff
    src/sbbs3/services.h diff
    src/sbbs3/startup.h diff
    src/sbbs3/websrvr.c diff
    src/sbbs3/websrvr.h diff
    MQTT support overhaul, mainly for SBBSCTRL compatibility The only difference in the data/scheme is that the "error" topic (error log) is now under each server rather than each host. I don't *think* there are any other changes from the MQTT consumer side. Still not done: subscribing (e.g. support for recycle or node-spy-input via MQTT) and NT services support. This change also includes a cool feature that will prompt the sysop if there's a timeout (30 seconds) while waiting for servers to shutdown gracefully and giving the sysop the option to abort (Cancel) the wait (and shutdown ungracefully) or continue the wait (OK).

  154. Rob Swindell
    Sun Jan 01 2023 12:46:21 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/useredit/UserEdit.bpr diff
    Should fix unresolved dependencies (e.g. vc160.bpl) Turned of "Use dynamic RTL" and "Build with runtime packages" under Project options. This should resolve the UserEdit.exe runtime issue reported by Diamond Dave via DOVE-Net.

  155. Rob Swindell
    Sun Jan 01 2023 11:42:20 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbscon.c diff
    Fix sbbs startup issue when user is specific in sbbs.ini [unix] Bug introduced in the systemd integration (commit d02978ade98a8) and reported by Dan_C via #synchronet at irc.synchro.net

  156. Rob Swindell
    Sat Dec 31 2022 18:36:20 GMT-0800 (PST)
    Modified Files:
    

    exec/update.js diff
    Fix off-by-one errors in looping through user records (last user record wouldn't have been updated) These are rather old update steps (e.g. v3.18), so don't fret it.

  157. Rob Swindell
    Sat Dec 31 2022 03:49:55 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/makelibs.bat diff
    Revert "Is coff2omf the issue?" This reverts commit 15494c2d8813658420379067b070b7f7bf73c9d4.

  158. Rob Swindell
    Sat Dec 31 2022 03:50:04 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    Revert "Prefix .bat file script invocation lines with "call"" This reverts commit 1e737459978d50fa99f3a6f73112915208fdbd2a.

  159. Rob Swindell
    Sat Dec 31 2022 02:50:48 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/build.bat diff
    Revert "Don't call makelibs.bat from build.bat" This reverts commit 6c064579c3b4b2e1449ce65bfab47c463b19700c.

  160. Rob Swindell
    Sat Dec 31 2022 02:51:17 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/makelibs.bat diff
    Is coff2omf the issue?

  161. Rob Swindell
    Sat Dec 31 2022 02:21:25 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/build.bat diff
    Don't call makelibs.bat from build.bat This seems to stop the CI build and I haven't found any other solution. So just copy/paste the contents of makelibs.bat into this batch file. <sigh>

  162. Rob Swindell
    Sat Dec 31 2022 02:12:36 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/makelibs.bat diff
    Try the 'exit /b' trick to stop makelibs.bat from terminating build.bat when run from Gitlab-Runner (CI) using shell="cmd"

  163. Rob Swindell
    Sat Dec 31 2022 02:00:17 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/build.bat diff
    Try setlocal to allow nested build.bat -> makelibs.bat to pass CI build

  164. Rob Swindell
    Sat Dec 31 2022 00:49:06 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    Prefix .bat file script invocation lines with "call" Apparently when the Gitlab Runner is using "cmd", you must do this or only the first invoked bat file is executed. This explains why sbbsctrl.exe (and other) files have been missing from the CI-generated artifact archives. Back when I was using "powershell" to invoke the CI build for sbbs-windows (my Gitlab-runner/config.toml file had shell = "powershell"), this wasn't an issue, but this configuration stopped working on Vert at some point (https://fo rum.gitlab.com/t/windows-10-gitlab-runner-fails-with-error-no-process-is-on-the -other-end-of-the-pipe/66691) so I switched to "cmd", even though it's deprecated. Remove the dependencies: [] line since that wasn't a solution to anything.

  165. Rob Swindell
    Fri Dec 30 2022 18:38:19 GMT-0800 (PST)
    Modified Files:
    

    install/systemd/sbbs.service diff
    Add instructions to use symlink and 'systemctl edit sbbs' for over-rides I think this addresses issue #403, at least in part.

  166. Rob Swindell
    Fri Dec 30 2022 16:20:49 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/useredit.cpp diff
    Don't assign to unused variable CID 433272

  167. Rob Swindell
    Fri Dec 30 2022 16:20:49 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    Borland C/C++ doesn't have strto[u]ll()

  168. Eric Oulashin
    Fri Dec 30 2022 13:25:20 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: For Synchronet >= 3.20, read external editor quote wrap setting from xtrn.ini (rather than xtrn.cnf)

  169. Rob Swindell
    Fri Dec 30 2022 13:25:20 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'ddmr_sync320_xtrn_ini' into 'master' DDMsgReader: For Synchronet >= 3.20, read external editor quote wrap setting from xtrn.ini (rather than xtrn.cnf) See merge request main/sbbs!236

  170. Rob Swindell
    Fri Dec 30 2022 03:37:03 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Clean-up the logging around the auto-tuned outbuf highwater mark

  171. Rob Swindell
    Fri Dec 30 2022 03:05:45 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_system.c diff
    Resolve unused variable warning introduced in previous commit Some trailing whitespace clean-up too.

  172. Rob Swindell
    Fri Dec 30 2022 02:40:13 GMT-0800 (PST)
    Modified Files:
    

    exec/load/sbbsdefs.js diff
    exec/upgrade_to_v320.js diff
    src/sbbs3/answer.cpp diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/js_system.c diff
    src/sbbs3/login.cpp diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scfg/scfgnode.c diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    src/sbbs3/services.c diff
    src/sbbs3/userdat.c diff
    src/sbbs3/userdat.h diff
    src/sbbs3/websrvr.c diff
    Common login control (e.g. via real name) using new find_login_id() function Previously, many servers and services didn't support login by real name (e.g. issue #469) even if the sysop had that option enabled in SCFG. Move login control settings from node.ini to system (main.ini -> login) The 3 node toggle options: - Allow Login by User Number - Allow Login by Real Name - Always Prompt for Password ... have been now moved from SCFG->Nodes->Node x->Toggle Options to SCFG-System->Toggle Options. If you upgraded to v3.20a before now, you'll want to double-check these settings to make sure they're how you want them set. New upgraders that run upgrade_to_v320.js (e.g. via 'jsexec update') will get these settings migrated automatically. Added some error detection/logging to upgrade_to_v320.js when failing to open .cnf files. Constified some more user/login related function args and return types.

  173. Rob Swindell
    Fri Dec 30 2022 02:59:27 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/login.cpp diff
    src/sbbs3/sbbs.h diff
    More constification of login().

  174. Rob Swindell
    Fri Dec 30 2022 03:00:02 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_system.c diff
    Add JS system.find_login_id() method

  175. Rob Swindell
    Fri Dec 30 2022 02:26:48 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/answer.cpp diff
    Don't try to send telnet commands if not connected.

  176. Rob Swindell
    Fri Dec 30 2022 01:16:59 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    src/xpdev/ini_file.h diff
    Add functions for reading/getting/settings 64-bit ints/uints No immediate use, but I thought I had one. I didn't. Still, will probably need these one day.

  177. Rob Swindell
    Fri Dec 30 2022 02:22:31 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/bat_xfer.cpp diff
    Use the user's default download protocol for batch downloads Oversight probably during the new filebase overhaul in v3.19. Reported by Nelgin.

  178. Rob Swindell
    Fri Dec 30 2022 01:15:16 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Lower log level of send_telnet_cmd() send failure (to debug level) As apparently these happen a lot when a client disconnects right away after connecting.

  179. Rob Swindell
    Fri Dec 30 2022 00:43:01 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbscon.c diff
    Fix MQTT for daemonized sbbs Need to start the MQTT init/thread-start stuff after daemonizing. Thanks to Nelgin for letting me know this was recently broken.

  180. Rob Swindell
    Thu Dec 29 2022 19:38:00 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Fix gcc warnings in previous commit: don't bother with [s]size_t here

  181. Rob Swindell
    Thu Dec 29 2022 19:30:22 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Eliminate the global 'sbbs' here, was masking bugs I'm not sure what purpose this global variable once had, but it wasn't needed now and it was masking copy/paste issues in some of the sbbs_t methods in this file. Just make an 'sbbs' local to bbs_thread(), since there's where it's legit-used. FYI: All the Cryptlib-SSH macros assume there's an 'sbbs' in scope.

  182. Rob Swindell
    Thu Dec 29 2022 19:36:17 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Add sendsocket() result checking/error-logging to send_telnet_cmd()

  183. Deucе
    Thu Dec 29 2022 18:48:25 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Move some lines around to clamp sbbs->outbuf.highwater_mark at IO_THREAD_BUF_SIZE

  184. Deucе
    Thu Dec 29 2022 17:53:32 GMT-0800 (PST)
    Modified Files:
    

    ctrl/sbbs.ini diff
    src/sbbs3/main.cpp diff
    src/sbbs3/sbbs_ini.c diff
    src/sbbs3/websrvr.c diff
    Use OutbufHighwaterMark as a default, not an override. The MSS detection will set this to the best value on a per-connection basis. This will allow larger packets to be sent from the BBS.

  185. Deucе
    Thu Dec 29 2022 17:14:08 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Call RingBufRead() when avail == 0 to reset events If something else sets these events, and they never get cleared, this will fall into a tight loop.

  186. Rob Swindell
    Sat Dec 17 2022 15:41:57 GMT-0800 (PST)
    Added Files:
    

    docs/slyedit_readme.txt diff
    Modified Files:

    exec/SlyEdit.js diff
    exec/newuser.js diff
    src/doors/clans-src/data/list.asc diff
    src/doors/clans-src/data/pg.asc diff
    src/doors/clans-src/data/pxnews.asc diff
    src/doors/clans-src/data/pxtit.asc diff
    src/doors/clans-src/test/scores.ans diff
    src/doors/clans-src/test/scores.asc diff
    src/doors/dgnlance/text/docs.asc diff
    src/doors/dgnlance/text/guards.ans diff
    src/doors/dgnlance/text/guards.asc diff
    src/doors/dgnlance/text/menu.ans diff
    src/doors/dgnlance/text/menu.asc diff
    src/doors/dgnlance/text/plug.asc diff
    src/doors/gac/gac_bj/art/8_backup.ans diff
    src/doors/gac/gac_bj/art/bank.ans diff
    src/doors/gac/gac_bj/art/bbscur.ans diff
    src/doors/gac/gac_bj/art/bbslst.ans diff
    src/doors/gac/gac_bj/art/ga_bj_5.ans diff
    src/doors/gac/gac_bj/art/gac_1.ans diff
    src/doors/gac/gac_bj/art/gac_10.ans diff
    src/doors/gac/gac_bj/art/gac_11.ans diff
    src/doors/gac/gac_bj/art/gac_12.ans diff
    src/doors/gac/gac_bj/art/gac_13.ans diff
    src/doors/gac/gac_bj/art/gac_14.ans diff
    src/doors/gac/gac_bj/art/gac_15.ans diff
    src/doors/gac/gac_bj/art/gac_2.ans diff
    src/doors/gac/gac_bj/art/gac_3.ans diff
    src/doors/gac/gac_bj/art/gac_4.ans diff
    src/doors/gac/gac_bj/art/gac_5.ans diff
    src/doors/gac/gac_bj/art/gac_6.ans diff
    src/doors/gac/gac_bj/art/gac_7.ans diff
    src/doors/gac/gac_bj/art/gac_8.ans diff
    src/doors/gac/gac_bj/art/gac_9.ans diff
    src/doors/gac/gac_bj/art/gac_bj.asc diff
    src/doors/gac/gac_bj/art/gac_bj10.ans diff
    src/doors/gac/gac_bj/art/gac_bj11.ans diff
    src/doors/gac/gac_bj/art/gac_bj12.ans diff
    src/doors/gac/gac_bj/art/gac_bj13.ans diff
    src/doors/gac/gac_bj/art/gac_bj14.ans diff
    src/doors/gac/gac_bj/art/gac_bj15.ans diff
    src/doors/gac/gac_bj/art/gac_bj_1.ans diff
    src/doors/gac/gac_bj/art/gac_bj_2.ans diff
    src/doors/gac/gac_bj/art/gac_bj_3.ans diff
    src/doors/gac/gac_bj/art/gac_bj_4.ans diff
    src/doors/gac/gac_bj/art/gac_bj_5.ans diff
    src/doors/gac/gac_bj/art/gac_bj_6.ans diff
    src/doors/gac/gac_bj/art/gac_bj_7.ans diff
    src/doors/gac/gac_bj/art/gac_bj_8.ans diff
    src/doors/gac/gac_bj/art/gac_bj_9.ans diff
    src/doors/gac/gac_bj/art/gac_fc_1.ans diff
    src/doors/gac/gac_bj/art/plycur.ans diff
    src/doors/gac/gac_bj/art/plylst.ans diff
    src/doors/gac/gac_bj/art/temp.ans diff
    src/doors/gac/gac_bj/bbstimes.ans diff
    src/doors/gac/gac_bj/bbstimes.asc diff
    src/doors/gac/gac_bj/gac_bj.asc diff
    src/doors/gac/gac_bj/release/gac_bj.asc diff
    src/doors/gac/gac_fc/art/8_backup.ans diff
    src/doors/gac/gac_fc/art/bank.ans diff
    src/doors/gac/gac_fc/art/freeinst.asc diff
    src/doors/gac/gac_fc/art/ga_bj_5.ans diff
    src/doors/gac/gac_fc/art/gac_10.ans diff
    src/doors/gac/gac_fc/art/gac_12.ans diff
    src/doors/gac/gac_fc/art/gac_13.ans diff
    src/doors/gac/gac_fc/art/gac_14.ans diff
    src/doors/gac/gac_fc/art/gac_15.ans diff
    src/doors/gac/gac_fc/art/gac_3.ans diff
    src/doors/gac/gac_fc/art/gac_4.ans diff
    src/doors/gac/gac_fc/art/gac_6.ans diff
    src/doors/gac/gac_fc/art/gac_7.ans diff
    src/doors/gac/gac_fc/art/gac_8.ans diff
    src/doors/gac/gac_fc/art/gac_9.ans diff
    src/doors/gac/gac_fc/art/gac_bj10.ans diff
    src/doors/gac/gac_fc/art/gac_bj11.ans diff
    src/doors/gac/gac_fc/art/gac_bj12.ans diff
    src/doors/gac/gac_fc/art/gac_bj13.ans diff
    src/doors/gac/gac_fc/art/gac_bj14.ans diff
    src/doors/gac/gac_fc/art/gac_bj15.ans diff
    src/doors/gac/gac_fc/art/gac_fc.asc diff
    src/doors/gac/gac_fc/art/gac_fc_1.ans diff
    src/doors/gac/gac_fc/art/rules.asc diff
    src/doors/gac/gac_fc/gac_fc.asc diff
    src/doors/gac/gac_wh/art/8_backup.ans diff
    src/doors/gac/gac_wh/art/bank.ans diff
    src/doors/gac/gac_wh/art/gac_10.ans diff
    src/doors/gac/gac_wh/art/gac_12.ans diff
    src/doors/gac/gac_wh/art/gac_13.ans diff
    src/doors/gac/gac_wh/art/gac_14.ans diff
    src/doors/gac/gac_wh/art/gac_15.ans diff
    src/doors/gac/gac_wh/art/gac_3.ans diff
    src/doors/gac/gac_wh/art/gac_4.ans diff
    src/doors/gac/gac_wh/art/gac_6.ans diff
    src/doors/gac/gac_wh/art/gac_7.ans diff
    src/doors/gac/gac_wh/art/gac_8.ans diff
    src/doors/gac/gac_wh/art/gac_9.ans diff
    src/doors/gac/gac_wh/art/gac_fc_1.ans diff
    src/doors/gac/gac_wh/art/gac_wh.asc diff
    src/doors/gac/gac_wh/art/gac_wh_1.ans diff
    src/doors/gac/gac_wh/art/rules.asc diff
    src/doors/gac/gac_wh/art/wahoinst.asc diff
    src/doors/gac/gac_wh/art/wahoobd.ans diff
    src/doors/gac/gac_wh/gac_wh.asc diff
    src/doors/gac/gac_wh/release/gac_wh.asc diff
    src/doors/gac/gac_wh/wahoobd.asc diff
    src/doors/gac/gamesdk/art/bbscur.ans diff
    src/doors/gac/gamesdk/art/bbslst.ans diff
    src/doors/gac/gamesdk/art/plycur.ans diff
    src/doors/gac/gamesdk/art/plylst.ans diff
    src/doors/gac/gamesdk/reqdart/gac_10.ans diff
    src/doors/gac/gamesdk/reqdart/gac_12.ans diff
    src/doors/gac/gamesdk/reqdart/gac_13.ans diff
    src/doors/gac/gamesdk/reqdart/gac_14.ans diff
    src/doors/gac/gamesdk/reqdart/gac_15.ans diff
    src/doors/gac/gamesdk/reqdart/gac_3.ans diff
    src/doors/gac/gamesdk/reqdart/gac_4.ans diff
    src/doors/gac/gamesdk/reqdart/gac_6.ans diff
    src/doors/gac/gamesdk/reqdart/gac_7.ans diff
    src/doors/gac/gamesdk/reqdart/gac_8.ans diff
    src/doors/gac/gamesdk/reqdart/gac_9.ans diff
    src/doors/gac/gamesdk/template/art/gac_10.ans diff
    src/doors/gac/gamesdk/template/art/gac_12.ans diff
    src/doors/gac/gamesdk/template/art/gac_13.ans diff
    src/doors/gac/gamesdk/template/art/gac_14.ans diff
    src/doors/gac/gamesdk/template/art/gac_15.ans diff
    src/doors/gac/gamesdk/template/art/gac_3.ans diff
    src/doors/gac/gamesdk/template/art/gac_4.ans diff
    src/doors/gac/gamesdk/template/art/gac_6.ans diff
    src/doors/ny2008/intro.ans diff
    src/doors/ny2008/intro.asc diff
    src/doors/ny2008/ny2008.ans diff
    src/doors/ny2008/ny2008.asc diff
    src/doors/ny2008/nyinstr.asc diff
    src/doors/ny2008/nyinstrc.asc diff
    src/doors/ny2008/win.ans diff
    src/doors/timeport/buttons.ans diff
    src/doors/timeport/ending1.ans diff
    src/doors/timeport/ending2.ans diff
    src/doors/timeport/flying.ans diff
    src/doors/timeport/room1.ans diff
    src/doors/timeport/room1.asc diff
    src/doors/timeport/room10.ans diff
    src/doors/timeport/room10.asc diff
    src/doors/timeport/room11.ans diff
    src/doors/timeport/room11.asc diff
    src/doors/timeport/room12.ans diff
    src/doors/timeport/room12.asc diff
    src/doors/timeport/room13.ans diff
    src/doors/timeport/room13.asc diff
    src/doors/timeport/room14.ans diff
    src/doors/timeport/room14.asc diff
    src/doors/timeport/room15.ans diff
    src/doors/timeport/room15.asc diff
    src/doors/timeport/room16.ans diff
    src/doors/timeport/room16.asc diff
    src/doors/timeport/room17.ans diff
    src/doors/timeport/room17.asc diff
    src/doors/timeport/room18.ans diff
    src/doors/timeport/room18.asc diff
    src/doors/timeport/room19.ans diff
    src/doors/timeport/room19.asc diff
    src/doors/timeport/room2.ans diff
    src/doors/timeport/room2.asc diff
    src/doors/timeport/room20.ans diff
    src/doors/timeport/room20.asc diff
    src/doors/timeport/room3.ans diff
    src/doors/timeport/room3.asc diff
    src/doors/timeport/room4.ans diff
    src/doors/timeport/room4.asc diff
    src/doors/timeport/room5.ans diff
    src/doors/timeport/room5.asc diff
    src/doors/timeport/room6.ans diff
    src/doors/timeport/room6.asc diff
    src/doors/timeport/room7.ans diff
    src/doors/timeport/room7.asc diff
    src/doors/timeport/room8.ans diff
    src/doors/timeport/room8.asc diff
    src/doors/timeport/room9.ans diff
    src/doors/timeport/room9.asc diff
    src/doors/timeport/shuttle.ans diff
    src/doors/timeport/title1.ans diff
    src/doors/timeport/title2.ans diff
    src/doors/timeport/title3.ans diff
    src/doors/timeport/title4.ans diff
    src/doors/timeport/title5.ans diff
    src/doors/timeport/title6.ans diff
    src/doors/timeport/title7.ans diff
    text/banner1.msg diff
    text/banner2.msg diff
    text/banner3.msg diff
    text/menu/chat.msg diff
    text/menu/e-mail.msg diff
    text/menu/mailread.msg diff
    text/menu/maincfg.msg diff
    text/menu/multchat.msg diff
    text/menu/qwk.msg diff
    text/menu/renegade/email.asc diff
    text/menu/renegade/main.asc diff
    text/menu/renegade/message.asc diff
    text/menu/renegade/transfer.asc diff
    text/menu/sysmailr.msg diff
    text/menu/tempxfer.asc diff
    text/menu/wwiv/main.asc diff
    text/menu/wwiv/transfer.asc diff
    text/menu/xfercfg.msg diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    xtrn/chickendelivery/instruct.ans diff
    xtrn/dgnlance/guards.asc diff
    xtrn/dgnlance/menu.asc diff
    xtrn/dgnlance/plug.asc diff
    xtrn/lord/menus/addmun10/cfthing.ans diff
    xtrn/lord/menus/addmun10/thingad.ans diff
    xtrn/lord/menus/clu_enem/opivy.ans diff
    xtrn/lord/menus/dimensia/dimensio.ans diff
    xtrn/lord/menus/dllord20/backup.ans diff
    xtrn/lord/menus/dllord20/hey.ans diff
    xtrn/lord/menus/exptlord/eye.ans diff
    xtrn/lord/menus/ldxxx/prelord.ans diff
    xtrn/lord/menus/mdrnwrld/hell.ans diff
    xtrn/lord/menus/tnglord/bworld.ans diff
    xtrn/lord/menus/tnglord/tnglord.ans diff
    xtrn/lord2/cnw/battle1.ans diff
    xtrn/lord2/cnw/battle2.ans diff
    xtrn/lord2/cnw/battle3.ans diff
    xtrn/lord2/cnw/battle4.ans diff
    xtrn/lord2/cnw/battle5.ans diff
    xtrn/lord2/cnw/battle6.ans diff
    xtrn/lord2/cnw/castaway.ans diff
    xtrn/lord2/cnw/finger.ans diff
    xtrn/lord2/cnw/fishy.ans diff
    xtrn/lord2/cnw/fishyl.ans diff
    xtrn/lord2/cnw/fishys.ans diff
    xtrn/lord2/cnw/gumgod.ans diff
    xtrn/lord2/cnw/kraken.ans diff
    xtrn/lord2/cnw/lord.ans diff
    xtrn/lord2/cnw/lordad.ans diff
    xtrn/lord2/cnw/rose1.ans diff
    xtrn/lord2/cnw/rose10.ans diff
    xtrn/lord2/cnw/rose2.ans diff
    xtrn/lord2/cnw/rose3.ans diff
    xtrn/lord2/cnw/rose4.ans diff
    xtrn/lord2/cnw/rose5.ans diff
    xtrn/lord2/cnw/rose6.ans diff
    xtrn/lord2/cnw/rose7.ans diff
    xtrn/lord2/cnw/rose8.ans diff
    xtrn/lord2/cnw/rose9.ans diff
    xtrn/lord2/cnw/scvngr1.ans diff
    xtrn/lord2/cnw/scvngr2.ans diff
    xtrn/lord2/cnw/scvngr3.ans diff
    xtrn/lord2/cnw/sea01.ans diff
    xtrn/lord2/cnw/shell.ans diff
    xtrn/lord2/cnw/tower.ans diff
    xtrn/lord2/cnw/weelie.ans diff
    xtrn/tbd/tbdwin.ans diff
    xtrn/tw2/fighters.ans diff
    xtrn/tw2/planet.ans diff
    xtrn/tw2/port.ans diff
    xtrn/tw2/ship.ans diff
    xtrn/tw2/twopeng.asc diff
    Merge branch 'v320a_dev' of gitlab.synchro.net:main/sbbs into v320a_dev

  187. Rob Swindell
    Tue Dec 20 2022 17:22:06 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    src/xpdev/ini_file.h diff
    Add iniGetIntInRange() for range-enforced integer values If you're going to use a read key value as say, an index into fixed-length array, then you better be sure it's within an expected range.

  188. Rob Swindell
    Tue Dec 20 2022 17:24:03 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/con_out.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/putnode.cpp diff
    Don't attempt MQTT functions when MQTT is disabled This is to avoid the error reporting/logging that results.

  189. Rob Swindell
    Tue Dec 20 2022 17:51:20 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbscon.c diff
    Publish a <host>/status to represent on/offline/disconnected Set "last will" to publish the "disconnected" status.

  190. Rob Swindell
    Tue Dec 20 2022 17:52:08 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Add TLS support

  191. Rob Swindell
    Tue Dec 20 2022 17:52:36 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    Add MQTT TLS support

  192. Rob Swindell
    Tue Dec 20 2022 18:08:38 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfgnet.c diff
    Add Networks->MQTT configuration sub menu

  193. Rob Swindell
    Tue Dec 20 2022 18:19:26 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/conwrap.c diff
    Fix misleading-indentation warning from GCC

  194. Rob Swindell
    Fri Dec 23 2022 11:20:29 GMT-0800 (PST)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Add clock related variable values to debug output Just in case there's some clock wrap around issue causing issue #468. Seems unlikely with a 64-bit clock, but there are a lot of conditions in the xp_timer64() implementation that could evaluate differently on different versions of Windows or on different computers.

  195. Rob Swindell
    Fri Dec 23 2022 15:40:05 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/js_system.c diff
    src/sbbs3/logfile.cpp diff
    src/sbbs3/login.cpp diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/services.c diff
    src/sbbs3/websrvr.c diff
    Publish hack-attempts, SPAM-attempts, and errors to MQTT <host>/error .../spam .../hack

  196. Rob Swindell
    Fri Dec 23 2022 15:41:20 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/objects.mk diff
    Not using sbbs_status for anything, so don't build/link it

  197. Rob Swindell
    Fri Dec 23 2022 15:44:20 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/logfile.cpp diff
    Resolve warning: ISO C++ forbids converting a string constant to ‘char*’

  198. Rob Swindell
    Fri Dec 23 2022 21:54:38 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    src/sbbs3/mqtt.h diff
    Add a public "no value" function This can be used to clear a 'retained' topic (of any type).

  199. Rob Swindell
    Fri Dec 23 2022 21:54:38 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbscon.c diff
    Fix the MQTT "last will" (must be set before connect) Add some more "status" topic values while initializing and terminating.

  200. Rob Swindell
    Fri Dec 23 2022 23:28:41 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    src/sbbs3/sbbscon.c diff
    Fix non-mosquitto build By moving mosquitto_will_set() call into mqtt_connect(). I'm still having the issue that the LWT is being published after mosquitto_disconnect(), even though I set the "force" parameter to false in the call to mqtt_loop_stop()

  201. Rob Swindell
    Fri Dec 23 2022 23:31:32 GMT-0800 (PST)
    Modified Files:
    

    src/conio/cterm.c diff
    src/sbbs3/jsexec.c diff
    src/sbbs3/xmodem.c diff
    src/syncterm/bbslist.c diff
    src/syncterm/conn.c diff
    src/syncterm/conn.h diff
    src/syncterm/conn_pty.c diff
    src/syncterm/ripper.c diff
    src/syncterm/ssh.c diff
    src/syncterm/syncterm.c diff
    src/syncterm/term.c diff
    src/syncterm/window.c diff
    src/syncterm/window.h diff
    src/uifc/filepick.c diff
    src/uifc/uifc32.c diff
    Merge remote-tracking branch 'origin/master' into v320a_dev

  202. Rob Swindell
    Mon Dec 26 2022 16:02:08 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbscon.c diff
    MQTT thread wasn't even attempted to be started on Windows mqtt_thread_start() actually will fail on Windows currently because we're using a non-thread-safe version of mosquitto.dll This moves the mqtt thread start further up before some *nix-specific stuff, so hopefully that's not an issue.

  203. Rob Swindell
    Tue Dec 27 2022 22:29:58 GMT-0800 (PST)
    Modified Files:
    

    3rdp/win32.release/mosquitto/bin/mosquitto.dll diff
    3rdp/win32.release/mosquitto/bin/mosquitto.lib diff
    Current develop branch of mosquitto 2.1.0, multi-threaded! Finally, a thread-safe version of mosquitto.dll <sigh>

  204. Rob Swindell
    Thu Dec 29 2022 13:19:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/sbbscon.c diff
    src/sbbs3/websrvr.c diff
    Move the 'max_clients' value publishing to the individual servers

  205. Rob Swindell
    Thu Dec 29 2022 14:11:34 GMT-0800 (PST)
    Added Files:
    

    3rdp/win32.release/mosquitto/bin/libcrypto-1_1.dll diff
    3rdp/win32.release/mosquitto/bin/libssl-1_1.dll diff
    3rdp/win32.release/mosquitto/bin/mosquitto.dll diff
    3rdp/win32.release/mosquitto/bin/mosquitto.lib diff
    3rdp/win32.release/mosquitto/include/mosquitto.h diff
    3rdp/win32.release/mosquitto/include/mqtt_protocol.h diff
    3rdp/win32.release/mosquitto/mosquitto.props diff
    ctrl/chat.ini diff
    ctrl/file.ini diff
    ctrl/main.ini diff
    ctrl/msgs.ini diff
    ctrl/xtrn.ini diff
    docs/newcfgfiles.txt diff
    docs/newuserbase.txt diff
    exec/upgrade_to_v320.js diff
    install/logrotate.d/sbbs diff
    install/rsyslog.d/sbbslog.conf diff
    node1/node.ini diff
    src/sbbs3/mqtt.c diff
    src/sbbs3/mqtt.h diff
    src/sbbs3/upgrade_to_v320.c diff
    src/sbbs3/upgrade_to_v320.vcxproj diff
    src/sbbs3/useredit/.gitignore diff
    src/sbbs3/useredit/MainFormUnit.cpp diff
    src/sbbs3/useredit/MainFormUnit.h diff
    src/sbbs3/useredit/UserEdit.bpr diff
    src/sbbs3/useredit/UserEdit.cpp diff
    src/sbbs3/userfields.h diff
    Modified Files:

    .gitlab-ci.yml diff
    CONTRIBUTING.md diff
    exec/archive.js diff
    exec/avatars.js diff
    exec/emailfiles.js diff
    exec/init-fidonet.js diff
    exec/load/cnfdefs.js diff
    exec/localcopy.js diff
    exec/logonlist.js diff
    exec/msglist.js diff
    exec/sbbslist.js diff
    exec/update.js diff
    install/GNUmakefile diff
    install/systemd/sbbs.service diff
    src/sbbs3/GNUmakefile diff
    src/sbbs3/answer.cpp diff
    src/sbbs3/atcodes.cpp diff
    src/sbbs3/bat_xfer.cpp diff
    src/sbbs3/bulkmail.cpp diff
    src/sbbs3/chat.cpp diff
    src/sbbs3/chk_ar.cpp diff
    src/sbbs3/con_out.cpp diff
    src/sbbs3/ctrl/CtrlPathDialogUnit.dfm diff
    src/sbbs3/ctrl/MainFormUnit.cpp diff
    src/sbbs3/ctrl/ServicesCfgDlgUnit.cpp diff
    src/sbbs3/ctrl/sbbsctrl.bpr diff
    src/sbbs3/ctrl/sbbsctrl.cpp diff
    src/sbbs3/data.cpp diff
    src/sbbs3/data_ovl.cpp diff
    src/sbbs3/download.cpp diff
    src/sbbs3/email.cpp diff
    src/sbbs3/exec.cpp diff
    src/sbbs3/execfile.cpp diff
    src/sbbs3/execfunc.cpp diff
    src/sbbs3/execmisc.cpp diff
    src/sbbs3/file.cpp diff
    src/sbbs3/filedat.c diff
    src/sbbs3/filedat.h diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/ftpsrvr.h diff
    src/sbbs3/getmsg.cpp diff
    src/sbbs3/getstats.c diff
    src/sbbs3/gtkmonitor/gtkmonitor.c diff
    src/sbbs3/gtkuserlist/gtkuserlist.c diff
    src/sbbs3/js_console.cpp diff
    src/sbbs3/js_global.c diff
    src/sbbs3/js_system.c diff
    src/sbbs3/js_user.c diff
    src/sbbs3/jsexec.c diff
    src/sbbs3/listfile.cpp diff
    src/sbbs3/load_cfg.c diff
    src/sbbs3/logfile.cpp diff
    src/sbbs3/login.cpp diff
    src/sbbs3/logon.cpp diff
    src/sbbs3/logout.cpp diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/mailsrvr.h diff
    src/sbbs3/main.cpp diff
    src/sbbs3/makeuser.c diff
    src/sbbs3/netmail.cpp diff
    src/sbbs3/newuser.cpp diff
    src/sbbs3/ntsvcs.c diff
    src/sbbs3/objects.mk diff
    src/sbbs3/postmsg.cpp diff
    src/sbbs3/prntfile.cpp diff
    src/sbbs3/putmsg.cpp diff
    src/sbbs3/putnode.cpp diff
    src/sbbs3/qwk.cpp diff
    src/sbbs3/readmsgs.cpp diff
    src/sbbs3/rechocfg.c diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/sbbs.vcxproj diff
    src/sbbs3/sbbs3.sln diff
    src/sbbs3/sbbscon.c diff
    src/sbbs3/sbbscon.vcxproj diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/sbbsecho.c diff
    src/sbbs3/sbbsecho.h diff
    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfgmsg.c diff
    src/sbbs3/scfg/scfgnet.c diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfg/scfgxfr1.c diff
    src/sbbs3/scfg/scfgxfr2.c diff
    src/sbbs3/scfg/scfgxtrn.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfglib2.c diff
    src/sbbs3/scfgsave.c diff
    src/sbbs3/services.c diff
    src/sbbs3/services.h diff
    src/sbbs3/sexyz.c diff
    src/sbbs3/startup.h diff
    src/sbbs3/str.cpp diff
    src/sbbs3/str_util.c diff
    src/sbbs3/str_util.h diff
    src/sbbs3/targets.mk diff
    src/sbbs3/textgen.c diff
    src/sbbs3/uedit/uedit.c diff
    src/sbbs3/un_qwk.cpp diff
    src/sbbs3/un_rep.cpp diff
    src/sbbs3/upgrade_to_v319.c diff
    src/sbbs3/upload.cpp diff
    src/sbbs3/userdat.c diff
    src/sbbs3/userdat.h diff
    src/sbbs3/useredit.cpp diff
    src/sbbs3/useredit/MainFormUnit.dfm diff
    src/sbbs3/useredit/UserEdit.res diff
    src/sbbs3/useredit/build.bat diff
    src/sbbs3/ver.cpp diff
    src/sbbs3/websrvr.c diff
    src/sbbs3/websrvr.h diff
    src/sbbs3/writemsg.cpp diff
    src/sbbs3/xtrn_sec.cpp diff
    src/vdmodem/vdmodem.c diff
    src/xpdev/conwrap.c diff
    src/xpdev/gen_defs.h diff
    src/xpdev/genwrap.c diff
    src/xpdev/genwrap.h diff
    src/xpdev/ini_file.c diff
    src/xpdev/ini_file.h diff
    src/xpdev/sockwrap.h diff
    src/xpdev/str_list.c diff
    src/xpdev/str_list.h diff
    text/answer.msg diff
    Removed Files:

    ctrl/chat.cnf diff
    ctrl/file.cnf diff
    ctrl/main.cnf diff
    ctrl/msgs.cnf diff
    ctrl/xtrn.cnf diff
    node1/node.cnf diff
    src/sbbs3/allusers.c diff
    src/sbbs3/allusers.vcxproj diff
    src/sbbs3/useredit/MainFormUnit.pas diff
    src/sbbs3/useredit/UserEdit.dof diff
    src/sbbs3/useredit/UserEdit.dpr diff
    Merge remote-tracking branch 'origin/v320a_dev' v3.20a has been in development for several months now and appears stable enough to merge to master. Sysops running v3.19 or earlier *must* run 'jsexec update' to get their config files (ctrl/*.cnf) converted to *.ini and their user base (data/user/user.dat) converted to user.tab.

  206. Rob Swindell
    Thu Dec 29 2022 14:04:00 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    src/sbbs3/startup.h diff
    Remove startup->node_spysem, nobody's using it and it had a bad bug This came about through the realization that the global 'sbbs' in main.cpp can (and was/is) hiding some copy/pasta bugs.

  207. Deucе
    Thu Dec 29 2022 13:56:51 GMT-0800 (PST)
    Modified Files:
    

    exec/syncterm-bounce.js diff
    With the new auto-flush thing, we can rejigger this to not need console.flush() anymore.

  208. Deucе
    Thu Dec 29 2022 13:49:39 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Output snappiness improvements. When the system checks for an incoming byte, if there's any pending output, send it immediately, bypassing the outbuf highwater mark. This allows the final non-full packet to be sent without waiting for the OutbufDrainTimeout (default 10ms), and makes a big difference when doing a large number of ANSI queries (send an ANSI code, wait for a response). There's a small but noticable placebo effect as well that makes everything feel smoother. This commit also cleans up the output thread where it pulls from the ring buffer into the linear buffer to take advantage of the new event-based ring buffers. Much easier to read now. Speaking of easier to read, this also includes some whitespace fixups.

  209. Rob Swindell
    Thu Dec 29 2022 12:48:21 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_console.cpp diff
    Fix console.flush() jsdocs details (version, arguments)

  210. Deucе
    Thu Dec 29 2022 11:35:46 GMT-0800 (PST)
    Modified Files:
    

    exec/syncterm-bounce.js diff
    Add a console.flush() after we sent each ANSI query that will wait for a response. Also, use a single cache list command to check the MD5 of both files. This speeds up startup immensely. It would be a good idea to do something similar in Synchronet any time we send a query and wait for a response... as it sits now, we're basically adding extra delays that aren't strictly necessary. Another option would be to *always* flush before a blocking read, which would "fix" anything that's not using inkey() with a timeout of zero. This would just generally fix everything I think, unless there's something calling inkey() with a very small timeout just to avoid 100% CPU or something.

  211. Deucе
    Thu Dec 29 2022 10:07:26 GMT-0800 (PST)
    Modified Files:
    

    exec/syncterm-bounce.js diff
    Use the new console.flush() method. This speeds up the display immensely without distracting artifacts (yay!)

  212. Deucе
    Thu Dec 29 2022 10:06:41 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_console.cpp diff
    Add console.flush() method. Seems to work a treat.

  213. Deucе
    Thu Dec 29 2022 09:55:37 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsexec.c diff
    Fix typo

  214. Deucе
    Thu Dec 29 2022 09:44:27 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsexec.vcxproj diff
    Add RINGBUF_EVENT to some things that I hope will fix CI.

  215. Deucе
    Thu Dec 29 2022 09:35:08 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/xtrn.cpp diff
    Fix name of data event

  216. Deucе
    Thu Dec 29 2022 09:33:51 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsexec.c diff
    src/sbbs3/xtrn.cpp diff
    (try to) Fix some Windows specific bits from the ringbuf change

  217. Deucе
    Thu Dec 29 2022 09:10:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/CMakeLists.txt diff
    src/sbbs3/ctrl/sbbsctrl.bpr diff
    src/sbbs3/main.cpp diff
    src/sbbs3/makevdd.bat diff
    src/sbbs3/ringbuf.c diff
    src/sbbs3/ringbuf.h diff
    src/sbbs3/sbbs.jsdocs.vcxproj diff
    src/sbbs3/sbbs.vcxproj diff
    src/sbbs3/sbbsdefs.mk diff
    src/sbbs3/sbbsexec.vcxproj diff
    src/sbbs3/sexyz.c diff
    src/sbbs3/sexyz.vcxproj diff
    src/sbbs3/websrvr.c diff
    src/sbbs3/websrvr.vcxproj diff
    Remove RINGBUF_SEM for RINGBUG_EVENT We've never really cared how many times the ring buffer has become empty, how many times data was added to it, or how many times we've been over the highwater mark. These have effectively always been event signalling, with extra hackiness to clear "extra" semaphore posts. This commit removes RINGBUF_SEM entirely, and uses events for everything. There's an empty event (set when the ring buffer is empty), a data event (set when the ring buffer is not empty), and a highwater event (set when the ring buffer has at least highwater mark bytes). A RingBufWrite() will set data and highwater events if applicable, and clear the empty event. A RingBufRead() will set empty event and clear data and highwater events if applicable. RingBufReInit() will now set the empty event, and clear the data and highwater events. These are the only actions the RingBuf API will perform on the events, it does *not* clear the highwater event on a RingBufWrite() if the buffer does not have enough bytes in it for example, this will *only* be done by RingBufRead() or RingBufReInit(). This allows consumers to force specific behaviours (such as forcing the highwater event on shutdown to prevent waiting for it). Since the current code was able to deal with the semaphores having arbitrarily high counts, the existing code shouldn't have any issue with this. For things that want to shut something down, we're now setting both the data and highwater events to ensure it doesn't wait for a timeout (even for things that don't use highwater like the inbuf). The RingBuffer API should grow a thing to do this (RingBufferFlush perhaps?) rather than the consumers poking into the innards arbitrarily. Tested on the webserver and RLogin server and seems to be working great. sexyz builds. It seems there's some Windows thing that uses the ringbuffer sem for something, but I couldn't figure out what... updated the build file, but no clue if that's broken or not now... I'm sure DigitalMan will be happy to fix it if CI doesn't catch it. ;) This should allow the console object to grow a "flush" method that will set the highwater and data events.

  218. Deucе
    Wed Dec 28 2022 20:22:42 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/term.c diff
    Initialize mbuf too.

  219. Deucе
    Wed Dec 28 2022 20:20:51 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/term.c diff
    Initialize pointer to NULL to avoid free()ing unallocated memory.

  220. Deucе
    Wed Dec 28 2022 19:53:06 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/term.c diff
    Since we have the code to generate the correct gamma transfer, let's not scale it in one colour space before translating it to a different one. Also, since almost all PPMs will use a maxval of 255, compile that in as the default so we don't need to generate it.

  221. Deucе
    Wed Dec 28 2022 19:47:58 GMT-0800 (PST)
    Modified Files:
    

    exec/syncterm-bounce.js diff
    src/conio/cterm.txt diff
    Use the new loaded PPM functionality. Update the script to verify pixel operations are supported.

  222. Deucе
    Wed Dec 28 2022 09:05:23 GMT-0800 (PST)
    Modified Files:
    

    src/conio/cterm.c diff
    src/conio/cterm.txt diff
    src/syncterm/term.c diff
    Update to support two copy buffers and one mask buffer.

  223. Deucе
    Wed Dec 28 2022 00:50:10 GMT-0800 (PST)
    Added Files:
    

    exec/syncterm-bounce.js diff
    Modified Files:

    src/conio/bitmap_con.c diff
    src/conio/bitmap_con.h diff
    src/conio/ciolib.c diff
    src/conio/ciolib.h diff
    src/conio/cterm.c diff
    src/conio/cterm.h diff
    src/conio/cterm.txt diff
    src/syncterm/ripper.c diff
    src/syncterm/term.c diff
    Add support for PPM graphics to SyncTERM You can copy whole, or portions of a PPM file from the cache directory to the screen, optionally applying a mask. The mask can be specified as a base64-encoded bitmap or as a PBM file in the cache directory. You can also copy portions of the screen into an internal buffer, and draw from that internal buffer. There's plans to support loading an image file from the cache directory into the buffer as well. Portions of the buffer can be copied to the screen, optionally applying a mask as with drawing PPMs. There's also plans to support copying a PBM file into a mask buffer. I've added the syncterm-bounce.js script which simply bounces the SyncTERM icon around the screen like the classic screensaver we all hate. I initially wanted to replace the spinning cursor with it, but there doesn't seem to be a way to replace that with a script. :( To use the script, just add the text: @EXEC:syncterm-bounce.js@ to the end of your logon.js script. Log in to nix.synchro.net with the latest nightly build or build from git to see the script in action.

  224. Deucе
    Tue Dec 27 2022 01:42:15 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    src/syncterm/bbslist.h diff
    src/syncterm/conn.c diff
    src/syncterm/conn.h diff
    src/syncterm/conn_pty.c diff
    src/syncterm/conn_telnet.c diff
    src/syncterm/fonts.c diff
    src/syncterm/menu.c diff
    src/syncterm/ooii.c diff
    src/syncterm/ooii_bmenus.c diff
    src/syncterm/ooii_cmenus.c diff
    src/syncterm/ooii_logons.c diff
    src/syncterm/ooii_sounds.c diff
    src/syncterm/ripper.c diff
    src/syncterm/rlogin.c diff
    src/syncterm/st_crypt.h diff
    src/syncterm/syncterm.c diff
    src/syncterm/syncterm.h diff
    src/syncterm/telnet_io.c diff
    src/syncterm/term.c diff
    src/syncterm/uifcinit.c diff
    src/syncterm/uncrustify.cfg diff
    There doesn't seem to be a way to get Uncrustify to put commas at the start of wrapped function call continuation lines, but at the end of struct initializers/enums/etc lines. I think the least bad is commas at the end, especially now that it's got the happy four-space indent for continuations. I may play with this more later, but this seems to be good for now, we'll see how it works out in actual use.

  225. Deucе
    Tue Dec 27 2022 01:08:39 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    src/syncterm/bbslist.h diff
    src/syncterm/conn.c diff
    src/syncterm/conn.h diff
    src/syncterm/conn_pty.c diff
    src/syncterm/conn_pty.h diff
    src/syncterm/conn_telnet.c diff
    src/syncterm/conn_telnet.h diff
    src/syncterm/fonts.c diff
    src/syncterm/fonts.h diff
    src/syncterm/menu.c diff
    src/syncterm/menu.h diff
    src/syncterm/modem.c diff
    src/syncterm/modem.h diff
    src/syncterm/ooii.c diff
    src/syncterm/ooii.h diff
    src/syncterm/ooii_bmenus.h diff
    src/syncterm/ooii_cmenus.h diff
    src/syncterm/ooii_logons.h diff
    src/syncterm/ripper.c diff
    src/syncterm/ripper.h diff
    src/syncterm/rlogin.c diff
    src/syncterm/rlogin.h diff
    src/syncterm/ssh.c diff
    src/syncterm/ssh.h diff
    src/syncterm/st_crypt.c diff
    src/syncterm/syncterm.c diff
    src/syncterm/syncterm.h diff
    src/syncterm/telnet_io.c diff
    src/syncterm/telnet_io.h diff
    src/syncterm/telnets.c diff
    src/syncterm/telnets.h diff
    src/syncterm/term.c diff
    src/syncterm/term.h diff
    src/syncterm/uifcinit.c diff
    src/syncterm/uifcinit.h diff
    src/syncterm/uncrustify.cfg diff
    src/syncterm/window.c diff
    src/syncterm/window.h diff
    Force space before pointer stars... too weird without it. I tried a space after too, but that's weird as well and easily confused with multiplication at first look.

  226. Deucе
    Tue Dec 27 2022 01:03:58 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/ripper.c diff
    src/syncterm/term.c diff
    src/syncterm/uncrustify.cfg diff
    And run it again.

  227. Deucе
    Tue Dec 27 2022 00:57:48 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/amigafont.h diff
    src/syncterm/bbslist.c diff
    src/syncterm/bbslist.h diff
    src/syncterm/conn.c diff
    src/syncterm/conn_pty.c diff
    src/syncterm/fonts.c diff
    src/syncterm/menu.c diff
    src/syncterm/modem.c diff
    src/syncterm/ooii.c diff
    src/syncterm/ooii_bmenus.c diff
    src/syncterm/ooii_cmenus.c diff
    src/syncterm/ooii_logons.c diff
    src/syncterm/ripper.c diff
    src/syncterm/rlogin.c diff
    src/syncterm/ssh.c diff
    src/syncterm/st_crypt.c diff
    src/syncterm/syncterm.c diff
    src/syncterm/syncterm.h diff
    src/syncterm/telnet_io.c diff
    src/syncterm/telnets.c diff
    src/syncterm/term.c diff
    src/syncterm/uifcinit.c diff
    src/syncterm/window.c diff
    And put two newlines (ie: one blank line) before a function

  228. Deucе
    Tue Dec 27 2022 00:50:34 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.h diff
    src/syncterm/conn.h diff
    src/syncterm/ripper.c diff
    src/syncterm/syncterm.h diff
    Some quick comma fixes

  229. Deucе
    Tue Dec 27 2022 00:56:03 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/uncrustify.cfg diff
    Fix newlines before function

  230. Deucе
    Tue Dec 27 2022 00:41:35 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/amigafont.h diff
    src/syncterm/bbslist.c diff
    src/syncterm/bbslist.h diff
    src/syncterm/conn.c diff
    src/syncterm/conn.h diff
    src/syncterm/conn_pty.c diff
    src/syncterm/conn_pty.h diff
    src/syncterm/conn_telnet.c diff
    src/syncterm/conn_telnet.h diff
    src/syncterm/fonts.c diff
    src/syncterm/fonts.h diff
    src/syncterm/menu.c diff
    src/syncterm/menu.h diff
    src/syncterm/modem.c diff
    src/syncterm/modem.h diff
    src/syncterm/ooii.c diff
    src/syncterm/ooii.h diff
    src/syncterm/ooii_bmenus.c diff
    src/syncterm/ooii_bmenus.h diff
    src/syncterm/ooii_cmenus.c diff
    src/syncterm/ooii_cmenus.h diff
    src/syncterm/ooii_logons.c diff
    src/syncterm/ooii_logons.h diff
    src/syncterm/ooii_sounds.c diff
    src/syncterm/ooii_sounds.h diff
    src/syncterm/ripper.c diff
    src/syncterm/ripper.h diff
    src/syncterm/rlogin.c diff
    src/syncterm/rlogin.h diff
    src/syncterm/ssh.c diff
    src/syncterm/ssh.h diff
    src/syncterm/st_crypt.c diff
    src/syncterm/st_crypt.h diff
    src/syncterm/syncterm.c diff
    src/syncterm/syncterm.h diff
    src/syncterm/telnet_io.c diff
    src/syncterm/telnet_io.h diff
    src/syncterm/telnets.c diff
    src/syncterm/telnets.h diff
    src/syncterm/term.c diff
    src/syncterm/term.h diff
    src/syncterm/uifcinit.c diff
    src/syncterm/uifcinit.h diff
    src/syncterm/uncrustify.cfg diff
    src/syncterm/window.c diff
    src/syncterm/window.h diff
    I can't stand it anymore. Run uncrustify on this mess. There's a few small oddities (especially in enums), but this is much better.

  231. Deucе
    Mon Dec 26 2022 23:08:03 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    src/syncterm/bbslist.h diff
    src/syncterm/conn.c diff
    src/syncterm/conn.h diff
    src/syncterm/conn_telnet.c diff
    src/syncterm/fonts.c diff
    src/syncterm/menu.c diff
    src/syncterm/modem.c diff
    src/syncterm/ooii.c diff
    src/syncterm/ooii.h diff
    src/syncterm/ripper.c diff
    src/syncterm/rlogin.c diff
    src/syncterm/ssh.c diff
    src/syncterm/ssh.h diff
    src/syncterm/syncterm.c diff
    src/syncterm/syncterm.h diff
    src/syncterm/telnets.c diff
    src/syncterm/term.c diff
    src/syncterm/term.h diff
    src/syncterm/uifcinit.c diff
    src/syncterm/uifcinit.h diff
    Replace BOOL/TRUE/FALSE with bool/true/false There's no reason to be aggressively ancient.

  232. Deucе
    Mon Dec 26 2022 22:31:26 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/syncterm.c diff
    Add two new command line arguments (and remove one) -b/path/to/bbslist specifies a user BBS list file -n/path/to/inifile specifies a config file Remove undocumented -insert option. This may make nelgin sad, not sure.

  233. Rob Swindell
    Mon Dec 26 2022 16:22:20 GMT-0800 (PST)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Add more debug log output around the select() for recv call ... in hopes of debugging issue #468 Also clean up drop files unless -d option is passed. Incremented version to 0.3.

  234. Rob Swindell
    Mon Dec 26 2022 16:04:37 GMT-0800 (PST)
    Modified Files:
    

    text/banner1.msg diff
    text/banner2.msg diff
    text/banner3.msg diff
    text/menu/chat.msg diff
    text/menu/e-mail.msg diff
    text/menu/mailread.msg diff
    text/menu/maincfg.msg diff
    text/menu/multchat.msg diff
    text/menu/qwk.msg diff
    text/menu/renegade/email.asc diff
    text/menu/renegade/main.asc diff
    text/menu/renegade/message.asc diff
    text/menu/renegade/transfer.asc diff
    text/menu/sysmailr.msg diff
    text/menu/tempxfer.asc diff
    text/menu/wwiv/main.asc diff
    text/menu/wwiv/transfer.asc diff
    text/menu/xfercfg.msg diff
    xtrn/chickendelivery/instruct.ans diff
    xtrn/dgnlance/guards.asc diff
    xtrn/dgnlance/menu.asc diff
    xtrn/dgnlance/plug.asc diff
    xtrn/gttrivia/gttrivia.asc diff
    xtrn/lord/menus/addmun10/cfthing.ans diff
    xtrn/lord/menus/addmun10/thingad.ans diff
    xtrn/lord/menus/clu_enem/opivy.ans diff
    xtrn/lord/menus/dimensia/dimensio.ans diff
    xtrn/lord/menus/dllord20/backup.ans diff
    xtrn/lord/menus/dllord20/hey.ans diff
    xtrn/lord/menus/exptlord/eye.ans diff
    xtrn/lord/menus/ldxxx/prelord.ans diff
    xtrn/lord/menus/mdrnwrld/hell.ans diff
    xtrn/lord/menus/tnglord/bworld.ans diff
    xtrn/lord/menus/tnglord/tnglord.ans diff
    xtrn/lord2/cnw/battle1.ans diff
    xtrn/lord2/cnw/battle2.ans diff
    xtrn/lord2/cnw/battle3.ans diff
    xtrn/lord2/cnw/battle4.ans diff
    xtrn/lord2/cnw/battle5.ans diff
    xtrn/lord2/cnw/battle6.ans diff
    xtrn/lord2/cnw/castaway.ans diff
    xtrn/lord2/cnw/finger.ans diff
    xtrn/lord2/cnw/fishy.ans diff
    xtrn/lord2/cnw/fishyl.ans diff
    xtrn/lord2/cnw/fishys.ans diff
    xtrn/lord2/cnw/gumgod.ans diff
    xtrn/lord2/cnw/kraken.ans diff
    xtrn/lord2/cnw/lord.ans diff
    xtrn/lord2/cnw/lordad.ans diff
    xtrn/lord2/cnw/rose1.ans diff
    xtrn/lord2/cnw/rose10.ans diff
    xtrn/lord2/cnw/rose2.ans diff
    xtrn/lord2/cnw/rose3.ans diff
    xtrn/lord2/cnw/rose4.ans diff
    xtrn/lord2/cnw/rose5.ans diff
    xtrn/lord2/cnw/rose6.ans diff
    xtrn/lord2/cnw/rose7.ans diff
    xtrn/lord2/cnw/rose8.ans diff
    xtrn/lord2/cnw/rose9.ans diff
    xtrn/lord2/cnw/scvngr1.ans diff
    xtrn/lord2/cnw/scvngr2.ans diff
    xtrn/lord2/cnw/scvngr3.ans diff
    xtrn/lord2/cnw/sea01.ans diff
    xtrn/lord2/cnw/shell.ans diff
    xtrn/lord2/cnw/tower.ans diff
    xtrn/lord2/cnw/weelie.ans diff
    xtrn/tbd/tbdwin.ans diff
    xtrn/tw2/fighters.ans diff
    xtrn/tw2/planet.ans diff
    xtrn/tw2/port.ans diff
    xtrn/tw2/ship.ans diff
    xtrn/tw2/twopeng.asc diff
    Another false LF-CRLF commit due to the .gitattributes change? Ugh.

  235. Rob Swindell
    Mon Dec 26 2022 16:05:20 GMT-0800 (PST)
    Added Files:
    

    docs/slyedit_readme.txt diff
    xtrn/lord/LORDARMR.ICN diff
    xtrn/lord/LORDBANK.ICN diff
    xtrn/lord/LORDBART.ICN diff
    xtrn/lord/LORDDARK.ICN diff
    xtrn/lord/LORDDEAD.ICN diff
    xtrn/lord/LORDDRAG.ICN diff
    xtrn/lord/LORDFRM1.ICN diff
    xtrn/lord/LORDFRM2.ICN diff
    xtrn/lord/LORDFRM3.ICN diff
    xtrn/lord/LORDFRST.ICN diff
    xtrn/lord/LORDHEAD.ICN diff
    xtrn/lord/LORDHEAL.ICN diff
    xtrn/lord/LORDINN1.ICN diff
    xtrn/lord/LORDINN2.ICN diff
    xtrn/lord/LORDINT1.ICN diff
    xtrn/lord/LORDINT2.ICN diff
    xtrn/lord/LORDKING.ICN diff
    xtrn/lord/LORDLRG.ICN diff
    xtrn/lord/LORDNEWW.ICN diff
    xtrn/lord/LORDSCRL.ICN diff
    xtrn/lord/LORDTAV.ICN diff
    xtrn/lord/LORDTHEF.ICN diff
    xtrn/lord/LORDTURG.ICN diff
    xtrn/lord/LORDTWN1.ICN diff
    xtrn/lord/LORDTWN2.ICN diff
    xtrn/lord/LORDTWN3.ICN diff
    xtrn/lord/LORDWIZ2.ICN diff
    xtrn/lord/LORDWNDO.ICN diff
    xtrn/lord/lordrip.lrd diff
    Modified Files:

    exec/SlyEdit.js diff
    exec/newuser.js diff
    src/conio/ciolib.c diff
    src/conio/cterm.c diff
    src/conio/cterm.txt diff
    src/conio/scale.c diff
    src/conio/scale.h diff
    src/conio/sdl_con.c diff
    src/doors/clans-src/data/list.asc diff
    src/doors/clans-src/data/pg.asc diff
    src/doors/clans-src/data/pxnews.asc diff
    src/doors/clans-src/data/pxtit.asc diff
    src/doors/clans-src/test/scores.ans diff
    src/doors/clans-src/test/scores.asc diff
    src/doors/dgnlance/text/docs.asc diff
    src/doors/dgnlance/text/guards.ans diff
    src/doors/dgnlance/text/guards.asc diff
    src/doors/dgnlance/text/menu.ans diff
    src/doors/dgnlance/text/menu.asc diff
    src/doors/dgnlance/text/plug.asc diff
    src/doors/gac/gac_bj/art/8_backup.ans diff
    src/doors/gac/gac_bj/art/bank.ans diff
    src/doors/gac/gac_bj/art/bbscur.ans diff
    src/doors/gac/gac_bj/art/bbslst.ans diff
    src/doors/gac/gac_bj/art/ga_bj_5.ans diff
    src/doors/gac/gac_bj/art/gac_1.ans diff
    src/doors/gac/gac_bj/art/gac_10.ans diff
    src/doors/gac/gac_bj/art/gac_11.ans diff
    src/doors/gac/gac_bj/art/gac_12.ans diff
    src/doors/gac/gac_bj/art/gac_13.ans diff
    src/doors/gac/gac_bj/art/gac_14.ans diff
    src/doors/gac/gac_bj/art/gac_15.ans diff
    src/doors/gac/gac_bj/art/gac_2.ans diff
    src/doors/gac/gac_bj/art/gac_3.ans diff
    src/doors/gac/gac_bj/art/gac_4.ans diff
    src/doors/gac/gac_bj/art/gac_5.ans diff
    src/doors/gac/gac_bj/art/gac_6.ans diff
    src/doors/gac/gac_bj/art/gac_7.ans diff
    src/doors/gac/gac_bj/art/gac_8.ans diff
    src/doors/gac/gac_bj/art/gac_9.ans diff
    src/doors/gac/gac_bj/art/gac_bj.asc diff
    src/doors/gac/gac_bj/art/gac_bj10.ans diff
    src/doors/gac/gac_bj/art/gac_bj11.ans diff
    src/doors/gac/gac_bj/art/gac_bj12.ans diff
    src/doors/gac/gac_bj/art/gac_bj13.ans diff
    src/doors/gac/gac_bj/art/gac_bj14.ans diff
    src/doors/gac/gac_bj/art/gac_bj15.ans diff
    src/doors/gac/gac_bj/art/gac_bj_1.ans diff
    src/doors/gac/gac_bj/art/gac_bj_2.ans diff
    src/doors/gac/gac_bj/art/gac_bj_3.ans diff
    src/doors/gac/gac_bj/art/gac_bj_4.ans diff
    src/doors/gac/gac_bj/art/gac_bj_5.ans diff
    src/doors/gac/gac_bj/art/gac_bj_6.ans diff
    src/doors/gac/gac_bj/art/gac_bj_7.ans diff
    src/doors/gac/gac_bj/art/gac_bj_8.ans diff
    src/doors/gac/gac_bj/art/gac_bj_9.ans diff
    src/doors/gac/gac_bj/art/gac_fc_1.ans diff
    src/doors/gac/gac_bj/art/plycur.ans diff
    src/doors/gac/gac_bj/art/plylst.ans diff
    src/doors/gac/gac_bj/art/temp.ans diff
    src/doors/gac/gac_bj/bbstimes.ans diff
    src/doors/gac/gac_bj/bbstimes.asc diff
    src/doors/gac/gac_bj/gac_bj.asc diff
    src/doors/gac/gac_bj/release/gac_bj.asc diff
    src/doors/gac/gac_fc/art/8_backup.ans diff
    src/doors/gac/gac_fc/art/bank.ans diff
    src/doors/gac/gac_fc/art/freeinst.asc diff
    src/doors/gac/gac_fc/art/ga_bj_5.ans diff
    src/doors/gac/gac_fc/art/gac_10.ans diff
    src/doors/gac/gac_fc/art/gac_12.ans diff
    src/doors/gac/gac_fc/art/gac_13.ans diff
    src/doors/gac/gac_fc/art/gac_14.ans diff
    src/doors/gac/gac_fc/art/gac_15.ans diff
    src/doors/gac/gac_fc/art/gac_3.ans diff
    src/doors/gac/gac_fc/art/gac_4.ans diff
    src/doors/gac/gac_fc/art/gac_6.ans diff
    src/doors/gac/gac_fc/art/gac_7.ans diff
    src/doors/gac/gac_fc/art/gac_8.ans diff
    src/doors/gac/gac_fc/art/gac_9.ans diff
    src/doors/gac/gac_fc/art/gac_bj10.ans diff
    src/doors/gac/gac_fc/art/gac_bj11.ans diff
    src/doors/gac/gac_fc/art/gac_bj12.ans diff
    src/doors/gac/gac_fc/art/gac_bj13.ans diff
    src/doors/gac/gac_fc/art/gac_bj14.ans diff
    src/doors/gac/gac_fc/art/gac_bj15.ans diff
    src/doors/gac/gac_fc/art/gac_fc.asc diff
    src/doors/gac/gac_fc/art/gac_fc_1.ans diff
    src/doors/gac/gac_fc/art/rules.asc diff
    src/doors/gac/gac_fc/gac_fc.asc diff
    src/doors/gac/gac_wh/art/8_backup.ans diff
    src/doors/gac/gac_wh/art/bank.ans diff
    src/doors/gac/gac_wh/art/gac_10.ans diff
    src/doors/gac/gac_wh/art/gac_12.ans diff
    src/doors/gac/gac_wh/art/gac_13.ans diff
    src/doors/gac/gac_wh/art/gac_14.ans diff
    src/doors/gac/gac_wh/art/gac_15.ans diff
    src/doors/gac/gac_wh/art/gac_3.ans diff
    src/doors/gac/gac_wh/art/gac_4.ans diff
    src/doors/gac/gac_wh/art/gac_6.ans diff
    src/doors/gac/gac_wh/art/gac_7.ans diff
    src/doors/gac/gac_wh/art/gac_8.ans diff
    src/doors/gac/gac_wh/art/gac_9.ans diff
    src/doors/gac/gac_wh/art/gac_fc_1.ans diff
    src/doors/gac/gac_wh/art/gac_wh.asc diff
    src/doors/gac/gac_wh/art/gac_wh_1.ans diff
    src/doors/gac/gac_wh/art/rules.asc diff
    src/doors/gac/gac_wh/art/wahoinst.asc diff
    src/doors/gac/gac_wh/art/wahoobd.ans diff
    src/doors/gac/gac_wh/gac_wh.asc diff
    src/doors/gac/gac_wh/release/gac_wh.asc diff
    src/doors/gac/gac_wh/wahoobd.asc diff
    src/doors/gac/gamesdk/art/bbscur.ans diff
    src/doors/gac/gamesdk/art/bbslst.ans diff
    src/doors/gac/gamesdk/art/plycur.ans diff
    src/doors/gac/gamesdk/art/plylst.ans diff
    src/doors/gac/gamesdk/reqdart/gac_10.ans diff
    src/doors/gac/gamesdk/reqdart/gac_12.ans diff
    src/doors/gac/gamesdk/reqdart/gac_13.ans diff
    src/doors/gac/gamesdk/reqdart/gac_14.ans diff
    src/doors/gac/gamesdk/reqdart/gac_15.ans diff
    src/doors/gac/gamesdk/reqdart/gac_3.ans diff
    src/doors/gac/gamesdk/reqdart/gac_4.ans diff
    src/doors/gac/gamesdk/reqdart/gac_6.ans diff
    src/doors/gac/gamesdk/reqdart/gac_7.ans diff
    src/doors/gac/gamesdk/reqdart/gac_8.ans diff
    src/doors/gac/gamesdk/reqdart/gac_9.ans diff
    src/doors/gac/gamesdk/template/art/gac_10.ans diff
    src/doors/gac/gamesdk/template/art/gac_12.ans diff
    src/doors/gac/gamesdk/template/art/gac_13.ans diff
    src/doors/gac/gamesdk/template/art/gac_14.ans diff
    src/doors/gac/gamesdk/template/art/gac_15.ans diff
    src/doors/gac/gamesdk/template/art/gac_3.ans diff
    src/doors/gac/gamesdk/template/art/gac_4.ans diff
    src/doors/gac/gamesdk/template/art/gac_6.ans diff
    src/doors/ny2008/intro.ans diff
    src/doors/ny2008/intro.asc diff
    src/doors/ny2008/ny2008.ans diff
    src/doors/ny2008/ny2008.asc diff
    src/doors/ny2008/nyinstr.asc diff
    src/doors/ny2008/nyinstrc.asc diff
    src/doors/ny2008/win.ans diff
    src/doors/timeport/buttons.ans diff
    src/doors/timeport/ending1.ans diff
    src/doors/timeport/ending2.ans diff
    src/doors/timeport/flying.ans diff
    src/doors/timeport/room1.ans diff
    src/doors/timeport/room1.asc diff
    src/doors/timeport/room10.ans diff
    src/doors/timeport/room10.asc diff
    src/doors/timeport/room11.ans diff
    src/doors/timeport/room11.asc diff
    src/doors/timeport/room12.ans diff
    src/doors/timeport/room12.asc diff
    src/doors/timeport/room13.ans diff
    src/doors/timeport/room13.asc diff
    src/doors/timeport/room14.ans diff
    src/doors/timeport/room14.asc diff
    src/doors/timeport/room15.ans diff
    src/doors/timeport/room15.asc diff
    src/doors/timeport/room16.ans diff
    src/doors/timeport/room16.asc diff
    src/doors/timeport/room17.ans diff
    src/doors/timeport/room17.asc diff
    src/doors/timeport/room18.ans diff
    src/doors/timeport/room18.asc diff
    src/doors/timeport/room19.ans diff
    src/doors/timeport/room19.asc diff
    src/doors/timeport/room2.ans diff
    src/doors/timeport/room2.asc diff
    src/doors/timeport/room20.ans diff
    src/doors/timeport/room20.asc diff
    src/doors/timeport/room3.ans diff
    src/doors/timeport/room3.asc diff
    src/doors/timeport/room4.ans diff
    src/doors/timeport/room4.asc diff
    src/doors/timeport/room5.ans diff
    src/doors/timeport/room5.asc diff
    src/doors/timeport/room6.ans diff
    src/doors/timeport/room6.asc diff
    src/doors/timeport/room7.ans diff
    src/doors/timeport/room7.asc diff
    src/doors/timeport/room8.ans diff
    src/doors/timeport/room8.asc diff
    src/doors/timeport/room9.ans diff
    src/doors/timeport/room9.asc diff
    src/doors/timeport/shuttle.ans diff
    src/doors/timeport/title1.ans diff
    src/doors/timeport/title2.ans diff
    src/doors/timeport/title3.ans diff
    src/doors/timeport/title4.ans diff
    src/doors/timeport/title5.ans diff
    src/doors/timeport/title6.ans diff
    src/doors/timeport/title7.ans diff
    src/sbbs3/jsexec.c diff
    src/sbbs3/xmodem.c diff
    src/syncterm/bbslist.c diff
    src/syncterm/conn.c diff
    src/syncterm/conn.h diff
    src/syncterm/conn_pty.c diff
    src/syncterm/conn_telnet.c diff
    src/syncterm/ripper.c diff
    src/syncterm/ssh.c diff
    src/syncterm/syncterm.c diff
    src/syncterm/telnet_io.c diff
    src/syncterm/term.c diff
    src/syncterm/term.h diff
    src/syncterm/window.c diff
    src/syncterm/window.h diff
    src/uifc/filepick.c diff
    src/uifc/uifc32.c diff
    src/vdmodem/vdmodem.c diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/gttrivia/gttrivia.ini diff
    xtrn/gttrivia/gttrivia.js diff
    xtrn/gttrivia/qa/converter.js diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    xtrn/gttrivia/readme.txt diff
    xtrn/lord/lord.js diff
    Merge branch 'master' of gitlab.synchro.net:main/sbbs

  236. Deucе
    Mon Dec 26 2022 09:17:32 GMT-0800 (PST)
    Modified Files:
    

    src/conio/cterm.txt diff
    Document sequences SyncTERM sends on key presses.

  237. Deucе
    Mon Dec 26 2022 09:02:44 GMT-0800 (PST)
    Modified Files:
    

    src/conio/cterm.txt diff
    Document the SyncTERM Application Program String extensions Not actually part of CTerm, but documented here anyway.

  238. Deucе
    Mon Dec 26 2022 06:56:01 GMT-0800 (PST)
    Modified Files:
    

    src/conio/ciolib.c diff
    Don't force vmem->pixel remapping when saving screen. This destroys graphics. Fixes SF bug 94.

  239. Deucе
    Mon Dec 26 2022 00:37:46 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Now that SDL_USEREVENT_SETVIDMODE takes a size, we can clean up sdl_setwinsize() and eliminate another race.

  240. Deucе
    Mon Dec 26 2022 00:27:40 GMT-0800 (PST)
    Modified Files:
    

    xtrn/lord/lord.js diff
    Don't not.

  241. Deucе
    Mon Dec 26 2022 00:22:38 GMT-0800 (PST)
    Modified Files:
    

    src/conio/scale.c diff
    src/conio/scale.h diff
    src/conio/sdl_con.c diff
    More SDL cleanup

  242. Deucе
    Sun Dec 25 2022 21:44:11 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Various SDL fixes: Pass window size in SDL_USEREVENT_SETVIDMODE - Fixes race condition where SDL_WINDOWEVENT_RESIZED or SDL_WINDOWEVENT_SIZE_CHANGED arraves while SDL_USEREVENT_SETVIDMODE is in the queue Set new scaling based on old scaling multiplier - Will resize window on mode changes, but tries to keep integer multiplier similar. May break fullscreen modes, dunno. Have aspect_fix() return higher rather than lower - This may make it the same as aspect_correct(), but I'm too lazy to figure that out.

  243. Deucе
    Sun Dec 25 2022 20:21:21 GMT-0800 (PST)
    Modified Files:
    

    src/conio/scale.c diff
    src/conio/sdl_con.c diff
    Fix aspect_fix() to always grow, not shrink. Add additional stderr debugging. Don't try to correct the aspect ratio of the window.

  244. Deucе
    Sun Dec 25 2022 18:59:04 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/syncterm.c diff
    Remove deprecated -i option.

  245. Deucе
    Sun Dec 25 2022 18:50:18 GMT-0800 (PST)
    Modified Files:
    

    xtrn/lord/lord.js diff
    Fix up forest fights for RIP a bit.

  246. Deucе
    Sun Dec 25 2022 15:47:04 GMT-0800 (PST)
    Modified Files:
    

    xtrn/lord/lord.js diff
    Some more minor improvements on RIP detection/cache updates

  247. Deucе
    Sun Dec 25 2022 15:30:58 GMT-0800 (PST)
    Modified Files:
    

    xtrn/lord/lord.js diff
    A few minor RIP improvements.

  248. Deucе
    Sun Dec 25 2022 14:52:58 GMT-0800 (PST)
    Modified Files:
    

    xtrn/lord/lord.js diff
    A bit more input queue cleaning to help the splash screen display

  249. Deucе
    Sun Dec 25 2022 14:08:36 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/term.c diff
    Fix b64 decode buf length calculation Previously, b64_decode was being asked to decode past the end of the application string.

  250. Deucе
    Sun Dec 25 2022 13:48:46 GMT-0800 (PST)
    Added Files:
    

    xtrn/lord/LORDARMR.ICN diff
    xtrn/lord/LORDBANK.ICN diff
    xtrn/lord/LORDBART.ICN diff
    xtrn/lord/LORDDARK.ICN diff
    xtrn/lord/LORDDEAD.ICN diff
    xtrn/lord/LORDDRAG.ICN diff
    xtrn/lord/LORDFRM1.ICN diff
    xtrn/lord/LORDFRM2.ICN diff
    xtrn/lord/LORDFRM3.ICN diff
    xtrn/lord/LORDFRST.ICN diff
    xtrn/lord/LORDHEAD.ICN diff
    xtrn/lord/LORDHEAL.ICN diff
    xtrn/lord/LORDINN1.ICN diff
    xtrn/lord/LORDINN2.ICN diff
    xtrn/lord/LORDINT1.ICN diff
    xtrn/lord/LORDINT2.ICN diff
    xtrn/lord/LORDKING.ICN diff
    xtrn/lord/LORDLRG.ICN diff
    xtrn/lord/LORDNEWW.ICN diff
    xtrn/lord/LORDSCRL.ICN diff
    xtrn/lord/LORDTAV.ICN diff
    xtrn/lord/LORDTHEF.ICN diff
    xtrn/lord/LORDTURG.ICN diff
    xtrn/lord/LORDTWN1.ICN diff
    xtrn/lord/LORDTWN2.ICN diff
    xtrn/lord/LORDTWN3.ICN diff
    xtrn/lord/LORDWIZ2.ICN diff
    xtrn/lord/LORDWNDO.ICN diff
    xtrn/lord/lordrip.lrd diff
    Modified Files:

    xtrn/lord/lord.js diff
    Add RIP support to LORD JS and bump version to 5.02 This should get the original RIP stuff working properly. LORD icon files are ideally handled a bit differently: 1) If the remote supports the SyncTERM cache operations, icons are transferred directly to the cache using them. This requires a SyncTERM build including commit fa51ebe7. 2) If LORD is running in-process under Synchronet, it will try to initiate a YModem-G download for the files using bbs.send_file(name, 'G'). This means YModem-G must be enabled, and must use the 'G' command key. Having the *correct* icon files will still work, but they must be the expected file size and be the same modified date or newer to be used by LORD JS. Ideally, there would be a way to configure sexyz or something to do icon transfers, but that's a lot harder, so I'm not going to bother.

  251. Deucе
    Sun Dec 25 2022 13:46:33 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/ripper.c diff
    src/syncterm/term.c diff
    src/syncterm/term.h diff
    Place RIP files in a RIP/ subdirectory in the cache. Fix off-by-one error with b64 cache store buffer size.

  252. Deucе
    Sun Dec 25 2022 00:33:32 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/conn.c diff
    Fix outgoing telnet expension This is what was breaking uploads via telnet. Not only was it sending the unexpanded buffer, it was also sending the length of the expanded buffer out of it (wandering into gibberish or at worst, outside of the buffer).

  253. Deucе
    Sun Dec 25 2022 00:34:56 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/conn_telnet.c diff
    Move telnet_expand() into SyncTERM proper. This allows ensuring we don't expand CRLF into CRLFLF. This is usually harmless, but there's no real need to put up with it in a program with a single thread using the expand function.

  254. Deucе
    Sun Dec 25 2022 00:36:14 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/telnet_io.c diff
    Whitespace cleanup

  255. Deucе
    Sat Dec 24 2022 22:09:55 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/ripper.c diff
    Fix RIP_FILE_QUERY

  256. Deucе
    Sat Dec 24 2022 13:45:48 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/ripper.c diff
    Some ellipse improvements to fix Violet's chat bubble when she's busy.

  257. Deucе
    Sat Dec 24 2022 11:42:21 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/ripper.c diff
    Only check the filename for a dot, not the whole cachepath Fixes icon displays in RIPs that don't use the .ICN extension.

  258. Deucе
    Fri Dec 23 2022 22:14:51 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/jsexec.c diff
    src/syncterm/conn.h diff
    Switch to sigaction() from signal();siginterrupt() It seems Linux has deprecated siginterrupt(), and they've been aggressive about removing deprecated C functions lately.

  259. Deucе
    Fri Dec 23 2022 21:51:59 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/conn.c diff
    src/syncterm/conn.h diff
    src/syncterm/term.c diff
    Track binary mode, and don't enter/exit it for file transfers if it's already in binary mode. Should fix Sourceforge issue 91

  260. Deucе
    Fri Dec 23 2022 21:22:30 GMT-0800 (PST)
    Modified Files:
    

    src/uifc/filepick.c diff
    Don't re-draw the current list (it will be redrawn in the switch statement) Fixes SyncTERM SF bug 93

  261. Deucе
    Fri Dec 23 2022 21:14:22 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/syncterm.c diff
    Fix parsing of URLs with a slash in them. The changes for Ghost support broke URL parsing.

  262. Deucе
    Fri Dec 23 2022 18:25:26 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    We don't need these braces.

  263. Deucе
    Fri Dec 23 2022 18:22:42 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    Add a "File Locations" menu item in the settings menu. This doesn't actually contain things you can modify, but rather answers the most FAQ "Where are the files stored?"

  264. Deucе
    Fri Dec 23 2022 18:22:19 GMT-0800 (PST)
    Modified Files:
    

    src/uifc/uifc32.c diff
    Store curp/barp in showbuf allowing dynamic windows to work Before this change, dynamic parent windows wouldn't be redrawn as active after showbuf() returns.

  265. Deucе
    Fri Dec 23 2022 16:55:24 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/conn_pty.c diff
    src/syncterm/ripper.c diff
    src/syncterm/ssh.c diff
    src/syncterm/term.c diff
    src/syncterm/window.c diff
    src/syncterm/window.h diff
    Have get_term_win_size() optionally return size in pixels as well

  266. Rob Swindell
    Fri Dec 23 2022 13:49:21 GMT-0800 (PST)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Add clock related variable values to debug output Just in case there's some clock wrap around issue causing issue #468. Seems unlikely with a 64-bit clock, but there are a lot of conditions in the xp_timer64() implementation that could evaluate differently on different versions of Windows or on different computers.

  267. Deucе
    Thu Dec 22 2022 23:30:55 GMT-0800 (PST)
    Modified Files:
    

    src/conio/cterm.c diff
    Clamp sixel repeat to 0x7fff per specification. This is the issue behind CVE-2022-24130 in xterm. Reported against SyncTERM by Autumn Lamonte (Thanks!) Discussion here: https://gitlab.com/klamonte/jexer/-/issues/105 Closes SyncTERM bug 79.

  268. Deucе
    Tue Dec 20 2022 22:54:16 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/xmodem.c diff
    Default to *not* adding a delay to X/Ymodem uploads.

  269. Deucе
    Tue Dec 20 2022 21:18:26 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/ripper.c diff
    Separate RIP enabled from suspended. Previously, a file transfer would unconditionally enable RIP.

  270. Eric Oulashin
    Sat Dec 17 2022 13:44:49 GMT-0800 (PST)
    Added Files:
    

    docs/slyedit_readme.txt diff
    Modified Files:

    exec/SlyEdit.js diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Quote line wrapping for DDMsgReader and SlyEdit

  271. Rob Swindell
    Sat Dec 17 2022 13:44:49 GMT-0800 (PST)
    Added Files:
    

    docs/slyedit_readme.txt diff
    Modified Files:

    exec/SlyEdit.js diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_external_editor_quote_wrap' into 'master' Quote line wrapping for DDMsgReader and SlyEdit See merge request main/sbbs!235

  272. Rob Swindell
    Sat Dec 17 2022 13:41:39 GMT-0800 (PST)
    Modified Files:
    

    exec/newuser.js diff
    Expand @-codes in text/welcome.msg before sending as email to sysop Fixes issue #463

  273. Rob Swindell
    Sat Dec 17 2022 13:42:21 GMT-0800 (PST)
    Modified Files:
    

    src/doors/clans-src/data/list.asc diff
    src/doors/clans-src/data/pg.asc diff
    src/doors/clans-src/data/pxnews.asc diff
    src/doors/clans-src/data/pxtit.asc diff
    src/doors/clans-src/test/scores.ans diff
    src/doors/clans-src/test/scores.asc diff
    src/doors/dgnlance/text/docs.asc diff
    src/doors/dgnlance/text/guards.ans diff
    src/doors/dgnlance/text/guards.asc diff
    src/doors/dgnlance/text/menu.ans diff
    src/doors/dgnlance/text/menu.asc diff
    src/doors/dgnlance/text/plug.asc diff
    src/doors/gac/gac_bj/art/8_backup.ans diff
    src/doors/gac/gac_bj/art/bank.ans diff
    src/doors/gac/gac_bj/art/bbscur.ans diff
    src/doors/gac/gac_bj/art/bbslst.ans diff
    src/doors/gac/gac_bj/art/ga_bj_5.ans diff
    src/doors/gac/gac_bj/art/gac_1.ans diff
    src/doors/gac/gac_bj/art/gac_10.ans diff
    src/doors/gac/gac_bj/art/gac_11.ans diff
    src/doors/gac/gac_bj/art/gac_12.ans diff
    src/doors/gac/gac_bj/art/gac_13.ans diff
    src/doors/gac/gac_bj/art/gac_14.ans diff
    src/doors/gac/gac_bj/art/gac_15.ans diff
    src/doors/gac/gac_bj/art/gac_2.ans diff
    src/doors/gac/gac_bj/art/gac_3.ans diff
    src/doors/gac/gac_bj/art/gac_4.ans diff
    src/doors/gac/gac_bj/art/gac_5.ans diff
    src/doors/gac/gac_bj/art/gac_6.ans diff
    src/doors/gac/gac_bj/art/gac_7.ans diff
    src/doors/gac/gac_bj/art/gac_8.ans diff
    src/doors/gac/gac_bj/art/gac_9.ans diff
    src/doors/gac/gac_bj/art/gac_bj.asc diff
    src/doors/gac/gac_bj/art/gac_bj10.ans diff
    src/doors/gac/gac_bj/art/gac_bj11.ans diff
    src/doors/gac/gac_bj/art/gac_bj12.ans diff
    src/doors/gac/gac_bj/art/gac_bj13.ans diff
    src/doors/gac/gac_bj/art/gac_bj14.ans diff
    src/doors/gac/gac_bj/art/gac_bj15.ans diff
    src/doors/gac/gac_bj/art/gac_bj_1.ans diff
    src/doors/gac/gac_bj/art/gac_bj_2.ans diff
    src/doors/gac/gac_bj/art/gac_bj_3.ans diff
    src/doors/gac/gac_bj/art/gac_bj_4.ans diff
    src/doors/gac/gac_bj/art/gac_bj_5.ans diff
    src/doors/gac/gac_bj/art/gac_bj_6.ans diff
    src/doors/gac/gac_bj/art/gac_bj_7.ans diff
    src/doors/gac/gac_bj/art/gac_bj_8.ans diff
    src/doors/gac/gac_bj/art/gac_bj_9.ans diff
    src/doors/gac/gac_bj/art/gac_fc_1.ans diff
    src/doors/gac/gac_bj/art/plycur.ans diff
    src/doors/gac/gac_bj/art/plylst.ans diff
    src/doors/gac/gac_bj/art/temp.ans diff
    src/doors/gac/gac_bj/bbstimes.ans diff
    src/doors/gac/gac_bj/bbstimes.asc diff
    src/doors/gac/gac_bj/gac_bj.asc diff
    src/doors/gac/gac_bj/release/gac_bj.asc diff
    src/doors/gac/gac_fc/art/8_backup.ans diff
    src/doors/gac/gac_fc/art/bank.ans diff
    src/doors/gac/gac_fc/art/freeinst.asc diff
    src/doors/gac/gac_fc/art/ga_bj_5.ans diff
    src/doors/gac/gac_fc/art/gac_10.ans diff
    src/doors/gac/gac_fc/art/gac_12.ans diff
    src/doors/gac/gac_fc/art/gac_13.ans diff
    src/doors/gac/gac_fc/art/gac_14.ans diff
    src/doors/gac/gac_fc/art/gac_15.ans diff
    src/doors/gac/gac_fc/art/gac_3.ans diff
    src/doors/gac/gac_fc/art/gac_4.ans diff
    src/doors/gac/gac_fc/art/gac_6.ans diff
    src/doors/gac/gac_fc/art/gac_7.ans diff
    src/doors/gac/gac_fc/art/gac_8.ans diff
    src/doors/gac/gac_fc/art/gac_9.ans diff
    src/doors/gac/gac_fc/art/gac_bj10.ans diff
    src/doors/gac/gac_fc/art/gac_bj11.ans diff
    src/doors/gac/gac_fc/art/gac_bj12.ans diff
    src/doors/gac/gac_fc/art/gac_bj13.ans diff
    src/doors/gac/gac_fc/art/gac_bj14.ans diff
    src/doors/gac/gac_fc/art/gac_bj15.ans diff
    src/doors/gac/gac_fc/art/gac_fc.asc diff
    src/doors/gac/gac_fc/art/gac_fc_1.ans diff
    src/doors/gac/gac_fc/art/rules.asc diff
    src/doors/gac/gac_fc/gac_fc.asc diff
    src/doors/gac/gac_wh/art/8_backup.ans diff
    src/doors/gac/gac_wh/art/bank.ans diff
    src/doors/gac/gac_wh/art/gac_10.ans diff
    src/doors/gac/gac_wh/art/gac_12.ans diff
    src/doors/gac/gac_wh/art/gac_13.ans diff
    src/doors/gac/gac_wh/art/gac_14.ans diff
    src/doors/gac/gac_wh/art/gac_15.ans diff
    src/doors/gac/gac_wh/art/gac_3.ans diff
    src/doors/gac/gac_wh/art/gac_4.ans diff
    src/doors/gac/gac_wh/art/gac_6.ans diff
    src/doors/gac/gac_wh/art/gac_7.ans diff
    src/doors/gac/gac_wh/art/gac_8.ans diff
    src/doors/gac/gac_wh/art/gac_9.ans diff
    src/doors/gac/gac_wh/art/gac_fc_1.ans diff
    src/doors/gac/gac_wh/art/gac_wh.asc diff
    src/doors/gac/gac_wh/art/gac_wh_1.ans diff
    src/doors/gac/gac_wh/art/rules.asc diff
    src/doors/gac/gac_wh/art/wahoinst.asc diff
    src/doors/gac/gac_wh/art/wahoobd.ans diff
    src/doors/gac/gac_wh/gac_wh.asc diff
    src/doors/gac/gac_wh/release/gac_wh.asc diff
    src/doors/gac/gac_wh/wahoobd.asc diff
    src/doors/gac/gamesdk/art/bbscur.ans diff
    src/doors/gac/gamesdk/art/bbslst.ans diff
    src/doors/gac/gamesdk/art/plycur.ans diff
    src/doors/gac/gamesdk/art/plylst.ans diff
    src/doors/gac/gamesdk/reqdart/gac_10.ans diff
    src/doors/gac/gamesdk/reqdart/gac_12.ans diff
    src/doors/gac/gamesdk/reqdart/gac_13.ans diff
    src/doors/gac/gamesdk/reqdart/gac_14.ans diff
    src/doors/gac/gamesdk/reqdart/gac_15.ans diff
    src/doors/gac/gamesdk/reqdart/gac_3.ans diff
    src/doors/gac/gamesdk/reqdart/gac_4.ans diff
    src/doors/gac/gamesdk/reqdart/gac_6.ans diff
    src/doors/gac/gamesdk/reqdart/gac_7.ans diff
    src/doors/gac/gamesdk/reqdart/gac_8.ans diff
    src/doors/gac/gamesdk/reqdart/gac_9.ans diff
    src/doors/gac/gamesdk/template/art/gac_10.ans diff
    src/doors/gac/gamesdk/template/art/gac_12.ans diff
    src/doors/gac/gamesdk/template/art/gac_13.ans diff
    src/doors/gac/gamesdk/template/art/gac_14.ans diff
    src/doors/gac/gamesdk/template/art/gac_15.ans diff
    src/doors/gac/gamesdk/template/art/gac_3.ans diff
    src/doors/gac/gamesdk/template/art/gac_4.ans diff
    src/doors/gac/gamesdk/template/art/gac_6.ans diff
    src/doors/ny2008/intro.ans diff
    src/doors/ny2008/intro.asc diff
    src/doors/ny2008/ny2008.ans diff
    src/doors/ny2008/ny2008.asc diff
    src/doors/ny2008/nyinstr.asc diff
    src/doors/ny2008/nyinstrc.asc diff
    src/doors/ny2008/win.ans diff
    src/doors/timeport/buttons.ans diff
    src/doors/timeport/ending1.ans diff
    src/doors/timeport/ending2.ans diff
    src/doors/timeport/flying.ans diff
    src/doors/timeport/room1.ans diff
    src/doors/timeport/room1.asc diff
    src/doors/timeport/room10.ans diff
    src/doors/timeport/room10.asc diff
    src/doors/timeport/room11.ans diff
    src/doors/timeport/room11.asc diff
    src/doors/timeport/room12.ans diff
    src/doors/timeport/room12.asc diff
    src/doors/timeport/room13.ans diff
    src/doors/timeport/room13.asc diff
    src/doors/timeport/room14.ans diff
    src/doors/timeport/room14.asc diff
    src/doors/timeport/room15.ans diff
    src/doors/timeport/room15.asc diff
    src/doors/timeport/room16.ans diff
    src/doors/timeport/room16.asc diff
    src/doors/timeport/room17.ans diff
    src/doors/timeport/room17.asc diff
    src/doors/timeport/room18.ans diff
    src/doors/timeport/room18.asc diff
    src/doors/timeport/room19.ans diff
    src/doors/timeport/room19.asc diff
    src/doors/timeport/room2.ans diff
    src/doors/timeport/room2.asc diff
    src/doors/timeport/room20.ans diff
    src/doors/timeport/room20.asc diff
    src/doors/timeport/room3.ans diff
    src/doors/timeport/room3.asc diff
    src/doors/timeport/room4.ans diff
    src/doors/timeport/room4.asc diff
    src/doors/timeport/room5.ans diff
    src/doors/timeport/room5.asc diff
    src/doors/timeport/room6.ans diff
    src/doors/timeport/room6.asc diff
    src/doors/timeport/room7.ans diff
    src/doors/timeport/room7.asc diff
    src/doors/timeport/room8.ans diff
    src/doors/timeport/room8.asc diff
    src/doors/timeport/room9.ans diff
    src/doors/timeport/room9.asc diff
    src/doors/timeport/shuttle.ans diff
    src/doors/timeport/title1.ans diff
    src/doors/timeport/title2.ans diff
    src/doors/timeport/title3.ans diff
    src/doors/timeport/title4.ans diff
    src/doors/timeport/title5.ans diff
    src/doors/timeport/title6.ans diff
    src/doors/timeport/title7.ans diff
    text/banner1.msg diff
    text/banner2.msg diff
    text/banner3.msg diff
    text/menu/chat.msg diff
    text/menu/e-mail.msg diff
    text/menu/mailread.msg diff
    text/menu/maincfg.msg diff
    text/menu/multchat.msg diff
    text/menu/qwk.msg diff
    text/menu/renegade/email.asc diff
    text/menu/renegade/main.asc diff
    text/menu/renegade/message.asc diff
    text/menu/renegade/transfer.asc diff
    text/menu/sysmailr.msg diff
    text/menu/tempxfer.asc diff
    text/menu/wwiv/main.asc diff
    text/menu/wwiv/transfer.asc diff
    text/menu/xfercfg.msg diff
    xtrn/chickendelivery/instruct.ans diff
    xtrn/dgnlance/guards.asc diff
    xtrn/dgnlance/menu.asc diff
    xtrn/dgnlance/plug.asc diff
    xtrn/gttrivia/gttrivia.asc diff
    xtrn/lord/menus/addmun10/cfthing.ans diff
    xtrn/lord/menus/addmun10/thingad.ans diff
    xtrn/lord/menus/clu_enem/opivy.ans diff
    xtrn/lord/menus/dimensia/dimensio.ans diff
    xtrn/lord/menus/dllord20/backup.ans diff
    xtrn/lord/menus/dllord20/hey.ans diff
    xtrn/lord/menus/exptlord/eye.ans diff
    xtrn/lord/menus/ldxxx/prelord.ans diff
    xtrn/lord/menus/mdrnwrld/hell.ans diff
    xtrn/lord/menus/tnglord/bworld.ans diff
    xtrn/lord/menus/tnglord/tnglord.ans diff
    xtrn/lord2/cnw/battle1.ans diff
    xtrn/lord2/cnw/battle2.ans diff
    xtrn/lord2/cnw/battle3.ans diff
    xtrn/lord2/cnw/battle4.ans diff
    xtrn/lord2/cnw/battle5.ans diff
    xtrn/lord2/cnw/battle6.ans diff
    xtrn/lord2/cnw/castaway.ans diff
    xtrn/lord2/cnw/finger.ans diff
    xtrn/lord2/cnw/fishy.ans diff
    xtrn/lord2/cnw/fishyl.ans diff
    xtrn/lord2/cnw/fishys.ans diff
    xtrn/lord2/cnw/gumgod.ans diff
    xtrn/lord2/cnw/kraken.ans diff
    xtrn/lord2/cnw/lord.ans diff
    xtrn/lord2/cnw/lordad.ans diff
    xtrn/lord2/cnw/rose1.ans diff
    xtrn/lord2/cnw/rose10.ans diff
    xtrn/lord2/cnw/rose2.ans diff
    xtrn/lord2/cnw/rose3.ans diff
    xtrn/lord2/cnw/rose4.ans diff
    xtrn/lord2/cnw/rose5.ans diff
    xtrn/lord2/cnw/rose6.ans diff
    xtrn/lord2/cnw/rose7.ans diff
    xtrn/lord2/cnw/rose8.ans diff
    xtrn/lord2/cnw/rose9.ans diff
    xtrn/lord2/cnw/scvngr1.ans diff
    xtrn/lord2/cnw/scvngr2.ans diff
    xtrn/lord2/cnw/scvngr3.ans diff
    xtrn/lord2/cnw/sea01.ans diff
    xtrn/lord2/cnw/shell.ans diff
    xtrn/lord2/cnw/tower.ans diff
    xtrn/lord2/cnw/weelie.ans diff
    xtrn/tbd/tbdwin.ans diff
    xtrn/tw2/fighters.ans diff
    xtrn/tw2/planet.ans diff
    xtrn/tw2/port.ans diff
    xtrn/tw2/ship.ans diff
    xtrn/tw2/twopeng.asc diff
    Use CRLF line endings for asc, ans, and msg files This conversion was done automatically via git clone because of the latest .gitattributes settings for these file types.

  274. Eric Oulashin
    Tue Dec 13 2022 22:43:39 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgreader: Fix for "assignment to undeclared variable" error

  275. Rob Swindell
    Tue Dec 13 2022 22:43:39 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'ddmsgreader_undeclared_variable_assignment_fix_2022_12_12' into 'master' DDMsgreader: Fix for "assignment to undeclared variable" error See merge request main/sbbs!234

  276. Eric Oulashin
    Tue Dec 13 2022 22:37:49 GMT-0800 (PST)
    Modified Files:
    

    xtrn/gttrivia/gttrivia.ini diff
    xtrn/gttrivia/gttrivia.js diff
    xtrn/gttrivia/qa/converter.js diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    xtrn/gttrivia/readme.txt diff
    GT Trivia v1.02: If the JSON server can't be reached, scores can be written to a message sub-board (or more than one if needed)

  277. Rob Swindell
    Tue Dec 13 2022 22:37:49 GMT-0800 (PST)
    Modified Files:
    

    xtrn/gttrivia/gttrivia.ini diff
    xtrn/gttrivia/gttrivia.js diff
    xtrn/gttrivia/qa/converter.js diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    xtrn/gttrivia/readme.txt diff
    Merge branch 'gttrivia_post_scores_in_subboard' into 'master' GT Trivia v1.02: If the JSON server can't be reached, scores can be written to a message sub-board (or more than one if needed) See merge request main/sbbs!233

  278. Eric Oulashin
    Wed Dec 07 2022 23:42:31 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    DD Msg Reader: Fixed typo (console.putmst -> console.putmsg)

  279. Rob Swindell
    Wed Dec 07 2022 23:42:31 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Merge branch 'dd_msg_reader_putmsg_typo_fix' into 'master' DD Msg Reader: Fixed typo (console.putmst -> console.putmsg) See merge request main/sbbs!232

  280. Eric Oulashin
    Mon Dec 05 2022 11:07:33 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    DD file lister: lfexpand() seems to do what I wrote my own function for in the last commit

  281. Rob Swindell
    Mon Dec 05 2022 11:27:03 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    Merge branch 'ddfilelister_lfexpand' into 'master' DD file lister: lfexpand() seems to do what I wrote my own function for in the last commit See merge request main/sbbs!231

  282. Rob Swindell
    Mon Dec 05 2022 11:02:26 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/writemsg.cpp diff
    src/xpdev/str_list.c diff
    src/xpdev/str_list.h diff
    Include blank lines in messages edited with internal editor Needed a version of strListSplit() that doesn't treat consecutive delimiters (e.g. "\r\n\r\n") as a single delimiter: so introducing strListDivide(). Like strListSplit(), strListDivide() modifies the input string (replacing first occurrences of delimiter with NUL). Since we don't want "\r\n" to be counted as 2 lines, we need to just split/divide on '\n' and then truncate any line endings (i.e. '\r') chars off the ends of the split strings. Reported by phigan in #synchronet

  283. Eric Oulashin
    Sat Dec 03 2022 13:39:02 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    DD File lister: Extended file info update (# times DL'd, last DL, description fix for some cases)

  284. Rob Swindell
    Sat Dec 03 2022 13:39:02 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Merge branch 'dd_file_lister_extended_info_update' into 'master' DD File lister: Extended file info update (# times DL'd, last DL, description fix for some cases) See merge request main/sbbs!229

  285. Rick Parrish
    Sat Dec 03 2022 13:21:13 GMT-0800 (PST)
    Modified Files:
    

    webv4/pages/003-games.xjs diff
    Ree/games fixes

  286. Rob Swindell
    Sat Dec 03 2022 13:21:13 GMT-0800 (PST)
    Modified Files:
    

    webv4/pages/003-games.xjs diff
    Merge branch 'ree/games-fixes' into 'master' Ree/games fixes See merge request main/sbbs!230

  287. Eric Oulashin
    Fri Dec 02 2022 16:04:33 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader v1.57: @-code expansion only when sender is a sysop (and only when reading personal email)

  288. Rob Swindell
    Fri Dec 02 2022 16:04:33 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_additional_atcode_expand_security' into 'master' DDMsgReader v1.57: @-code expansion only when sender is a sysop (and only when reading personal email) See merge request main/sbbs!228

  289. Eric Oulashin
    Fri Dec 02 2022 11:48:11 GMT-0800 (PST)
    Modified Files:
    

    docs/SlyEdit_ReadMe.txt diff
    exec/SlyEdit.js diff
    exec/SlyEdit_Misc.js diff
    SlyEdit v1.82: Added some safety checks when reading the configuration file (that section of code was refactored recently).

  290. Rob Swindell
    Fri Dec 02 2022 11:48:11 GMT-0800 (PST)
    Modified Files:
    

    docs/SlyEdit_ReadMe.txt diff
    exec/SlyEdit.js diff
    exec/SlyEdit_Misc.js diff
    Merge branch 'slyedit_read_config_safety_checks' into 'master' SlyEdit v1.82: Added some safety checks when reading the configuration file (that section of code was refactored recently). See merge request main/sbbs!227

  291. rickparrish
    Mon Nov 28 2022 08:40:52 GMT-0800 (PST)
    Modified Files:
    

    webv4/pages/003-games.xjs diff
    Resize fTelnet for msweeper to support level 5

  292. Rob Swindell
    Thu Dec 01 2022 15:52:32 GMT-0800 (PST)
    Modified Files:
    

    webv4/pages/003-games.xjs diff
    Merge branch 'msweeper-level-5' into 'master' Resize fTelnet for msweeper to support level 5 See merge request main/sbbs!225

  293. rickparrish
    Sun Nov 27 2022 11:25:09 GMT-0800 (PST)
    Modified Files:
    

    webv4/pages/001-forum.ssjs diff
    Display error if user can't read requested sub

  294. Rob Swindell
    Thu Dec 01 2022 12:55:46 GMT-0800 (PST)
    Modified Files:
    

    webv4/pages/001-forum.ssjs diff
    Merge branch 'cant-read-sub' into 'master' Display error if user can't read requested sub See merge request main/sbbs!223

  295. Rob Swindell
    Tue Nov 29 2022 10:56:27 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/un_qwk.cpp diff
    src/sbbs3/un_rep.cpp diff
    Bug-fix: erroneously filtering vote messages by age This bug was introduced in commit 9c91d32a8617 2 years ago and would result in votes and poll message being erroneously filtered. e.g. !Filtering QWK message from (null) due to age: 19321 days The filter criteria was either a zero-initialized msg or the previously parsed/imported msg from the QWK or REP packet. A solution for filtering vote/poll messages is needed, but this isn't it.

  296. Rob Swindell
    Mon Nov 28 2022 12:56:07 GMT-0800 (PST)
    Modified Files:
    

    exec/load/binkp.js diff
    Use socket.poll() to check socket for writability before send() This is the real fix for infinite-wait on send() problem that was attempted in commit f0127e9d457, but caused other issues. Thanks Deuce.

  297. Rob Swindell
    Mon Nov 28 2022 12:18:16 GMT-0800 (PST)
    Modified Files:
    

    exec/load/binkp.js diff
    More errno details in file open and socket-send failure warning log msgs

  298. Rob Swindell
    Mon Nov 28 2022 11:01:10 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_socket.c diff
    Revert "Check socket writability in JS Socket.send()" This reverts commit f0127e9d4572f8c1c44536dcda240c310e18f7d8. This change was "wrong-headed" per Deuce and broke JS sends on blocking sockets. Thanks for the help. This fix for inifinite-wait on send() likely led to the infinite BinkIT errors/log messages that led to commit 4dd32231. The real fix for this problem (which can block all other timed events from running), would be a Socket.poll() on the socket before send in binkp.js.

  299. Eric Oulashin
    Sun Nov 27 2022 11:55:29 GMT-0800 (PST)
    Modified Files:
    

    ctrl/SlyEdit.cfg diff
    docs/SlyEdit_ReadMe.txt diff
    Updated the SlyEdit documentation for version 1.81 (forgot yesterday). Also updated the default SlyEdit.cfg to use the English dictionary (for spell check).

  300. Rob Swindell
    Sun Nov 27 2022 12:27:03 GMT-0800 (PST)
    Modified Files:
    

    ctrl/SlyEdit.cfg diff
    docs/SlyEdit_ReadMe.txt diff
    Merge branch 'slyedit_181_doc_update' into 'master' Updated the SlyEdit documentation for version 1.81 (forgot yesterday). Also updated the default SlyEdit.cfg to use the English dictionary (for spell check). See merge request main/sbbs!224

  301. Eric Oulashin
    Sat Nov 26 2022 11:12:05 GMT-0800 (PST)
    Modified Files:
    

    ctrl/SlyDCTColors_Default.cfg diff
    ctrl/SlyDCTColors_Midnight.cfg diff
    ctrl/SlyIceColors_BlueIce.cfg diff
    ctrl/SlyIceColors_EmeraldCity.cfg diff
    ctrl/SlyIceColors_FieryInferno.cfg diff
    ctrl/SlyIceColors_Fire-N-Ice.cfg diff
    ctrl/SlyIceColors_GeneralClean.cfg diff
    ctrl/SlyIceColors_GenericBlue.cfg diff
    ctrl/SlyIceColors_PurpleHaze.cfg diff
    ctrl/SlyIceColors_ShadesOfGrey.cfg diff
    exec/SlyEdit.js diff
    exec/SlyEdit_DCTStuff.js diff
    exec/SlyEdit_IceStuff.js diff
    exec/SlyEdit_Misc.js diff
    SlyEdit: No more control characters needed in the color configuration files

  302. Rob Swindell
    Sat Nov 26 2022 15:37:45 GMT-0800 (PST)
    Modified Files:
    

    ctrl/SlyDCTColors_Default.cfg diff
    ctrl/SlyDCTColors_Midnight.cfg diff
    ctrl/SlyIceColors_BlueIce.cfg diff
    ctrl/SlyIceColors_EmeraldCity.cfg diff
    ctrl/SlyIceColors_FieryInferno.cfg diff
    ctrl/SlyIceColors_Fire-N-Ice.cfg diff
    ctrl/SlyIceColors_GeneralClean.cfg diff
    ctrl/SlyIceColors_GenericBlue.cfg diff
    ctrl/SlyIceColors_PurpleHaze.cfg diff
    ctrl/SlyIceColors_ShadesOfGrey.cfg diff
    exec/SlyEdit.js diff
    exec/SlyEdit_DCTStuff.js diff
    exec/SlyEdit_IceStuff.js diff
    exec/SlyEdit_Misc.js diff
    Merge branch 'slyedit_color_cfg_no_more_control_chars' into 'master' SlyEdit: No more control characters needed in the color configuration files See merge request main/sbbs!222

  303. Eric Oulashin
    Sat Nov 26 2022 15:37:16 GMT-0800 (PST)
    Added Files:
    

    xtrn/gttrivia/lib.js diff
    xtrn/gttrivia/server/commands.js diff
    xtrn/gttrivia/server/service.js diff
    Modified Files:

    xtrn/gttrivia/gttrivia.ini diff
    xtrn/gttrivia/gttrivia.js diff
    xtrn/gttrivia/qa/dirty_minds.qa diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/readme.txt diff
    xtrn/gttrivia/revision_history.txt diff
    Good Time Trivia: Hosted inter-BBS user scores (via JSON DB) is now possible.

  304. Rob Swindell
    Sat Nov 26 2022 15:37:17 GMT-0800 (PST)
    Added Files:
    

    xtrn/gttrivia/lib.js diff
    xtrn/gttrivia/server/commands.js diff
    xtrn/gttrivia/server/service.js diff
    Modified Files:

    xtrn/gttrivia/gttrivia.ini diff
    xtrn/gttrivia/gttrivia.js diff
    xtrn/gttrivia/qa/dirty_minds.qa diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/readme.txt diff
    xtrn/gttrivia/revision_history.txt diff
    Merge branch 'gttrivia_hosted_scores' into 'master' Good Time Trivia: Hosted inter-BBS user scores (via JSON DB) is now possible. See merge request main/sbbs!221

  305. Rick Parrish
    Fri Nov 25 2022 23:53:52 GMT-0800 (PST)
    Modified Files:
    

    webv4/pages/000-register.xjs diff
    webv4/root/api/register.ssjs diff
    Update registration page for closed and newuser password systems

  306. Rob Swindell
    Fri Nov 25 2022 23:53:52 GMT-0800 (PST)
    Modified Files:
    

    webv4/pages/000-register.xjs diff
    webv4/root/api/register.ssjs diff
    Merge branch 'master' into 'master' Update registration page for closed and newuser password systems See merge request main/sbbs!219

  307. Eric Oulashin
    Fri Nov 25 2022 16:35:18 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DD Message Reader: Fixed bug startup mode for scanning all groups for un-read messages to you where the reader was bringing up personal email instead.

  308. Rob Swindell
    Fri Nov 25 2022 16:41:18 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_unread_to_you_scan_fix' into 'master' DD Message Reader: Fixed bug startup mode for scanning all groups for un-read messages to you where the reader was bringing up personal email instead. See merge request main/sbbs!220

  309. Rob Swindell
    Tue Nov 22 2022 18:31:46 GMT-0800 (PST)
    Modified Files:
    

    xtrn/minesweeper/minesweeper.js diff
    Export high scores to message base with "export" command-line option A periodic (e.g. weekly) digest of high scores posted to SYNCDATA will allow BBSes to have an accurate list of global high scores without requiring the retention of several years of SYNCDATA messages. Also, made the necessary changes to allow: 'jsexec minesweeper.js export' (for testing, primarily) When posting an exception report, post from sysop if user.alias is undefined. Incremented revision to 2.15 (though there were no game-play changes).

  310. Rob Swindell
    Tue Nov 22 2022 18:31:46 GMT-0800 (PST)
    Modified Files:
    

    xtrn/minesweeper/install-xtrn.ini diff
    xtrn/minesweeper/readme.txt diff
    Install high scores timed event (new to rev 2.15).

  311. Rob Swindell
    Tue Nov 22 2022 18:31:46 GMT-0800 (PST)
    Modified Files:
    

    xtrn/minesweeper/readme.txt diff
    Fixed typo

  312. Rob Swindell
    Tue Nov 22 2022 18:31:46 GMT-0800 (PST)
    Modified Files:
    

    xtrn/minesweeper/minesweeper.js diff
    Fix improper use of list_contains() which caused dupe winners to display De-duplication wasn't working

  313. Rob Swindell
    Sun Nov 20 2022 15:27:04 GMT-0800 (PST)
    Modified Files:
    

    .gitattributes diff
    Add display files (*.ans, *.asc, *.msg) as text with CRLF EOLs Fix issue #457 May as specify that .asc and .msg are text too, though no known reason why CRLF EOLs may be more desireable.

  314. Rob Swindell
    Sat Nov 19 2022 17:00:42 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_msgbase.c diff
    Fix return return value when methods auto-open a message base (e.g. save_msg()) js_open() sets the rval for the context (e.g. to JSVAL_TRUE), so we need to set it back to JSVAL_FALSE for failure conditions. Otherwise, the methods always return true even upon (save-msg) failure.

  315. Rob Swindell
    Sat Nov 19 2022 13:20:37 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Correct node number *always* before clearning NODE_RRUN [R] status flag If nodeX/node.cnf has the wrong node number, the [R] flag would be cleared from the wrong node upon automatic configuration reload. This likely fixes the issue that Keyop is reporting in #synchronet

  316. Eric Oulashin
    Fri Nov 18 2022 18:17:45 GMT-0800 (PST)
    Added Files:
    

    xtrn/gttrivia/gttrivia.asc diff
    xtrn/gttrivia/gttrivia.ini diff
    xtrn/gttrivia/gttrivia.js diff
    xtrn/gttrivia/install-xtrn.ini diff
    xtrn/gttrivia/qa/converter.js diff
    xtrn/gttrivia/qa/dirty_minds.qa diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    xtrn/gttrivia/readme.txt diff
    xtrn/gttrivia/revision_history.txt diff
    This is a new trivia door, Good Time Trivia, written in JavaScript

  317. Rob Swindell
    Fri Nov 18 2022 18:17:45 GMT-0800 (PST)
    Added Files:
    

    xtrn/gttrivia/gttrivia.asc diff
    xtrn/gttrivia/gttrivia.ini diff
    xtrn/gttrivia/gttrivia.js diff
    xtrn/gttrivia/install-xtrn.ini diff
    xtrn/gttrivia/qa/converter.js diff
    xtrn/gttrivia/qa/dirty_minds.qa diff
    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    xtrn/gttrivia/readme.txt diff
    xtrn/gttrivia/revision_history.txt diff
    Merge branch 'gttrivia_new' into 'master' This is a new trivia door, Good Time Trivia, written in JavaScript See merge request main/sbbs!217

  318. Deucе
    Tue Nov 15 2022 14:46:56 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    src/syncterm/conn.c diff
    src/syncterm/conn.h diff
    src/syncterm/menu.c diff
    src/syncterm/modem.c diff
    src/syncterm/term.c diff
    Add new 3-wire (No RTS) connection type This is for weird embedded systems where RTS is not supported by the communications channel, but is actually controlling something else (TX, Bootloader update mode, etc).

  319. Rob Swindell
    Mon Nov 07 2022 21:46:02 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Merge branch 'dd_msg_area_chooser_posts_and_numeric_input_bugfix' into 'master' DD message area chooser only: Bug fixes for numeric input in lightbar mode and number of posts in traditional mode See merge request main/sbbs!216

  320. Eric Oulashin
    Mon Nov 07 2022 21:46:02 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    DD message area chooser only: Bug fixes for numeric input in lightbar mode and number of posts in traditional mode

  321. Deucе
    Mon Nov 07 2022 15:05:12 GMT-0800 (PST)
    Modified Files:
    

    src/conio/ciolib.c diff
    Whops, missed this commit.

  322. Eric Oulashin
    Fri Nov 04 2022 22:34:44 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Message area chooser only: Made use of the 'posts' property for the number of messages (without vote headers)

  323. Rob Swindell
    Fri Nov 04 2022 22:34:44 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Merge branch 'dd_msg_area_chooser_posts_property' into 'master' Message area chooser only: Made use of the 'posts' property for the number of messages (without vote headers) See merge request main/sbbs!215

  324. Rob Swindell
    Fri Nov 04 2022 10:15:59 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/binkp.js diff
    Resolve undetected or infinitely-retried socket-send failures My hub (1:218/700) is currently having what appears to be a TCP/IP connectivity issue that was resulting in infinite "Send failure" log messages and "We got an M_EOB, but there are still N files pending M_GOT" log messages. I first added better socket-send failure detection (checking return value of sendCmd() and sendData() where needed) and then noticed that failure to send a file was not detected (the sending.file.position is advanced even if sendData() fails), so now handling that condition too. Also added more diagnostics around socket-send failures (is socket writable?) in this particular case, the socket is not writable and socket-send is returning 0.

  325. Rob Swindell
    Mon Oct 24 2022 15:46:59 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/postmsg.cpp diff
    Strip control chars/ctrl-A sequences from msg subject in notify() We may want Ctrl-A sequences in the telegram subject, but not in the message subject

  326. Rob Swindell
    Mon Oct 24 2022 15:48:00 GMT-0700 (PDT)
    Modified Files:
    

    exec/newuser.js diff
    More user details in the new user sysop-notification message This adds a Ctrl-A code in the notification subject, so needs latest postmsg.cpp or that Ctrl-A code will end up in your email/inbox too (not really supported or stripped when sent over POP/SMTP).

  327. Randy Sommerfeld
    Sun Oct 23 2022 18:16:59 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/ircd/unregistered.js diff
    Detect local addresses a bit better

  328. Rob Swindell
    Sun Oct 23 2022 11:28:24 GMT-0700 (PDT)
    Modified Files:
    

    exec/newuser.js diff
    Add a 'notify_sysop' option (set to true or a user number in modopts.ini) Will notify the sysop via email and telegram when a new user account has been created. For Morpheus (MORPHEUS)

  329. Rob Swindell
    Sat Oct 22 2022 19:00:40 GMT-0700 (PDT)
    Modified Files:
    

    exec/newuser.js diff
    Make the "ask qnet" language even more clear/alarmist Somehow, new users on Vertrauen *still* manage to answer "Yes" to both the QWK Networking account questions, accidentally creating a QWKnet account that's not useful for normal BBS user activities. So print a very clear "alert" style message making it even-more clear that the account they are creating will ONLY be useful for QWK Networking activities.

  330. Rob Swindell
    Sat Oct 22 2022 19:00:40 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/newuser.cpp diff
    Don't complain about lack of comma in new user's location ... unless a comma is actually required.

  331. Rob Swindell
    Sat Oct 22 2022 11:02:17 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ansiterm.cpp diff
    Fix CID 319174 (Out-of-bounds write) correctly This Coverity reported issue was previously resolved (incorrectly) with commit 0c441424 which also introduced a bug that ate all the unexpected cursor position report characters (causing issue #304). The correct fix was to compare the response length against the buffer size minus one, to leave room for the NUL terminator. While fixing this and issue #304, I noticed that this function was using the response length ('rsp') as both the state machine state and string length, which didn't work right if a nearly-matching report/response was received: the x/y values would have been stripped from the response before stuffing in the keyboard input buffer. So a bit of a refactor here using a proper state machine variable.

  332. Rob Swindell
    Fri Oct 21 2022 12:03:14 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/chat.cpp diff
    Fix-up the recently-added debug/error log messages I didn't look closely enough at which write() call I was instrumenting. This is now more useful, though I think we already found the root-cause based on different log output ("Unexpected ansi_getxy response").

  333. Rob Swindell
    Fri Oct 21 2022 12:04:41 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ansiterm.cpp diff
    Fix lost 'unexpected characters' received in ANSI get cursor position response Unexpected characters received (maybe typed by the user) were supposed to be stuffed in the keyboard input buffer using ungetstr(), but the input string was cleared rather than NUL-terminated before logging the expected character and calling ungetstr(), so nothing (a blank string) was logged and nothing was stuffed in the keyboard input-buffer in this case. Just an off-by-one bug. This should fix issue #304. Thanks to Keyop and Nelgin for their persistence in reporting and testing (in #synchronet at irc.synchro.net).

  334. Rob Swindell
    Thu Oct 20 2022 20:56:34 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/chat.cpp diff
    Don't log debug msgs when reading 0 (\x00) from chat.dab file, expected This just resulted in a lot of unhelpful noise in the log output

  335. Rob Swindell
    Thu Oct 20 2022 20:37:49 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/chat.cpp diff
    Add error and debug level log messages to private chat When reading and writing characters to chat files, log each with a debug-level log message. If a read or a write fails, log with an error-level log message. This will hopefully help root-cause and resolve issue #304.

  336. Rob Swindell
    Wed Oct 19 2022 20:35:22 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/asc2ans.c diff
    Update comment header block

  337. Rob Swindell
    Wed Oct 19 2022 20:29:08 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_server.c diff
    Clean up comment header block

  338. Rob Swindell
    Wed Oct 19 2022 14:23:17 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_filebase.c diff
    src/sbbs3/js_msgbase.c diff
    Fix JSDOC typos

  339. Deucе
    Wed Oct 12 2022 11:04:58 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/cterm.c diff
    Continue fixing a coverity issue.

  340. Rob Swindell
    Mon Oct 10 2022 17:08:11 GMT-0700 (PDT)
    Modified Files:
    

    src/comio/comio.h diff
    src/comio/comio_win32.c diff
    Add comDrainOutput() for Win32 Untested, but matches implementation from https://github.com/veeso/termiWin/blob/master/src/termiWin.c and declare function in comio.h

  341. Rob Swindell
    Mon Oct 10 2022 15:13:12 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/netmail.cpp diff
    src/sbbs3/scfglib.h diff
    src/sbbs3/scfglib1.c diff
    Use nearest-zone matching for source FTN address when replying to netmail Rather than only matching exact zone numbers as a final "nearest" address search, use a "nearest zone" matching algorithm ("nearest" being the most mathematically near). This way, replying to netmail from a zone 2 address would always match a zone 1 source address, regardless of how many othernet addresses are configured and which order they are configured in SCFG. Fixes issue #447 reported by Charles Blackburn (FBOBBS)

  342. Rob Swindell
    Sat Oct 08 2022 20:02:14 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/xtrn_sec.cpp diff
    Don't require USE_DOSEMU for DOS-compatible drive mappings in xtrn.dat We no longer use/require the USE_DOSEMU definition anywhere else, so this was just a miss when the DOSEMU patch was perm-enabled.

  343. Deucе
    Sat Oct 08 2022 12:14:57 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/netwrap.h diff
    Fix warning anywhere netwrap.h is included before sockwrap.h sbbs3/../xpdev/netwrap.h:45:27: warning: 'parseIPv6Address' has C-linkage specified, but returns incomplete type 'struct in6_addr' which could be incompatible with C [-Wreturn-type-c-linkage] DLLEXPORT struct in6_addr parseIPv6Address(const char*); ^

  344. Deucе
    Sat Oct 08 2022 12:05:48 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/cterm.c diff
    src/syncterm/bbslist.c diff
    src/syncterm/ripper.c diff
    src/syncterm/rlogin.c diff
    src/syncterm/term.c diff
    Update to new Coverity Scan, fix new High impact issues New Medium impact and a low impact issue still needs to be triaged.

  345. Rob Swindell
    Fri Oct 07 2022 18:31:59 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/xtrn.cpp diff
    When user hangs-up on external programs on *nix, try to terminate w/SIGTERM Previously, when a user disconnected or ran out of time while running a stdio-based external program on *nix, if the program was still running, we'd send it a SIGHUP, wait up to 10 seconds for the process to terminate and if it did not, terminate it (ungracefully) with SIGKILL. Since some programs catch SIGTERM (and not SIGHUP) to indicate a termination request, we now will first attempt a SIGHUP, wait up to 5 seconds for the process to terminate and if it does not, then send a SIGTERM and wait up to another 5 seconds for it to terminate and if it doesn't, then finally send it a SIGKILL (which cannot be caught and always results in an ungraceful termination of the child process). This doesn't resolve any specific problem with any specific stdio-based external program, but I was playing around with ESR's port of Adventure (https://gitlab.com/esr/open-adventure) and a new auto-save/restore of game state and noticed that we weren't using SIGTERM for this situation, though we should have. Most modern programs, if they catch SIGHUP at all, use it to indicate a refresh of configuration or data files, not a termination request (or indication that a user has "hung up"). So SIGTERM is more reasonable to be expected to be caught and initiate the graceful termination of the child program that we're hoping for.

  346. Rob Swindell
    Thu Oct 06 2022 19:10:37 GMT-0700 (PDT)
    Modified Files:
    

    exec/letsyncrypt.js diff
    Recycle all servers/services after updating certificate Per Deon (ALTERANT) via DOVE-Net: Oct 7 09:47:16 d-11-1 synchronet: srvc 0060 BINKPS connection accepted from: 2402:1f00:8101:b3c:1000::2 port 55338 Oct 7 09:47:16 d-11-1 synchronet: srvc 0060 BINKPS TLS ERROR 'Server certificate has expired' (-3) setting private key Oct 7 09:47:16 d-11-1 synchronet: srvc 0060 BINKPS TLS ERROR 'Data has not been initialised' (-11) setting session active Which was odd, because my cert was renewed. I forced renewed it, and confirmed it was valid, but they were still failing. I noticed that letsyncrypt only recycles the web, which is probably the issue. Once I recycled everything, binkps connections started working again.

  347. Rob Swindell
    Tue Oct 04 2022 14:27:44 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_socket.c diff
    Check socket writability in JS Socket.send() BINKP is suddenly frequently hanging on sendsocket() on Vertrauen on Windows (sending files to my Z1 hub) so try this as a solution.

  348. Deucе
    Thu Sep 29 2022 15:38:40 GMT-0700 (PDT)
    Modified Files:
    

    exec/imapservice.js diff
    Handle invalid credentials in imapservice Fixes #401

  349. Deucе
    Thu Sep 29 2022 15:35:11 GMT-0700 (PDT)
    Modified Files:
    

    exec/lbshell.js diff
    Check undefined. Fixes #368

  350. Eric Oulashin
    Fri Sep 23 2022 21:29:58 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    DDMsgReader: Added a mouse click hotspot for ? for message list mode

  351. Rob Swindell
    Fri Sep 23 2022 21:29:58 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Merge branch 'dd_msg_reader_msg_list_help_hotspot' into 'master' DDMsgReader: Added a mouse click hotspot for ? for message list mode See merge request main/sbbs!210

  352. Eric Oulashin
    Fri Sep 23 2022 15:19:46 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: Refactored how email replies are done (passing the header to the appropriate functions, not using ungetstr() when prompting for the message subject

  353. Rob Swindell
    Fri Sep 23 2022 15:19:47 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_email_reply_update' into 'master' DDMsgReader: Refactored how email replies are done (passing the header to the appropriate functions, not using ungetstr() when prompting for the message subject See merge request main/sbbs!209

  354. Rob Swindell
    Fri Sep 16 2022 18:52:52 GMT-0700 (PDT)
    Modified Files:
    

    exec/chksetup.js diff
    Check user #1 (sysop) exemptions and restrictions against expectations

  355. Rob Swindell
    Fri Sep 16 2022 18:53:50 GMT-0700 (PDT)
    Modified Files:
    

    exec/testbuild.js diff
    Need to manually run gitinfo.bat

  356. Rob Swindell
    Fri Sep 16 2022 18:54:58 GMT-0700 (PDT)
    Modified Files:
    

    exec/freqitcfg.js diff
    Insure call to uifc.bail() when exiting

  357. Rob Swindell
    Fri Sep 16 2022 18:55:23 GMT-0700 (PDT)
    Modified Files:
    

    exec/ircmsg.js diff
    Extra message delivery insurance as recommended by Cyan months ago

  358. Rob Swindell
    Fri Sep 16 2022 18:55:57 GMT-0700 (PDT)
    Modified Files:
    

    exec/addfiles.js diff
    Document -auto option

  359. Rob Swindell
    Fri Sep 16 2022 18:30:12 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cnfdefs.js diff
    qhub_t node->node_num naming to more consistent with other objs

  360. Rob Swindell
    Fri Sep 16 2022 16:45:19 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Fix crash when cleanup() was called twice in a row, e.g. load_cfg failure Need to nullify the xpms after destroying/freeing (as is done in other servers already).

  361. Rob Swindell
    Thu Sep 15 2022 20:19:00 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cnfdefs.js diff
    Add new/missing 'errlevel' field for timed events

  362. Eric Oulashin
    Fri Sep 09 2022 20:51:50 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/dd_lightbar_menu.js diff
    Removed temporary debug code that accidentally made it in last commit

  363. Rob Swindell
    Sun Sep 11 2022 15:53:25 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/dd_lightbar_menu.js diff
    Merge branch 'dd_lightbar_menu_remove_temp_debug_code' into 'master' Removed temporary debug code that accidentally made it in last commit See merge request main/sbbs!208

  364. Rob Swindell
    Sat Sep 10 2022 17:14:03 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/viewfile.cpp diff
    viewfile() now uses case-corrected file path Sometimes files uploaded may have the wrong case in the filebase (a different unresolved issue), but for instances where that has happened, make those files viewable in sbbs. This really only impacts target OSes with case-sensitive file systems (e.g. *nix).

  365. Rob Swindell
    Fri Sep 02 2022 18:50:36 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/atcodes.cpp diff
    Fix negative MSG_SCORE @-code on 64-bit (*nix) builds As reported by Android8675 (SHODAN) on DOVE-Net. This problem did not manifest itself in 32-bit builds.

  366. Rob Swindell
    Sun Aug 21 2022 18:35:32 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/services.c diff
    Improve JavaScript-related error messages and fix potential JS runtime leak If a new JS context could not be created for any reason, a JS runtime would still be allocated (and leaked), potentially leading to out of memory situations which had been seen (before this change) on vert.synchro.net.

  367. Rob Swindell
    Sun Aug 21 2022 18:35:32 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Improve JavaScript-related error messages

  368. Eric Oulashin
    Fri Aug 19 2022 18:08:07 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Set the control key pass-thru so that some hotkeys (such as Ctrl-P for PageUp) only get caught by the scripts.

  369. Rob Swindell
    Fri Aug 19 2022 18:48:11 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Merge branch 'DD_area_choosers_ctrl_key_passthru' into 'master' Set the control key pass-thru so that some hotkeys (such as Ctrl-P for PageUp) only get caught by the scripts. See merge request main/sbbs!207

  370. Rob Swindell
    Sat Aug 13 2022 14:03:47 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ctrl/MainFormUnit.cpp diff
    src/sbbs3/nopen.c diff
    src/sbbs3/nopen.h diff
    fwritelog() will now auto-close a log file when it reaches the max size

  371. Rob Swindell
    Sat Aug 13 2022 00:24:17 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/nopen.c diff
    src/sbbs3/nopen.h diff
    Create fwritelog() to go along with fopenlog() and fcloselog() The functions aren't DLL-exported, so the difference in FILE* support between an app and a library is not an issue... yet, but it could be someday, so just for good measure.

  372. Rob Swindell
    Sat Aug 13 2022 00:35:52 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ctrl/MainFormUnit.cpp diff
    src/sbbs3/ctrl/MainFormUnit.dfm diff
    src/sbbs3/ctrl/MainFormUnit.h diff
    src/sbbs3/ctrl/TelnetCfgDlgUnit.cpp diff
    src/sbbs3/ctrl/TelnetCfgDlgUnit.dfm diff
    src/sbbs3/ctrl/TelnetCfgDlgUnit.h diff
    src/sbbs3/ctrl/sbbsctrl.bpr diff
    Add "Log Events to Disk" option/checkbox for terminal server "Events" The "Events" log messages will now be logged to a disk file in data/events*.log by default (unless this option is disabled). If the "First node" is > 1, then the base filename will be "events<first-node>", otherwise, it's just "events". This is because you would not want multiple instances of sbbs writing to the same events.log file - that would be chaos. These log files are subject the log rotation/retention policy defined in SCFG. This should resolve the FAQ for Windows sysops about what log file to which their event log messages are being written.

  373. Rob Swindell
    Thu Aug 11 2022 12:20:08 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    matchuser() now always returns 0 when passed an empty 'name' Also, don't match against deleted (blank) usernames in name.dat (e.g. when 'name' value consists of a single ETX character).

  374. Rob Swindell
    Tue Aug 09 2022 20:57:38 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfgsys.c diff
    For SIF output file (SOF) code to upper case

  375. Rob Swindell
    Tue Aug 09 2022 19:37:37 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Log message improvements: include protocol (HTTP vs HTTPS) and IP address

  376. Eric Oulashin
    Mon Aug 08 2022 20:03:57 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit.js diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    Used js.on_exit() to set console.ctrlkey_passthru back on exit properly (SlyEdit, DDMsgReader) and bbs.sys_status (SlyEdit)

  377. Rob Swindell
    Mon Aug 08 2022 21:27:46 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit.js diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    Merge branch 'slyedit_ddmsgreader_js_on_exit_ctrl_passthru_sys_status' into 'master' Proper use of js.on_exit() in DDMsgReader and SlyEdit See merge request main/sbbs!206

  378. Eric Oulashin
    Sun Aug 07 2022 19:01:19 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader v1.54: Users now have a personal twit list (configurable via Ctrl-U, user settings).

  379. Rob Swindell
    Sun Aug 07 2022 19:01:19 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_personal_twit_list' into 'master' DDMsgReader v1.54: Users now have a personal twit list (configurable via Ctrl-U, user settings). See merge request main/sbbs!205

  380. Rob Swindell
    Thu Aug 04 2022 18:24:35 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cnfdefs.js diff
    Updates to xedit_t and xtrnsec_t definitions (out of date)

  381. Rob Swindell
    Wed Aug 03 2022 20:59:41 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfgchat.c diff
    Fix crash when a chat channel references an invalid chat action set When there are no chat action sets or an action set has been deleted, bad things would happen (e.g. segfault) when listing chat channels.

  382. Rob Swindell
    Wed Aug 03 2022 18:09:35 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Update log messages for execle() or fork() failures To be more consistent in syntax and include more details (e.g. the command being invoked).

  383. Rob Swindell
    Tue Aug 02 2022 17:20:24 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/filedat.c diff
    Check max_files value in extract_files_from_archive() better Address issue reported by Nightfox via DOVE-Net: Today I was using the Archive class to extract exactly one file from a zip file, and I'm a little confused on the exception throwing behavior regarding the max_files parameter. When calling extract(), I gave it a filename pattern and expected exactly 1 file to be extracted, so I also gave a max_files argument as 1. It extracted the one file, but it threw an exception with the error "Error: maximum number of files (1) extracted (after extracting 1 item successfully)". Should that be an error condition to throw an exception? I expected 1 file to be extracted, and that file was extracted successfully. If I specify max_files as 2, then it doesn't throw an exception.

  384. Rob Swindell
    Sat Jul 23 2022 15:21:37 GMT-0700 (PDT)
    Modified Files:
    

    exec/sbbslist.js diff
    Update logic for deciding if user can delete/edit entries Local sysop can always deleted/edit entries (now). Fixed checking of can_edit() return value (string or true), fixed issue #425 as reported by Craig Hendricks (thank you)

  385. Eric Oulashin
    Mon Jul 18 2022 20:31:08 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: Deleted messages can now be un-marked for deletion from the message list with the U key (if the user has delete permissions). Also, the reader now honors the system setting for whether users can view deleted messages.

  386. Rob Swindell
    Sat Jul 23 2022 14:59:21 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_undelete_msgs' into 'master' DDMsgReader: Deleted messages can now be un-marked for deletion from the message list with the U key (if the user has delete permissions). Also, the reader now honors the system setting for whether users can view deleted messages. See merge request main/sbbs!203

  387. Eric Oulashin
    Sat Jul 23 2022 13:13:11 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    DD area choosers: Updated the lightbar help text to be more consistent with DDMsgReader

  388. Rob Swindell
    Sat Jul 23 2022 14:59:12 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    Merge branch 'dd_area_choosers_lightbar_help_rearrange' into 'master' DD area choosers: Updated the lightbar help text to be more consistent with DDMsgReader See merge request main/sbbs!204

  389. Rob Swindell
    Sat Jul 16 2022 17:41:05 GMT-0700 (PDT)
    Modified Files:
    

    exec/xtrn_sec.js diff
    Don't treat Enter as choosing default section when no prompt was shown As pointed out via DOVE-Net by DesotoFireflite (VALHALLA): When xtrn_sec.* display file/menu is used, there's no auto-generated prompt (with a default section number indicated). So hitting Enter in this case and having the previous/default program section selected would be surprising behavior to a user. So, only support a default section selection when there was no xtrn_sec.* menu/display file.

  390. Rob Swindell
    Thu Jul 14 2022 17:52:24 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cnflib.js diff
    Strip 0xff chars from strings read from .cnf files Some unused/padding bytes are written as 0xff, so don't build strings from those chars.

  391. Rob Swindell
    Wed Jul 13 2022 23:24:56 GMT-0700 (PDT)
    Modified Files:
    

    src/uifc/uifc32.c diff
    Don't print the up arrow if the list is empty

  392. Rob Swindell
    Wed Jul 13 2022 23:26:07 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cnfdefs.js diff
    Support the old 32-bit free-credits-per-day field, for upgrading old cnf files

  393. Rob Swindell
    Wed Jul 13 2022 23:32:53 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    Don't allow strings that contain 0xFF (truncate at this char value) 1. It's a non-printable char 2. It's the Telnet IAC byte value 3. CNF files use this as an "uninitialized value" indicator

  394. Rob Swindell
    Sun Jul 10 2022 14:25:53 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Eliminate newly-unused variable: addr_str Fixes issue #421

  395. Eric Oulashin
    Sat Jul 09 2022 19:12:06 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: Mouse click support for the bottom help lines in scrollable mode (thanks to help from Nelgin)

  396. Rob Swindell
    Sat Jul 09 2022 19:12:06 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_scrollable_mouse_click_hotspots' into 'master' DDMsgReader: Mouse click support for the bottom help lines in scrollable mode (thanks to help from Nelgin) See merge request main/sbbs!202

  397. Rob Swindell
    Fri Jul 08 2022 16:43:49 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    src/xpdev/netwrap.c diff
    Don't use inet_ntop() on Windows as XP didn't include it As reported by cadeon on Vertrauen, Synchronet v3.19 hasn't worked on Windows XP due to error: 'The procedure entry point inet_ntop could not be located in the dynamic link library WS2_32.dll'

  398. Rob Swindell
    Fri Jul 08 2022 16:43:49 GMT-0700 (PDT)
    Modified Files:
    

    3rdp/win32.release/libarchive/bin/archive.dll diff
    libarchive v3.5.1 built for Windows without bcrypt.dll dependency Accomplished by manually removing #define HAVE_BCRYPT_H 1 from config.h and rebuilding using MSVC/Visual Studio IDE. Try as I might I couldn't get the CMakeLists.txt changes (e.g. setting ENABLE_CNG to OFF) to take effect, but this seems to have worked. Why? Because Windows XP didn't include bcrypt.dll (a Microsoft DLL) and we don't really need it as we don't support password-protected ZIP files anyway. <shrug>

  399. Eric Oulashin
    Thu Jul 07 2022 16:45:05 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/SlyEdit.cfg diff
    Changed the saveColorsAsANSI value to false. Synchronet does not word-wrap messages with ANSI.

  400. Rob Swindell
    Thu Jul 07 2022 18:05:05 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/SlyEdit.cfg diff
    Merge branch 'slyedit_cfg_save_attrs_as_ansi_false' into 'master' SlyEdit.cfg: Changed the saveColorsAsANSI value to false. Synchronet does not word-wrap messages with ANSI. See merge request main/sbbs!200

  401. Eric Oulashin
    Thu Jul 07 2022 17:00:36 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Fixed a few errors (a couple related to "use strct", and a couple new errors related to deleting a message, upvoting, and viewing tallies).

  402. Rob Swindell
    Thu Jul 07 2022 18:04:55 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Merge branch 'dd_msg_reader_fix_errors_deleting_upvoting_view_tallies' into 'master' DDMsgReader: Fixed a few errors (a couple related to "use strct", and a couple new errors related to deleting a message, upvoting, and viewing tallies). See merge request main/sbbs!201

  403. Rob Swindell
    Thu Jul 07 2022 11:57:40 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/modopts.ini diff
    Disable web new user registrations by default to match wiki http://wiki.synchro.net/config:webv4

  404. Eric Oulashin
    Thu Jul 07 2022 09:17:28 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    DDMsgReader: Fix for undeclared variable assignment when saving a message to the BBS machine

  405. Rob Swindell
    Thu Jul 07 2022 10:54:51 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Merge branch 'dd_msg_reader_save_to_bbs_machine_undeclared_assignment_fix' into 'master' DDMsgReader: Fix for undeclared variable assignment when saving a message to the BBS machine See merge request main/sbbs!199

  406. Rob Swindell
    Wed Jul 06 2022 21:54:02 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cnfdefs.js diff
    Better alignment of names with JS object model. Other fixes.

  407. Rob Swindell
    Wed Jul 06 2022 21:22:53 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/genwrap.c diff
    Fix for previous commit and escaped char values > 127 (0x7F)

  408. Rob Swindell
    Wed Jul 06 2022 21:18:25 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/genwrap.c diff
    Escape chars >= 0x7f too (DEL and ex-ASCII/UTF-8 and whatnot)

  409. Eric Oulashin
    Wed Jul 06 2022 19:55:28 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    DD file area chooser: Lightbar mode fix for not actually moving to the user's selected directory when directly choosing a directory in their library

  410. Rob Swindell
    Wed Jul 06 2022 20:09:23 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Merge branch 'dd_file_area_chooser_direct_dir_lightbar_fix' into 'master' DD file area chooser: Lightbar mode fix for not actually moving to the user's selected directory when directly choosing a directory in their library See merge request main/sbbs!198

  411. Rob Swindell
    Wed Jul 06 2022 18:36:57 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/echocfg.c diff
    src/sbbs3/uedit/uedit.c diff
    src/sbbs3/umonitor/umonitor.c diff
    src/syncterm/syncterm.c diff
    Support the -insert (instead of overwrite kbrd mode) option in more UIFC apps I think this is what nelgin/Keyop was asking for via IRC.

  412. Rob Swindell
    Wed Jul 06 2022 18:23:10 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/readmsgs.cpp diff
    Fix: message numbers listed with 'H' reading msgs command Broken in commit 082a9fce 3 years ago, the 'H' (highest ranked) message listing was showing the rank of the message (e.g. 1-20) instead of the message number itself.

  413. Rob Swindell
    Wed Jul 06 2022 18:23:10 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/xtrn.cpp diff
    Don't log error opening DOSXTRN.RET when terminating an external If we detect a client disconnection and terminate DOSXTRN.EXE, don't try to open DOSXTRN.RET and log an error when the file doesn't exist (as would be expected).

  414. Rob Swindell
    Wed Jul 06 2022 18:23:10 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfgchat.c diff
    src/sbbs3/scfg/scfgnet.c diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfg/scfgxfr1.c diff
    src/sbbs3/scfg/scfgxtrn.c diff
    Support left/right arrow key cycling through more multi-item menus

  415. Rob Swindell
    Tue Jul 05 2022 23:44:32 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cnfdefs.js diff
    exec/load/cnflib.js diff
    Define structures for node.cnf

  416. Rob Swindell
    Tue Jul 05 2022 22:28:06 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cnfdefs.js diff
    exec/load/cnflib.js diff
    Define structures for chat.cnf

  417. Rob Swindell
    Tue Jul 05 2022 21:43:06 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cnfdefs.js diff
    A few property name updates to be more aligned with JS obj model

  418. Eric Oulashin
    Tue Jul 05 2022 19:57:31 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    DDMsgReader: Fix for undefined bottomMsgIndex when going to a message in the lightbar list, and strict mode fixes

  419. Rob Swindell
    Tue Jul 05 2022 19:57:32 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Merge branch 'dd_msg_reader_strict_fixes' into 'master' DDMsgReader: Fix for undefined bottomMsgIndex when going to a message in the lightbar list, and strict mode fixes See merge request main/sbbs!197

  420. Rob Swindell
    Tue Jul 05 2022 15:26:24 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/con_out.cpp diff
    src/sbbs3/putmsg.cpp diff
    src/sbbs3/sbbs.h diff
    Support @-codes in text centered with the CENTER @-code Note: this centering logic does not know the expanded-size of the @-code, so use a fixed-length @-code (e.g. with padding) or use the 'C' @-code format modifier instead. Fix issue #418

  421. Eric Oulashin
    Tue Jul 05 2022 11:38:58 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: Scrolling ANSI and "use strict" improvements Graphic is now only used when using the scrollable interface. Also, when creating the Graphic, now subtracting 1 from the reading area height to avoid making the Graphic one line too tall to avoid unnecessary scrolling. When saving messages with ANSI codes, Graphic is only used if the message has any ASCII drawing characters. (not sure if this really matters much though). Also, applied "use strict" and made some changes as necessary.

  422. Rob Swindell
    Tue Jul 05 2022 12:58:35 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_ansi_and_strict_improvements' into 'master' DDMsgReader: Scrolling ANSI and "use strict" improvements See merge request main/sbbs!195

  423. Rob Swindell
    Tue Jul 05 2022 12:23:16 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/readmsgs.cpp diff
    src/sbbs3/sbbs.h diff
    Always advance to next message after deleting a message Also, the logic to check if the user could even view deleted messages (on line 912) was wrong, replace with new method: can_view_deleted_msgs(). As requested by deon (ALTERANT).

  424. Eric Oulashin
    Mon Jul 04 2022 14:33:42 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/SlyDCTColors_Default.cfg diff
    ctrl/SlyDCTColors_Midnight.cfg diff
    ctrl/SlyEdit.cfg diff
    ctrl/SlyIceColors_BlueIce.cfg diff
    ctrl/SlyIceColors_EmeraldCity.cfg diff
    ctrl/SlyIceColors_FieryInferno.cfg diff
    ctrl/SlyIceColors_Fire-N-Ice.cfg diff
    ctrl/SlyIceColors_GenericBlue.cfg diff
    ctrl/SlyIceColors_PurpleHaze.cfg diff
    ctrl/SlyIceColors_ShadesOfGrey.cfg diff
    docs/SlyEdit_ReadMe.txt diff
    exec/SlyEdit.js diff
    exec/SlyEdit_Misc.js diff
    SlyEidt: Added the ability for the user to choose text color/attribute codes.

  425. Rob Swindell
    Mon Jul 04 2022 14:33:42 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/SlyDCTColors_Default.cfg diff
    ctrl/SlyDCTColors_Midnight.cfg diff
    ctrl/SlyEdit.cfg diff
    ctrl/SlyIceColors_BlueIce.cfg diff
    ctrl/SlyIceColors_EmeraldCity.cfg diff
    ctrl/SlyIceColors_FieryInferno.cfg diff
    ctrl/SlyIceColors_Fire-N-Ice.cfg diff
    ctrl/SlyIceColors_GenericBlue.cfg diff
    ctrl/SlyIceColors_PurpleHaze.cfg diff
    ctrl/SlyIceColors_ShadesOfGrey.cfg diff
    docs/SlyEdit_ReadMe.txt diff
    exec/SlyEdit.js diff
    exec/SlyEdit_Misc.js diff
    Merge branch 'slyedit_color_selection_update' into 'master' SlyEidt: Added the ability for the user to choose text color/attribute codes. See merge request main/sbbs!193

  426. Eric Oulashin
    Sun Jul 03 2022 16:39:57 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    DD file area chooser fix: Listing libraries without first listing directories within the user's current library (with directory collapsing) works again

  427. Rob Swindell
    Mon Jul 04 2022 14:21:55 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Merge branch 'dd_file_area_chooser_list_libraries_fix' into 'master' DD file area chooser fix: Listing libraries without first listing directories... See merge request main/sbbs!194

  428. Rob Swindell
    Sun Jul 03 2022 21:32:06 GMT-0700 (PDT)
    Modified Files:
    

    exec/avatar_chooser.js diff
    exec/ftn-setup.js diff
    exec/load/mouse_getkey.js diff
    exec/load/tree.js diff
    exec/xtrn-setup.js diff
    xtrn/minesweeper/minesweeper.js diff
    Use Synchronet's built-in mouse tracking support Synchronet uses "extended normal" mouse reporting for mouse support (e.g. menu/display file clickable "hot spots"). Many of the JS scripts that predated Synchronet's own internal mouse support would send their own mouse-reporting enablement and disablement ANSI sequences and the terminal could become out of sync with the expectations of the script (i.e. it would not necessarily disable the mouse modes that had been set by SBBS before enabling its own preferred mode). And some scripts (e.g. Synchronet Minesweeper) use a mixture of Synchronet hotspot support and direct mouse click coordinate reporting, so it was a mess going between different mouse reporting modes at different times in the same script. This all came to light as a result of the fix for issue #412: using mouse button releases rather than presses to trigger a hotspot. So mouse_getkey() now has as a separate "release" property it sets in the return value. Right now its always the opposite of "press", but I can imagine some mouse tracking modes where movement might be reported with neither a button press nor release event. Anyway, Nelgin, give this a try and see if it resolves the issues you were reporting in IRC with avatar chooser mouse support.

  429. Rob Swindell
    Sun Jul 03 2022 20:49:16 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/inkey.cpp diff
    src/sbbs3/js_console.cpp diff
    src/sbbs3/sbbs.h diff
    Setting console.mouse_mode to true enables default mouse=enabled mode A single source of truth is now used for SBBS's mouse mode (MOUSE_MODE_ON). A JS script doesn't need to know what SBBS's preferred/default mouse-enabled mode flags are, just set to this property to "true". Setting to "false" is the same as setting to MOUSE_MODE_OFF (0).

  430. Rob Swindell
    Sun Jul 03 2022 16:01:58 GMT-0700 (PDT)
    Modified Files:
    

    exec/xtrn_sec.js diff
    Add a carriage-return to the mouse hotspot value when needed For program listings, if the program number is fewer digits than the total program list count (number of digits), then a carriage return is required to launch that program. Automate this for the mouse hotspot value, so clicking Program #1 in a list of 10+ will just run that program and not require the user to hit the Enter key.

  431. Rob Swindell
    Sun Jul 03 2022 15:47:02 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/writemsg.cpp diff
    Fix smb.subnum corruption in writemsg() Fix issue introduced 9 years ago that could cause a crash after replying to a post via email or netmail and then displaying the header of a poll message or a normal message with votes: Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f9f9569a317 in sbbs_t::show_msg (this=0x7f9f70c56880, smb=0x7f9f70c5e4e0, msg=0x7f9ebadf08b0, p_mode=4, post=0x7f9f18071a24) at getmsg.cpp:255 255 ,cfg.sub[smb->subnum]->misc&SUB_ NAME ? useron.name : useron.alias, NET_NONE, NULL); [Current thread is 1 (Thread 0x7f9ebadf3700 (LWP 23279))] (gdb) print smb->subnum $1 = 4294967295 (gdb) bt #0 0x00007f9f9569a317 in sbbs_t::show_msg (this=0x7f9f70c56880, smb=0x7f9f70c5e4e0, msg=0x7f9ebadf08b0, p_mode=4, post=0x7f9f18071a24) at getmsg.cpp:255 #1 0x00007f9f957b2aee in sbbs_t::scanposts (this=0x7f9f70c56880, subnum=9, mode=2, find=0x7f9ebadf1270 "") at readmsgs.cpp:670 #2 0x00007f9f957bb75a in sbbs_t::scanallsubs (this=0x7f9f70c56880, mode=2) at scansubs.cpp:219 #3 0x00007f9f9568c948 in sbbs_t::exec_msg (this=0x7f9f70c56880, csi=0x7f9f70c64768) at execmsg.cpp:315 #4 0x00007f9f95683129 in sbbs_t::exec_function (this=0x7f9f70c56880, csi=0x7f9f70c64768) at execfunc.cpp:422 #5 0x00007f9f95679450 in sbbs_t::exec (this=0x7f9f70c56880, csi=0x7f9f70c64768) at exec.cpp:1199 #6 0x00007f9f9577d742 in node_thread (arg=0x7f9f70c56880) at main.cpp:4364 writemsg() was changing the global smb.subnum and when writing an email or netmail, that subnum value is -1 (since it's not a sub-board) and then later show_msg() is using the smb.subnum as a index into scfg.sub[] when determining if the current user already voted on the message being displayed and then: bang, crash, fall down, go boom. Simply saving and restoring the smb.subnum when executing an external editor is all that was needed here. And this is the first use of the C++ "auto" keyword in Synchronet!

  432. Rob Swindell
    Sun Jul 03 2022 15:55:49 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getmsg.cpp diff
    Paranoia around use of smb.subnum as an index into scfg.sub[] Use the is_valid_subnum() function before using the smb.subnum as an index into (s)cfg.sub[]. Related to the previous committed fix of writemsg(): leaving the global smb.subnum as -1 (INVALID_SUB) after replying to a post via email or netmail, resulting in a crash here.

  433. Rob Swindell
    Sat Jul 02 2022 22:21:55 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/inkey.cpp diff
    Use mouse button release rather than press to activate a hotspot As described in issue #412, when using extended mouse coordinate (SGR) mode, the mouse button release sequence would be received by the BBS after the hotspot-activated menu option was executed and then that button release sequence possibly passed through to the a child script or program that didn't know how to handle or ignore it. To resolve this, the BBS now ignores ("eats") the mouse button *press* sequence and only acts upon the mouse button *release* sequence. This is more aligned with how button-clicks work in mouse-control/GUI applications anyway.

  434. Rob Swindell
    Sat Jul 02 2022 12:22:04 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/xtrn.cpp diff
    Add EXECDIR, DATADIR, and XTRNDIR to DOSemu command replacement tokens As requested. This closes issue #416

  435. Rob Swindell
    Mon Jun 27 2022 21:44:07 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbs.h diff
    src/sbbs3/xtrn.cpp diff
    Fix Win32 build - we don't #include stdbool.h in sbbs.h

  436. Eric Oulashin
    Sat Jun 25 2022 11:24:34 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit_Misc.js diff
    Fixed a couple of undefined variable errors. Also, changed "new Object();" and related syntax to literal object definitions, and similar for arrays.

  437. Rob Swindell
    Mon Jun 27 2022 20:15:41 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit_Misc.js diff
    Merge branch 'slyedit_undeclared_vars_2022-06-25' into 'master' Fixed a couple of undefined variable errors. See merge request main/sbbs!192

  438. Rob Swindell
    Sat Jun 25 2022 21:09:59 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/xtrn.cpp diff
    Auto-detect (log) scripts/module execution as "native", not 16-bit DOS Address potential FAQ (issue #415)

  439. Rob Swindell
    Sat Jun 25 2022 18:47:11 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/inkey.cpp diff
    Indicate whether an SGR mouse button report is a press or release In the mouse debug log output. Potentially helpful in debugging mouse related issues when using the SGR mouse reporting mode.

  440. Rob Swindell
    Sat Jun 25 2022 18:09:18 GMT-0700 (PDT)
    Modified Files:
    

    exec/avatar_chooser.js diff
    Address conflict with Synchronet internal mouse support 1. Don't enable mouse support if the user's terminal is configured to not support it. 2. After calling bbs.receive_file() which displays a menu and uses sbbs's internal mouse support, which enables a different mouse reporting mode, disable the console.mouse_mode (sbbs's internal mouse support) before re-enabling the mouse support for the avatar_chooser's own custom mouse mode. Fix fixes issue #414 reported by Nelgin. 3. Fixed a typo in a message displayed to user if avatar upload failed.

  441. Rob Swindell
    Sat Jun 25 2022 17:19:51 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cnfdefs.js diff
    Add several missing fields that were added since v3.18 With one of the new fields being 64-bit, this lib now requires the updated File object that supports read/writing 64-bit binary integers too.

  442. Rob Swindell
    Sat Jun 25 2022 17:19:51 GMT-0700 (PDT)
    Modified Files:
    

    exec/logon.js diff
    Small optimization: don't write user.chat_settings if you don't need to

  443. Rob Swindell
    Sat Jun 25 2022 17:19:51 GMT-0700 (PDT)
    Modified Files:
    

    exec/webfileindex.ssjs diff
    Do the redir thing for all requests not ending in /, not just dirs

  444. Rob Swindell
    Sat Jun 25 2022 15:31:43 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_file.c diff
    src/xpdev/xpendian.h diff
    Add support for non-native endian 64-bit integers

  445. Rob Swindell
    Sat Jun 25 2022 15:19:57 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_file.c diff
    Add support for reading/writing 8-byte (64-bit) integers in binary files

  446. Rob Swindell
    Sat Jun 25 2022 13:34:12 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/text.js diff
    Add HashingFile and HashedFile text.dat enum values

  447. Rob Swindell
    Sat Jun 25 2022 13:35:06 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cnfdefs.js diff
    Fix: Some integer fields were defined as type:"str"

  448. Rob Swindell
    Sat Jun 25 2022 11:43:45 GMT-0700 (PDT)
    Modified Files:
    

    exec/avatar_chooser.js diff
    Avoid base64-decoding an empty user_avatar.data Fixes issue #413, at least the non-mouse related part. I was only able to reproduce it by trying to use the "Edit your avatar" menu item after choose "I don't want an avatar". This "I don't want" menu item is weird however and reappears when the user exits and reruns the chooser, so there's probably still some improvements needed with this menu item. The "Upload an avatar" menu item issue is likely totally unrelated. Please don't combine unrelated issues in the same bug report.

  449. Rob Swindell
    Fri Jun 24 2022 23:17:54 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    Fix issue with iniSet* functions and root section Bug introduced in commit 0d9111a5: iniSet* functions would write key/values to the end of the list when the root section (NULL) was specified, rather than the beginning of the list. The root section always starts at the beginning of the list/file, so I'm not sure why section_start() was doing anything other than returning 0 for the root section. It's possible this now breaks iniSortSections() in some way, so that should be retested with a file with a root section and named sections.

  450. Rob Swindell
    Fri Jun 24 2022 12:48:57 GMT-0700 (PDT)
    Modified Files:
    

    exec/webfileindex.ssjs diff
    Respond with redir when directory requests are received without trailing slash HTTP Directory requests without a trailing slash would "work" (the directory listing would be sent), but the links to files, since they're relative to the current request location, would be incorrect (missing the directory's virtual subdir). So send a 301 response if a client requets a directory without a trailing slash.

  451. Eric Oulashin
    Fri Jun 24 2022 10:31:41 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    DD file lister: Fix for assignment to undeclared variable in file description search

  452. Rob Swindell
    Fri Jun 24 2022 12:35:05 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    Merge branch 'dd_file_lister_desc_search_undeclared_variable_assignment_fix' into 'master' DD file lister: Fix for assignment to undeclared variable in file description search See merge request main/sbbs!191

  453. Rob Swindell
    Tue Jun 21 2022 16:23:08 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/sbbs.ini diff
    Remove DIR_FILES [ftp] Option, removed (no longer applicable) inv 3.19b

  454. Eric Oulashin
    Tue Jun 21 2022 10:12:44 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit.js diff
    exec/SlyEdit_DCTStuff.js diff
    exec/SlyEdit_IceStuff.js diff
    exec/SlyEdit_Misc.js diff
    exec/load/dd_lightbar_menu.js diff
    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/slyvote/readme.txt diff
    xtrn/slyvote/slyvote.js diff
    Updated dd_lightbar_menu.js and some Digital Distortion mods for strict mode & made some fixes

  455. Rob Swindell
    Tue Jun 21 2022 11:34:18 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit.js diff
    exec/SlyEdit_DCTStuff.js diff
    exec/SlyEdit_IceStuff.js diff
    exec/SlyEdit_Misc.js diff
    exec/load/dd_lightbar_menu.js diff
    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/slyvote/readme.txt diff
    xtrn/slyvote/slyvote.js diff
    Merge branch 'dd_use_strict_and_fixes_1' into 'master' Added "use strict"; to dd_lightbar_menu.js and some Digital Distortion mods& made some fixes See merge request main/sbbs!190

  456. Eric Oulashin
    Mon Jun 20 2022 16:28:08 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: When doing a text search, it now ignores the user scan configuration for sub-boards, to ensure it will show any results of the text search.

  457. Rob Swindell
    Mon Jun 20 2022 19:30:21 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'ddmsgreader_text_search_ignore_scan_cfg' into 'master' DDMsgReader: Text search now ignores user scan configuration See merge request main/sbbs!189

  458. Eric Oulashin
    Fri Jun 17 2022 09:40:15 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/attr_conv.js diff
    Replaced \1 with \x01 so that "use strict" can be used

  459. Rob Swindell
    Fri Jun 17 2022 11:56:03 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/attr_conv.js diff
    Merge branch 'attr_conv_hex_sync_attr_codes' into 'master' attr_conv.js: Replaced Sync attr literals with hexadecimal version so that "use strict" can be used See merge request main/sbbs!188

  460. Rob Swindell
    Thu Jun 16 2022 21:46:33 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/jsexec.c diff
    Flush console output stream after executing a script Solves problem of status output lines being interleved with console output (e.g. from print()) after executing a script.

  461. Rob Swindell
    Thu Jun 16 2022 21:32:51 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfglib2.c diff
    Resolve new warning by including the necessary header file

  462. Rob Swindell
    Thu Jun 16 2022 21:28:24 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/load_cfg.c diff
    src/sbbs3/load_cfg.h diff
    src/sbbs3/scfglib2.c diff
    Init virtual sub-directory name for library sub-dirs When using the "Access to Sub-directories" option for a library, the auto-created directories did not have their virtual sub-directory name set. Pretty sure this was introduced along with the http access to filebases after v3.19b. Also, only de-dupe the sub-directory names based on the directory name and not the code/code-suffix for now. Next up: auto-gen unique internal code when needed.

  463. Rob Swindell
    Thu Jun 16 2022 20:20:42 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/uifcinit.c diff
    Resolve (new) warning

  464. Rob Swindell
    Tue Jun 14 2022 22:51:46 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/xtrn.cpp diff
    Log command-line that led to logged error opening DOSXTRN.RET

  465. Rob Swindell
    Tue Jun 14 2022 23:08:46 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfgsave.c diff
    Actually save the library's virtual sub-directory naming option value.

  466. Rob Swindell
    Tue Jun 14 2022 22:30:33 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_console.cpp diff
    Remove unused variable introduced recently

  467. Rob Swindell
    Tue Jun 14 2022 22:30:33 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scfg/scfgxfr2.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib2.c diff
    Allow sysop-choice of source of virtual sub-directory source name By default, each file transfer directory's internal code suffix is used as the source of the sub-directory of the virtual path used to represent a file area in the FTP and Web servers. Now, a sysop can change that source to either each directory's short name or long name, if they prefer. For MRO, because he asked (on DOVE-Net).

  468. Eric Oulashin
    Mon Jun 13 2022 19:56:28 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/attr_conv.js diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader refactor for sysop save to BBS machine & attachments. DDMsgReader Version 1.49 - Refactor: Simplified saving a message to BBS machine for sysop (as-is, less processing); removed attachment stuff for pre-Synchronet 3.17; moved hasSyncAttrCodes() to attr_conv.js because that's where it needs to be.

  469. Rob Swindell
    Mon Jun 13 2022 21:35:57 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/attr_conv.js diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_attachents_and_save_refactor' into 'master' DDMsgReader refactor for sysop save to BBS machine & attachments. See merge request main/sbbs!187

  470. Eric Oulashin
    Sun Jun 12 2022 15:39:01 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: Improved display of ANSI messages via the use of the Graphic object

  471. Rob Swindell
    Mon Jun 13 2022 11:24:10 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_ansi_improvement' into 'master' DDMsgReader: Improved display of ANSI messages via the use of the Graphic object See merge request main/sbbs!186

  472. Eric Oulashin
    Sun Jun 12 2022 13:55:38 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    DD File Area Chooser: The "false command-line parameter works again, allowing the user to choose the file directory within their file library.

  473. Rob Swindell
    Sun Jun 12 2022 14:20:53 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Merge branch 'dd_file_lister_only_dir_fix' into 'master' DD File Area Chooser: The false command-line parameter works again See merge request main/sbbs!185

  474. Eric Oulashin
    Sat Jun 11 2022 13:31:29 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    DD message area chooser: Updated to try to prevent the error "this.subBoardListPrintfInfo[pGrpIdx] is undefined" when only choosing a sub-board within the user's current message group.

  475. Rob Swindell
    Sat Jun 11 2022 14:31:18 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    Merge branch 'dd_msg_area_chooser_only_subboard_change_fix' into 'master' DD message area chooser: Updated to try to prevent an "undefined" error when only choosing a sub-board within the user's current message group See merge request main/sbbs!184

  476. Rob Swindell
    Sat Jun 11 2022 13:57:14 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/con_out.cpp diff
    Always display a progress() output for count value of 0 This is normally the first count value and even if we *just* output a progress() for a previous operation, we still want the first progress() call for the operation to display.

  477. Rob Swindell
    Sat Jun 11 2022 13:58:27 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/execfile.cpp diff
    Print file library scanning progress and aborted status

  478. Rob Swindell
    Sat Jun 11 2022 14:00:20 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_user.c diff
    Add User close() method This can be used to force a close of the user.dat file, if open. Rather than waiting for an out of scope User to get garbage-collected, this method could be used to force a close of the user.dat file, if it's open.

  479. Rob Swindell
    Sat Jun 11 2022 14:25:54 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_console.cpp diff
    Add console.progress() method This exposes the Synchronet internal sbbs_t::progress() method used to display a progress indication bar, e.g. "[ Scanning 10.0% ]" with the bar backfill effect (when supported by the terminal).

  480. Eric Oulashin
    Sat Jun 11 2022 13:13:07 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/dd_upload_processor/ddup.cfg diff
    xtrn/dd_upload_processor/ddup.js diff
    xtrn/dd_upload_processor/readme.txt diff
    xtrn/dd_upload_processor/version_history.txt diff
    DD Upload Processor: Removed the chmod updates because they're actually not needed. Some antivirus scanners (such as ClamAV) need a command line parameter to pass the file permissions descriptor to the scanner.

  481. Rob Swindell
    Sat Jun 11 2022 13:34:09 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/dd_upload_processor/ddup.cfg diff
    xtrn/dd_upload_processor/ddup.js diff
    xtrn/dd_upload_processor/readme.txt diff
    xtrn/dd_upload_processor/version_history.txt diff
    Merge branch 'dd_upload_processor_no_more_chmod' into 'master' DD Upload Processor: Removed the chmod updates because they're actually not needed. See merge request main/sbbs!183

  482. Eric Oulashin
    Sat Jun 11 2022 12:13:44 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    DD message area chooser: Updated to try to prevent the error "this.subBoardListPrintfInfo[pGrpIdx] is undefined"

  483. Rob Swindell
    Sat Jun 11 2022 12:24:58 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Merge branch 'dd_area_chooser_list_printf_info_undefined' into 'master' DD message area chooser: Updated to try to prevent the error "this.subBoardListPrintfInfo[pGrpIdx] is undefined" See merge request main/sbbs!182

  484. Rob Swindell
    Fri Jun 10 2022 23:16:08 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/ansi_cio.c diff
    Increase size of sprintf buffer to resolve GCC warning about buffer overflow e.g. directive argument in the range [-255, 2147483645]

  485. Rob Swindell
    Fri Jun 10 2022 22:52:20 GMT-0700 (PDT)
    Modified Files:
    

    src/build/Common.gmake diff
    Disable "unused-result" warning in release builds

  486. Rob Swindell
    Fri Jun 10 2022 22:53:10 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/netmail.cpp diff
    Safe string formatting of fido netmail time header field Suppresses GCC warning. I suppose some of these fields could be more digits than expected.

  487. Rob Swindell
    Thu Jun 09 2022 20:29:40 GMT-0700 (PDT)
    Modified Files:
    

    webv4/root/api/events.ssjs diff
    Force a garbage collection in the event "wait forever" loop This appears to fix the "lots of user.dat files open concurrently" behavior that remains when a browser/client has the webv4 page open for a long duration. Eventually, the User objects created in this loop would be cleaned (and the user.dat file descriptors closed), but the default garbage collection interval (configurable) is 1000 calls to the CommonOperationCallback function. This could be as as long as 1000 times through this loop before GC occurs. Since this is not a performance sensitive loop (we have a call to sleep for a full second) just force a garbage collection for each loop iteration.

  488. Eric Oulashin
    Thu Jun 09 2022 12:49:38 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit.js diff
    exec/SlyEdit_Misc.js diff
    SlyEdit Version 1.78: Removed high-ascii characters from the SlyEdit JS files; used ascii() with their numeric ASCII values instead. This should avoid issues with text editors converting characters incorrectly.

  489. Rob Swindell
    Thu Jun 09 2022 13:13:00 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit.js diff
    exec/SlyEdit_Misc.js diff
    Merge branch 'slyedit_remove_hardcoded_high_ascii' into 'master' SlyEdit: Removed high-ascii characters from the JS files to avoid issues with editors changing encodings See merge request main/sbbs!180

  490. Rob Swindell
    Wed Jun 08 2022 22:01:17 GMT-0700 (PDT)
    Modified Files:
    

    .gitlab-ci.yml diff
    Add CI build for SVDM (Synchronet Virtual DOS Modem) for Windows

  491. Eric Oulashin
    Wed Jun 08 2022 15:38:00 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/dd_upload_processor/readme.txt diff
    dd_upload_processor readme update

  492. Rob Swindell
    Wed Jun 08 2022 17:02:35 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/dd_upload_processor/readme.txt diff
    Merge branch 'ddup_doc_update' into 'master' dd_upload_processor readme update See merge request main/sbbs!179

  493. Rob Swindell
    Wed Jun 08 2022 15:25:52 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Support unlimited number/address aliases in [alias] section of ini file Add support for an unlimited number of dial string (e.g. phone number) aliases in the [alias] section of the read .ini file. While the AT&Z, ATDSn support for stored numbers should work fine for the same use cases, it's limited to 20 numbers (that could be easily increased) and may be less obvious to users who it works. The [alias] aliases does not use AT commands to query/store the number aliases, just .ini file edits. Re-read .ini file when ATZ command is received. This allows applying dynamic changes to the .ini file without re-running SVDM. Address some memory-leaks when reading or making changes to .ini file. Fix ATIn command results. The normal result format (from an actual modem) is: <text> <blank-line> OK (or 0)

  494. Eric Oulashin
    Wed Jun 08 2022 15:16:46 GMT-0700 (PDT)
    Added Files:
    

    xtrn/dd_upload_processor/ddup.cfg diff
    xtrn/dd_upload_processor/ddup.js diff
    xtrn/dd_upload_processor/ddup_cleanup.js diff
    xtrn/dd_upload_processor/ddup_file_types.cfg diff
    xtrn/dd_upload_processor/readme.txt diff
    xtrn/dd_upload_processor/version_history.txt diff
    Removed Files:

    xtrn/DDUploadProcessor/FILE_ID.DIZ diff
    Updated Digital Distortion Upload Processor so that the scanning works properly in Linux (directory permissions)

  495. Rob Swindell
    Wed Jun 08 2022 15:16:46 GMT-0700 (PDT)
    Added Files:
    

    xtrn/dd_upload_processor/ddup.cfg diff
    xtrn/dd_upload_processor/ddup.js diff
    xtrn/dd_upload_processor/ddup_cleanup.js diff
    xtrn/dd_upload_processor/ddup_file_types.cfg diff
    xtrn/dd_upload_processor/readme.txt diff
    xtrn/dd_upload_processor/version_history.txt diff
    Removed Files:

    xtrn/DDUploadProcessor/FILE_ID.DIZ diff
    Merge branch 'ddup_linux_update' into 'master' Updated Digital Distortion Upload Processor so that the scanning works properly in Linux (directory permissions) See merge request main/sbbs!178

  496. Rob Swindell
    Mon Jun 06 2022 17:39:13 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    src/vdmodem/vdmodem.vcxproj diff
    Support option modem "speaker" (WAV file playback) control via ATM1 (turn on) Support optional WAV files via .ini keys: RingSound ConnectSound DisconnectSound ATM0 turns "speaker" (WAV playback) off (the default), ATM1 turns on. Ignore ATLn (speaker level), ATT (tone) and ATP (pulse) commands. These are sometimes found in init strings which we don't want to prematurely fail with a parse failure and "ERROR" result. Increment version number to 0.2.

  497. Rob Swindell
    Mon Jun 06 2022 15:17:32 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Perform a JS garbage collection for each new request in a reused session A reused HTTP session would never (apparently) perform garbage collection. The evidence of this was the collection of concurrent user.dat file opens that would never close until the HTTP sessions were closed. Hundreds or even thousands of open user.dat's have been seen. After this change, active web server (webv4 UI) users have not caused these spikes in open user.dat files, at least in my testing. If no garbage collection was being performed, then likely a lot of JS heap was being needlessly wasted, which could eventually result in a JS "out of memory" error. But that's just a theory. Investigation is needed into why the js_CommonOperationCallback()'s calls to JS_MaybeGC() were not sufficient to actually perform garbage collection in this case.

  498. Rob Swindell
    Mon Jun 06 2022 12:23:20 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/telnet.c diff
    src/sbbs3/telnet.h diff
    Fix Borland build issue: no stdbool.h in C++Builder 6 ... still ;-)

  499. Eric Oulashin
    Mon Jun 06 2022 12:01:24 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Fix for miscolored digit(s) in # messages column in the sub-board list when using the lightbar menu

  500. Rob Swindell
    Mon Jun 06 2022 12:12:05 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Merge branch 'dd_area_chooser_num_msgs_color_fix' into 'master' DD Area chooser: Fix for miscolored digit(s) in # messages column in the sub-board list when using the lightbar menu See merge request main/sbbs!176

  501. Rob Swindell
    Sat Jun 04 2022 21:33:05 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Reset "hangup event" (dropped DTR indication) upon connection Resolves issue with SBBS v2.30 not be able to answer an incoming "call".

  502. Rob Swindell
    Sun Jun 05 2022 15:49:07 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/telnet.c diff
    src/sbbs3/telnet.h diff
    Add telnet_opt_enabled() function that returns true for WILL or DO opt status An option is enabled/supported regardless of which end makes the request, so the status can be WILL (an ACK to a remote request) or DO (an ACK to a local request) when an option is enabled.

  503. Rob Swindell
    Sun Jun 05 2022 16:05:27 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Enable binary-transmit mode in server by default, disabling CR->CRLF expansion Don't expand CR->CRLF when in binary mode that was requested locally (option value is DO, instead of WILL), using new telnet_opt_enabled(). Request binary-transmit mode by default in Telnet server/answer mode. Set ServerBinary=false in svdm.ini to disable. This fixes the extra line-feeds in Telnet-server mode.

  504. Rob Swindell
    Sat Jun 04 2022 20:33:30 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Use safe string formatting to squelch warnings Attempt to address 2 GCC version 11.2.0 2 warnings reported by Nelgin ‘%s’ directive writing up to 3 bytes into a region of size between 1 and 4097

  505. Rob Swindell
    Sat Jun 04 2022 20:25:32 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/chksmb.c diff
    Fix copy/paste bug discovered/reported by gcc version 11.2.0 ... in debug print statement (MD5 hast decoded/printed as SHA-1 hash). Reported by Nelgin running gcc version 11.2.0 (Ubuntu 11.2.0-19ubuntu1)

  506. Rob Swindell
    Sat Jun 04 2022 20:08:28 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/readme.txt diff
    Remove a couple wiki marks unintentionally left in place

  507. Rob Swindell
    Sat Jun 04 2022 20:02:10 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Print build details (date, time, compiler version) with -V output.

  508. Rob Swindell
    Sat Jun 04 2022 16:03:27 GMT-0700 (PDT)
    Added Files:
    

    src/vdmodem/readme.txt diff
    An initial readme.txt, most of this text comes from the wiki.synchro.net page

  509. Rob Swindell
    Sat Jun 04 2022 16:04:14 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsexec.c diff
    Better log messages and yielding upon ReadFile(mailslot) error.

  510. Rob Swindell
    Sat Jun 04 2022 14:36:07 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/doorscan/doorscan.js diff
    Second part of previous fix recommended by Apam (POSITRON)

  511. Rob Swindell
    Sat Jun 04 2022 14:33:19 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/doorscan/doorscan.js diff
    Apam's suggested correction for "XDOORSCAN" in the log file Some shells log every character the user types (e.g. 'X' for external programs) so we need a newline before the logged DOORSCAN line to be parsed correctly. From Apam (POSITRON)

  512. Rob Swindell
    Thu Jun 02 2022 22:12:21 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ctrl/sbbsctrl.cpp diff
    Fix for new sbbs_get_ini_fname() usage

  513. Rob Swindell
    Thu Jun 02 2022 12:05:12 GMT-0700 (PDT)
    Modified Files:
    

    src/smblib/smballoc.c diff
    src/smblib/smblib.c diff
    Use PRIdOFF instead of %ld or %lu when formatting off_t values for error msgs On Win32, an off_t is 64-bits while a long is still a measly 32-bits.

  514. Rob Swindell
    Wed Jun 01 2022 21:03:47 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ntsvcs.c diff
    src/sbbs3/textgen.c diff
    Address new warnings/errors by get_ctrl_dir() and sbbs_get_ini_fname() changes

  515. Rob Swindell
    Wed Jun 01 2022 21:10:34 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    src/vdmodem/vdmodem.vcxproj diff
    Add support for IP blocking/filtering via file (ala SBBS ip.can) svdm.ini IpFilterFile can be set to the path/filename of an "ip filter file", list of IP addresses or patterns (CIDRv4 notation supported) to refuse connections from. This is reusing the same IP filter file logic from SBBS, so the same filter file syntax/rules apply.

  516. Rob Swindell
    Wed Jun 01 2022 20:39:52 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/addfiles.c diff
    src/sbbs3/delfiles.c diff
    src/sbbs3/dupefind.c diff
    src/sbbs3/echocfg.c diff
    src/sbbs3/gtkchat/main.c diff
    src/sbbs3/gtkchat/objects.mk diff
    src/sbbs3/load_cfg.h diff
    src/sbbs3/makeuser.c diff
    src/sbbs3/objects.mk diff
    src/sbbs3/sbbs_ini.c diff
    src/sbbs3/sbbs_ini.h diff
    src/sbbs3/sbbscon.c diff
    src/sbbs3/scfg/objects.mk diff
    src/sbbs3/smbactiv.c diff
    src/sbbs3/uedit/objects.mk diff
    src/sbbs3/uedit/uedit.c diff
    src/sbbs3/umonitor/objects.mk diff
    src/sbbs3/umonitor/umonitor.c diff
    Address warnings and errors introduced in *nix build from previous commit Also a bit more constification and cleared up the legacy sbbs_get_ini_fname() usage: the hostname argument hadn't be used in a long, long time.

  517. Rob Swindell
    Tue May 31 2022 19:27:15 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Accept all incoming connections in listen_thread() This sets the stage for "Caller-ID" support and IP/host filtering (before sending a "RING" result and requiring an auto-answer or host/BBS software to send "ATA").

  518. Rob Swindell
    Wed Jun 01 2022 15:28:44 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Add "Caller ID" support, enabled with AT#CID=1 or AT+VCID=1 Also controlled via [modem] CallerID key in svdm.ini fiile. Reports the connected IP address between the first and second RING result. Required a fix to reset the ringcount to 0 upon new connection. Simplified the AT command parsing logic a bit.

  519. Rob Swindell
    Wed Jun 01 2022 20:02:37 GMT-0700 (PDT)
    Added Files:
    

    src/sbbs3/findstr.c diff
    src/sbbs3/findstr.h diff
    Modified Files:

    src/sbbs3/echocfg.vcxproj diff
    src/sbbs3/getctrl.c diff
    src/sbbs3/getctrl.h diff
    src/sbbs3/jsexec.vcxproj diff
    src/sbbs3/load_cfg.vcxproj diff
    src/sbbs3/ntsvcs.vcxproj diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/sbbs.vcxproj diff
    src/sbbs3/sbbscon.vcxproj diff
    src/sbbs3/sbbsecho.c diff
    src/sbbs3/scfglib.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/str_util.c diff
    src/sbbs3/str_util.h diff
    src/sbbs3/textgen.vcxproj diff
    src/sbbs3/userdat.c diff
    Decompose some library files to enable reuse by SVDM (virtual DOS modem) I just wanted to reuse findstr() in vdmodem.c and I fell down this hole :-) findstr.* is new (findstr() related functions moved from str_util) getctrl.* is now finally the real home of get_ctrl_dir(), moved from str_util trashcan* functions moved from str_util to scfglib other scfg_t dependent functions moved from str_util to scfglib net_addr() appears to be a function that was never created/used (?) This will definitely break the *nix build, for now.

  520. Rob Swindell
    Tue May 31 2022 18:17:34 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Store connecting-client information (e.g. IP address) in file by default, client.ini in the current working directory. Configurable filename via ClientFile key in the root section of svdm.ini.

  521. Rob Swindell
    Tue May 31 2022 18:17:42 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_user.c diff
    Don't clobber an open user.dat file descriptor in js_CreateUserObject() Likely fix for the user.dat open file descriptor leak: If js_CreateUserObject(cx,parent,cfg,"name",...) is called multiple times (e.g. before login and after login), the successive calls will reuse the previously allocated JS object and allocated private data memory. However, the private data memory (which includes the descriptor of an open user.dat file, if it has been opened), was always zeroed, even if it was being reused. This would leak open file descriptor. So any (pre)login scripts or web scripts that use the "user" object (which is all zeroed-out before login) and then allows a user to subsequently login, would leak a file descriptor.

  522. Rob Swindell
    Tue May 31 2022 18:27:55 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/str.cpp diff
    Close the open user.dat upon (unlikely/impossible) malloc error

  523. Eric Oulashin
    Tue May 31 2022 17:24:57 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit.js diff
    exec/SlyEdit_Misc.js diff
    Fixed weird character issue from last commit Fixed a weird character issue from the last commit, that may have been due to using a different text editor that changed some characters, possibly due to character encoding

  524. Rob Swindell
    Tue May 31 2022 17:44:47 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit.js diff
    exec/SlyEdit_Misc.js diff
    Merge branch 'slyedit_badchars_fix' into 'master' Fixed weird character issue from last commit See merge request main/sbbs!175

  525. Eric Oulashin
    Tue May 31 2022 14:33:48 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit.js diff
    exec/SlyEdit_Misc.js diff
    SlyEdit 1.77: Fix for aborting when trying to access sub-board information when there are no sub-boards

  526. Rob Swindell
    Tue May 31 2022 14:33:49 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit.js diff
    exec/SlyEdit_Misc.js diff
    Merge branch 'slyedit_rare_fix_no_subboards' into 'master' SlyEdit 1.77: Fix for aborting when trying to access sub-board information when there are no sub-boards See merge request main/sbbs!174

  527. Rob Swindell
    Mon May 30 2022 17:23:54 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsexec.c diff
    Fix compile-breaking typos in last commit

  528. Rob Swindell
    Mon May 30 2022 16:35:47 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsexec.c diff
    Store the UART register/settings in a struct for easy re-init Re-init the UART struct in the init routine to avoid confusion when making .ini file changes with older NTVDMs (including NTVDMx64) which don't re-load the VDDs for every invocation.

  529. Rob Swindell
    Sun May 29 2022 19:19:49 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Enable experimental sbbsexec modes (e.g. redir DOS I/O) Added undocumented experimental options -I and -O to enable DOS input and output interception modes in sbbsexec (e.g. to be used possibly with '-h'). Also -M to specify sbbsexec mode value by number (e.g. 3 to enable DOS Input/Output redir). Added '-n' option to specify node number (probably no real value/need). Safe string formatting.

  530. Rob Swindell
    Fri May 27 2022 18:15:02 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Fix port parsing in dial string More case-insensitivity in parsing special "number" values (e.g. 'L' for last number). Default to Telnet mode (not Raw TCP). Default to unspecific address family (not IPv4). Case-insensitive "-telnet" and "-raw" option recognition.

  531. Rob Swindell
    Sat May 28 2022 13:22:36 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Send a "banner" when accepting incoming connections. Fix a corner case where an invalid command-mode escape sequence (e.g. "+.+.+") could've been interpreted as valid.

  532. Rob Swindell
    Sun May 29 2022 18:52:12 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Resolve the socket protocol/address family issues with IPv4 vs. IPv6 When listening, the address family cannot be PF_UNSPEC, so default to PF_INET (IPv4), when not specified. Not sure why we're setting ai_flags to PF_UNSPEC (copied from syncterm) - that's just 0, but otherwise the PF_ and AI_ flags are not compatible. Don't set the ai_flags to anything here since they don't seem to change the behavior.

  533. Rob Swindell
    Fri May 27 2022 13:08:24 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.vcxproj diff
    Run gitinfo.bat in prebuild event To (re)generate git_branch.h and git_hash.h every build

  534. Rob Swindell
    Fri May 27 2022 13:02:51 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Increment version to 0.1

  535. Rob Swindell
    Tue May 24 2022 08:17:24 GMT-0700 (PDT)
    Added Files:
    

    src/build/gitinfo.bat diff
    Modified Files:

    src/sbbs3/release.bat diff
    src/sbbs3/sbbs.jsdocs.vcxproj diff
    src/sbbs3/sbbs.vcxproj diff
    Move gitinfo.bat to build directory So it can be reused for other projects more easily

  536. Rob Swindell
    Tue May 24 2022 10:15:32 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.sln diff
    Platform rename x86 -> Win32 To be more consistent with other Synchronet project and solution files.

  537. Rob Swindell
    Tue May 24 2022 10:15:55 GMT-0700 (PDT)
    Added Files:
    

    src/vdmodem/build.bat diff
    src/vdmodem/release.bat diff
    Build files

  538. Rob Swindell
    Tue May 24 2022 10:53:24 GMT-0700 (PDT)
    Added Files:
    

    src/vdmodem/.gitignore diff
    Git-Ignore the git*.h files

  539. Rob Swindell
    Tue May 24 2022 21:58:34 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Include Git branch/hash in detailed version output svdm -V and "ATi1" output.

  540. Rob Swindell
    Mon May 23 2022 19:29:34 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Don't close externally opened/passed socket descriptors Set sbbs_hungup event state correctly based on initial online state (i.e. FALSE if already connected/online). Allow BusyNotice (string) to be configurable via .ini file.

  541. Rob Swindell
    Mon May 23 2022 19:29:56 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/fossinfo.c diff
    Report FOSSIL port status

  542. Rob Swindell
    Mon May 23 2022 18:04:13 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Save modem "NVRAM" settings to ini file Support [sockopts] (socket options) settings in ini file CamelCase the ini key names

  543. Rob Swindell
    Mon May 23 2022 18:04:13 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Usage/syntax help output, read svdm.ini from path of svdm.exe Support specifying an additional or alternate .ini file to read using -c<fname> option.

  544. Rob Swindell
    Mon May 23 2022 18:04:13 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsexec.c diff
    No need to call reset_yield() if we're not calilng maybe_yield()

  545. Rob Swindell
    Wed May 18 2022 18:36:08 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/birthdays.js diff
    Fix loop limit (system.stats.total_users != system.lastuser) When looping to highest user number, use system.lastuser, not system.stats.total_users. This explains why not all userbases would be affected by the just-fixed issue in js_user.c. If the total_users happens to equal lastuser, then you would have hit the issue in js_user.c. If you had at least one deleted or inactive user account, then system.stats.total_users would be less than system.lastuser and your system would *not* have triggered that bug.

  546. Rob Swindell
    Wed May 18 2022 15:32:06 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_user.c diff
    Fix User.number increment beyond lastuser issue When the 'number' property of an instance of User was incremented beyond the last user, the call to fgetuserdat() on subsequent property 'get' operation would fail and zero-out the user structure (including the user number). This resulted in an infinite loop in load/birthdays.js where the user number would go from lastuser to 1 in one operation (u.number++). Reported by DesotoFireflite (VALHALLA)

  547. Eric Oulashin
    Tue May 17 2022 12:47:01 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Fixes for searching & related error reporting

  548. Rob Swindell
    Tue May 17 2022 12:59:04 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    xtrn/DDAreaChoosers/readme.txt diff
    xtrn/DDAreaChoosers/revision_history.txt diff
    Merge branch 'ddac_search_errors_fix' into 'master' DD area choosers: Fixes for searching & related error reporting See merge request main/sbbs!171

  549. Rob Swindell
    Tue May 17 2022 09:42:03 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.sln diff
    src/vdmodem/vdmodem.vcxproj diff
    build/link with xpdev_mt Build using WinXP-compatible toolset.

  550. Rob Swindell
    Tue May 17 2022 09:27:40 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/netwrap.h diff
    Fix error: Undefined structure 'in_addr' in Borland builds sbbsctrl build failed, it needs another winsock header. <sigh> Oh what a rabbit hole this has been.

  551. Rob Swindell
    Mon May 16 2022 20:44:19 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/netwrap.h diff
    Need ws2tcpip.h for struct ip6_addr definition on Windows

  552. Rob Swindell
    Mon May 16 2022 20:45:08 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/xpdev.props diff
    src/xpdev/xpdev_mt.props diff
    xpdev/netwrap now requires IPHlpApi.lib on Windows

  553. Rob Swindell
    Mon May 16 2022 20:20:27 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    src/xpdev/netwrap.c diff
    src/xpdev/netwrap.h diff
    Move IPv4/v6 address parse functions to netwrap.c And create IPv4AddressToStr(), a wrapper for inet_ntop (or inet_ntoa, when inet_ntop isn't available).

  554. Rob Swindell
    Mon May 16 2022 12:47:57 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    Apparently MinGW32 doesn't have inet_ntop() or inet_pton() either

  555. Rob Swindell
    Mon May 16 2022 12:10:02 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    Borland didn't include inet_ntop() or inet_pton() Fixes CI and nightly build.

  556. Rob Swindell
    Sun May 15 2022 23:48:19 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    src/xpdev/ini_file.h diff
    Replace deprecated inet_ntoa and inet_addr function calls Use inet_ntop and inet_pton instead. Use 32-bit arguments and return values for IPv4 addressess for all target platforms (ulong is 64-bit on LP64, e.g. Linux-x64, targets).

  557. Rob Swindell
    Sun May 15 2022 23:49:36 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Implement svdm.ini file support to store settings and modem NVRAM e.g. AT&W writes the current settings to the [modem] section.

  558. Rob Swindell
    Tue May 10 2022 12:58:32 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    Explain that TAB is used to edit the entry comment in online help

  559. Rob Swindell
    Tue May 10 2022 17:03:33 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/services.c diff
    Allow a per-service "LowestLogLevel" setting Have a service (e.g. imapservice.js) that logs errors that you'd rather not fill your error.log file with? Set that service's "LowestLogLevel" to "Warning" in your services.ini file ("lower" means "more severe" when it comes to log levels, so this would set the maximum severity to Warning).

  560. Rob Swindell
    Tue May 10 2022 17:04:36 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    Set Telnet-server options (e.g. will echo) in answer()

  561. Rob Swindell
    Mon May 09 2022 18:52:27 GMT-0700 (PDT)
    Modified Files:
    

    src/smblib/smbhash.c diff
    Remove trailing whitespace before computing Subject CRC Some responding programs will automatically remove the trailing white-space from subject when replying and that would mess up the subject-linkage-by-CRC. So let's just ignore trailing whitespace in the first place.

  562. Rob Swindell
    Mon May 09 2022 18:36:31 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsexec.c diff
    Better RTS support Reducing log output (lowering log level of line 437 from LOG_INFO to LOG_DEBUG) highlighted an issue with Telix stopping RX. That was fixed by checking RTS in input_thread(). Qmodem needs RTS checked when writing the MCR. This improved RTS support has been tested with Telix, Qmodem, Telemate, and Banacom at full data rates.

  563. Rob Swindell
    Mon May 09 2022 18:49:25 GMT-0700 (PDT)
    Modified Files:
    

    src/vdmodem/vdmodem.c diff
    src/vdmodem/vdmodem.vcxproj diff
    Add Telnet support

  564. Rob Swindell
    Sun May 08 2022 18:56:31 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scfg/scfgxtrn.c diff
    src/sbbs3/xtrn.cpp diff
    src/sbbs3/xtrn_sec.cpp diff
    Add "Disable Local Display" option for doors, parse DOSXTRN.ERR New option to disable local screen display for door programs: sets the 'Screen' value appropriately in door.sys or pcboard.sys drop files and on Windows, doesn't create a new console window. Also, now parsing the DOSXTRN.ERR file created by the latest/greatest dosxtrn.exe when failing to execute the child/DOS program and log the parsed error details (errno value and description), helpful in debugging the reason why a DOS program may not have been successfully executed by DOSXTRN.

  565. Rob Swindell
    Sun May 08 2022 11:31:17 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_msgbase.c diff
    Remember the last 'first_msg' property value after msgbase is closed The other msgbase property values are stored in the smb.status or other private_t members which retain their value when the message base is closed, unlike the 'first_msg' property which required a read of the message base index to get the value (and that doesn't work when the message base is closed, so would return 0). for deon (ALTERANT)

  566. Rob Swindell
    Sun May 08 2022 00:01:42 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/file.cpp diff
    Print the upload TCP protocol (when available) w/user name, not host/IP Long hostnames would prevent the protocol from being shown. Also, non-operators should be able to see the protocol used to upload files.

  567. Rob Swindell
    Sun May 08 2022 00:09:46 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/dosxtrn/dosxtrn.c diff
    Support an optional ini filename argument, write to DOSXTRN.ERR If a 4th optional argument is provided, use that as the ini filename for virtual UART/FOSSIL driver settings instead of "sbbsexec.ini". Using this feature requires an updated sbbsexec.dll that supports an ini-filename argument (instead of a directory) to the VDD_LOAD_INI_FILE command. If DOSXTRN fails to execute the passed command-line, _spawnvp() returns -1, log the errno value and description to DOSXTRN.ERR (in the same directory as DOSXTRN.ENV). This will help diagnose issues executing DOS command-lines (e.g. file not found). Upon failure to open/create DOSXTRN.RET, don't prematurely terminate as that would skip a lot of important cleanup.

  568. Rob Swindell
    Sun May 08 2022 00:40:38 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsexec.c diff
    src/sbbs3/uartdefs.h diff
    Improvements to virtual UART driver for Windows In the process of creating/testing the new Synchronet Virtual DOS Modem (SVDM) project, I made the following significant improvements: - Don't default the log level to DEBUG for debug builds - Add a "carrier change" event so carrier low to high transitions can be tracked too - Replace several lprintf() calls with lputs() for performance reasons - Specify 'volatile' storage for pending_interrupts - Interrupts are re-asserted if there are any pending interrupts after reading IIR register - Emulate FIFO enablement - Support RTS flow control signal - Remove conditional/configurable yields when polling LSR and MSR register, would just unnecessarily slow down terminal programs - Report "DCD change" in MSR correctly - Clean-up (e.g. close handles) in VDD_CLOSE handler - VDD_LOAD_INI_FILE allows an optional ini filename (instead of directory) as its argument - for loading an ini filename other than sbbsexec.ini (e.g. svdm.ini). Initialize log level in VDDInitialize(). For versions of Windows/NTVDM that use/call the "init proc" (this function), we just re-initialize global variables here.

  569. Rob Swindell
    Sun May 08 2022 00:43:48 GMT-0700 (PDT)
    Added Files:
    

    src/vdmodem/vdmodem.c diff
    src/vdmodem/vdmodem.sln diff
    src/vdmodem/vdmodem.vcxproj diff
    Synchronet Virtual DOS Modem for Windows First commit. Right now it just connects/accepts-connections using raw TCP. As demonstrated in YouTube video: https://www.youtube.com/watch?v=fxp38Nde3fg

  570. Rob Swindell
    Sat Apr 30 2022 18:56:29 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/sockwrap.c diff
    Fix xp_inet_pton: was just writing 0x02 (address family)to 'dst', always Tried using this function in a new project and didn't work. My guess: it wasn't tested. <looks at Deuce>

  571. Rob Swindell
    Sat Apr 30 2022 14:13:46 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfgxtrn.c diff
    Fix CID 174496: Integer handling issues (BAD_SHIFT) Don't repeat call atoi() unnecessarily.

  572. Rob Swindell
    Sat Apr 30 2022 14:23:25 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/addfiles.c diff
    src/sbbs3/file.cpp diff
    src/sbbs3/filedat.c diff
    src/sbbs3/filedat.h diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/js_filebase.c diff
    src/sbbs3/listfile.cpp diff
    src/sbbs3/upload.cpp diff
    Fix DIZ extraction/use for FTP uploads 1. Was not setting f->dir to the correct directory number, so only ftp-uploads to the *first* directory (dirnum = 0) would extract DIZ files of uploaded files. Removing the 'dirnum' parameter to addfile() since that implied that you did not have to initialize the 'dir' element of the passed file_t, but you do: to get the correct file path for file size/date detection and the DIZ extraction. 2. Was getting heap-corruption when freeing the imported/formatted DIZ text on Windows once the above problem was fixed: can't free() in one DLL memory that was allocated in another DLL. Created and now using free_diz() to free the memory allocated in read_diz(). format_diz() handles a NULL 'lines' argument correctly/gracefully, so no need for the NULL lines check in sbbs_t::uploadfile(). Added FTP server log messages for successful file upload or update by user.

  573. Rob Swindell
    Thu Apr 28 2022 19:31:56 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfgxtrn.c diff
    Give the timed event config menu the left/right arrow key treatment Allows quick traversing through timed events (e.g. for comparison of settings).

  574. Rob Swindell
    Thu Apr 28 2022 18:42:19 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/xtrn.cpp diff
    When running 16-bit DOS commands "offline" on Windows, don't use dosxtrn We shouldn't need a virtual UART/FOSSIL driver to execute "offline" program (e.g. timed events) in the first place, and our virtual UART/FOSSIL for Windows wouldn't work right in the scenario anyway even if it did load successfully. This resolves the reported issues with timed events configured as not "native" returning error 255 (and not running successfully) on Windows with SBBS v3.19. I'm not even sure what changed exactly in xtrn.cpp, dosxtrn.c, and sbbexec.c between v3.18 and v3.19 that's causing this to now fail, but it (using DOSXTRN to run offline DOS programs) really shouldn't have been attempted in the first place. So that was just a design issue that happened to kind of sort of work up until v3.19.

  575. Rob Swindell
    Thu Apr 28 2022 18:55:39 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scfg/scfgnet.c diff
    Add "Native" option for QWKnet call-out cmd-lines This really shouldn't be necessary to toggle (at least now) on Windows, since we treat all off-line executions as "native", but for *nix, it could make a big difference if trying to invoke a native program or shell script for a QWKnet call-out and it would either fail due to no DOS support or try to executing using Linux-DOSEMU (unless the command's program name was in the global "native program list" configured in SCFG->External Programs).

  576. Rob Swindell
    Thu Apr 28 2022 12:59:39 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sexyz.vcxproj diff
    Mutex-protect the ring buffers (as we do in the *nix builds) This fixes an observed crash in sexyz for Windows. The crash was in RingBufWrite() where 'remain' was set to -1 (4.2B) apparently because pHead and/or pTail changed (to pTail=pHead) during the invocation of the RINGBUF_FILL_LEVEL() macro, because it wasn't thread-safe. Amazing this problem never came up before.

  577. Rob Swindell
    Thu Apr 28 2022 13:39:45 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/inkey.cpp diff
    Don't add hot-spots for users of terminals without mouse support This eliminates some link-list management and the debug-level log message "Scrolled x mouse hot-spots" for non-mouse-enabled user terminals.

  578. Rob Swindell
    Thu Apr 28 2022 13:42:33 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/con_out.cpp diff
    Always displays the 100% progress report ... regardless of the timing of the last progress report. For cases where the progress output isn't erased once done doing the thing.

  579. Rob Swindell
    Thu Apr 28 2022 13:43:40 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/bat_xfer.cpp diff
    Sort the batch queues in the .ini files as well This insures that the 'R'emove file option will work correctly if when displayed sorted.

  580. Rob Swindell
    Thu Apr 28 2022 13:45:05 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/zmodem.c diff
    Fix erroneous error message Subpacket OVERFLOW means received subpacket byte offset is >= the max subpacket length.

  581. Rob Swindell
    Thu Apr 28 2022 13:48:41 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/dosxtrn/dosxtrn.c diff
    Report CTS status in FOSSIL driver (high when outbuf has some space) Some programs (e.g. sbbs.exe v2.30) check for CTS (when configured/enabled for hardware flow control), so reflect the signal (Clear To Send) accurately.

  582. Rob Swindell
    Wed Apr 27 2022 20:50:06 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/filedat.c diff
    src/sbbs3/filedat.h diff
    Add batch_list_sort() to sort up/download batch xfer list files

  583. Rob Swindell
    Wed Apr 27 2022 20:51:24 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/bat_xfer.cpp diff
    Add a sort (alphabetical) option when listing batch queues

  584. Randy Sommerfeld
    Mon Apr 25 2022 23:58:23 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/ircd/server.js diff
    We don't use cmd anymore

  585. Rob Swindell
    Mon Apr 25 2022 20:15:01 GMT-0700 (PDT)
    Modified Files:
    

    docs/source.html diff
    docs/sysop_commands.html diff
    Redirect to the relevant wiki.synchro.net page

  586. Rob Swindell
    Mon Apr 25 2022 14:20:54 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    Fix possible underflow conditions in gettimeleft() If a non-'T' exempt user had already used more time today than their security level allows, their timeleft would be computed as a negative value due to integer underflow. Since the return value of this function is assigned to a ulong (timeleft), this becomes a large positive number. Cap the floor of the computed time left at 0. Also fix the potential for underflow that could occur if the system clock changes while a user is online and 'now' becomes greater than 'starttime'.

  587. Rob Swindell
    Mon Apr 25 2022 14:21:22 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/logout.cpp diff
    Add comment about race condition Fixed typo in another comment

  588. Rob Swindell
    Sun Apr 24 2022 19:20:46 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/xtrn_sec.cpp diff
    Dates in drop files are always MM/DD/YY, never DD/MM/YY Previously, if a sysop had set SCFG->System->Toggles->European Date Format (DD/MM/YY) to "Yes", then many of the dates in drop files would have been written in this format. Unfortunately, since most BBS doors and door development kits were written by Americans, MM/DD/YY format is always assumed. So fixed that (using new TM_MONTH macro too). Also, line 37 ("Event Time") of DOOR.SYS was always 00:00, now it'll be the next event time (in HH:MM format). Unfortunately, that time might be tomorrow or days away and there's no way to represent *that* fact in the DOOR.SYS file format. <shrug>

  589. Rob Swindell
    Sun Apr 24 2022 19:21:48 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/xpdev_mt.props diff
    Add winsock library (ws2_32.lib) to multi-threaded xpdev props file This additional library was already included in the single-threaded version, so this was just a miss.

  590. Rob Swindell
    Sun Apr 24 2022 17:32:41 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/xtrn_sec.cpp diff
    Add line 8 (user's real name) to DOORFILE.SR (Solar Realms' drop file) Apparently this line was added at some point, not sure if it's actually used in any doors, but here it is anyway.

  591. Rob Swindell
    Sun Apr 24 2022 17:34:58 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/xtrn_sec.cpp diff
    Populate line 36 (user alias) of door.sys with the current user's handle Previously, we just always made this a blank line.

  592. Rob Swindell
    Thu Apr 21 2022 21:57:05 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_msgbase.c diff
    Restore ability for MsgBase.open() to open an arbitrary SMB msgbase Before commit 5da26eca, you could pass Msgbase() the path to an SMB on the disk and open() it, no configuration needed. As of 2 years ago, I broke that, and passing a path to an SMB would open the "mail" base instead - most unexpected. This is a feature of smb_open_sub() which we switched to using (from smb_open()), so go back to using smb_open() when an unrecognized code is pass to the constructor. This has the negative consequence that the "mail" base can't be created via JS. Probably should fix that.

  593. Rob Swindell
    Thu Apr 21 2022 22:05:37 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_msgbase.c diff
    Use smb_open_sub() for the "mail" base too This restores the ability for JS MsgBase() to be used to create the initial mail message base properly, if needed. This means that the 'subnum' should now be equal to scfg.total_subs when referencing an arbitrary SMB via path (not in the configuration).

  594. Rob Swindell
    Thu Apr 21 2022 22:07:06 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Fix segfault when printing Bad-echo name after failing to load cfg This is a weird one: sbbsecho ran right as I was saving msgs.cnf via SCFG and it seems like it loaded 0-byte msgs.cnf into memory and this segfault was a result of trying to print sub[INVALID_SUB]->code. The use of [f]nopen() with proper share perms should have prevented this (truncated msgs.cnf read) from happening, so there's something else afoot here.

  595. Rob Swindell
    Thu Apr 21 2022 21:45:09 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/xtrn_sec.cpp diff
    Limit door.sys numeric values to 32767 The DoorFrame door library will about with "Overflow Error" if it reads a door.sys file with lines 16 (calls), 42 (minute credits), or 52 (posted messages) with a value > 32767, the maximum positive value of a signed 16-bit integer. So cap these values in the door.sys file at that maximum. This does potentially break/limit doors that give minutes using the door.sys drop file, so use that "modify user data" option in SCFG with care. Electrosys initially reported this problem with the Lemonade! door game which was barfing on a line 42 value of 449632.

  596. Deucе
    Tue Apr 19 2022 09:32:10 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/lord/lord.js diff
    Bump the version The extra strength bug fix needs a new version number.

  597. Deucе
    Tue Apr 19 2022 09:25:47 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/lord/lord.js diff
    Fix STR gain after defeating a trainer. You get str_gained, not str. :(

  598. Rob Swindell
    Sun Apr 17 2022 21:19:53 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfgxtrn.c diff
    Don't zero-out static variables for option index/bar This prevents re-entry to the door configurations from returning to the previously highlighted menu option. Not sure why this was, but clearly re-zeroing static variables makes no sense in the first place.

  599. Rob Swindell
    Sun Apr 17 2022 21:20:50 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_msgbase.c diff
    Fix LAZY_BOOLEAN macro definition This is what was causing the 'is_utf8' message header property to be created as a Number instead of a Boolean.

  600. Rob Swindell
    Sat Apr 16 2022 00:52:34 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/text.dat diff
    String 387 is now used for YouCantUseThatNetmail string

  601. Rob Swindell
    Sat Apr 16 2022 00:51:59 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/sbbsdefs.js diff
    src/sbbs3/newuser.cpp diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/text.h