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. Rob Swindell (in GitKraken)
    Mon Mar 20 2023 17:44:44 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ansiterm.cpp diff
    Remove the call to sync() from ansi_getlines() This was needed back in the v2 days to be sure the escape sequence was sent *after* an output buffer before might've been cleared by a user's abort/Ctrl-C action. SYNC/ASYNC called riosync() which called rioctl(TXSYNC) and we have no equivalent in Synchronet for TCP/IP (modern sbbs). A user's Ctrl-C will clear all pending I/O, but won't prevent subsequent output from being sent (until the abort condition is cleared) as used to be the case with serial I/O.

  2. Rob Swindell (in GitKraken)
    Mon Mar 20 2023 17:36:56 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfglib1.c diff
    Address MSVC warning: conversion from 'double' to 'unsigned int' ... possible loss of data (yeah, yeah, we know)

  3. Rob Swindell (in GitKraken)
    Mon Mar 20 2023 17:18:56 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/atcodes.cpp diff
    Add GETDIM @-code to get the current ANSI terminal dimensions (rows and cols) This code will do nothing if there's no user logged-in or their terminal is not ANSI or their terminal dimensions (rows and cols) are set to specific values (not auto-detected). This code does the same thing as calling JS console.getdimensions(). Since it waits (up to 5 seconds) for a CPR response from the terminal, this does potentially slow down output, so caveat emptor. This could be used by a sysop to address issue #529.

  4. Eric Oulashin
    Mon Mar 20 2023 10:40:12 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    DD area choosers: Replaced hardcoded high-ascii single line character with a variable defining it via hex code (for the help screens)

  5. Rob Swindell
    Mon Mar 20 2023 11:35:31 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDAreaChoosers/DDFileAreaChooser.js diff
    xtrn/DDAreaChoosers/DDMsgAreaChooser.js diff
    Merge branch 'dd_area_choosers_horizontal_single_line_ascii_update' into 'master' DD area choosers: Replaced hardcoded high-ascii single line character with a variable defining it via hex code (for the help screens) See merge request main/sbbs!269

  6. Rob Swindell (in GitKraken)
    Mon Mar 20 2023 09:46:43 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbs_ini.c diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfglib2.c diff
    src/sbbs3/scfgsave.c diff
    Support duration notation (e.g. 10M for 10 minutes) in "*Inactivity" .ini keys The recently updated ctrl/sbbs.ini had MaxLoginInactivity = 10M in the [BBS] section, which was parsed as 10 seconds rather than the intended 10 minutes. This fixes that issue and also will now store all of these inactivity values in duration notation. Existing values stored in seconds will work fine since that is always the assumed/fallback unit of time in duration keys. Thanks for the report!

  7. Eric Oulashin
    Sun Mar 19 2023 20:55: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
    DD area chooser fixes for lightbar mode: Numeric input (for file area chooser) and wording changes on numeric input (for both)

  8. Rob Swindell
    Sun Mar 19 2023 21:36:19 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_lightbar_area_numeric_input_fix' into 'master' DD area chooser fixes for lightbar mode: Numeric input (for file area chooser) and wording changes on numeric input (for both) See merge request main/sbbs!268

  9. Rob Swindell (on ChromeOS)
    Sun Mar 19 2023 19:10:28 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/shell_lib.js diff
    Add missing sync call before xferinfo menu prompt.

  10. Rob Swindell (on Debian Linux)
    Sun Mar 19 2023 12:57:49 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/shell_lib.js diff
    Fix assignment to undeclared variable j And use putmsg() for strings that may have @-codes (e.g. ELLIPSIS)

  11. Rob Swindell (on ChromeOS)
    Sat Mar 18 2023 19:40:10 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    Add free disk space check against minimum space configured Disallow uploads when free disk space falls below minimum configured minimum free disk space. This fixes issue #535

  12. Rob Swindell (on ChromeOS)
    Sat Mar 18 2023 19:40:10 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    Limit uploaded file sizes, accounting for free disk space The lower of the configured maximum file size (for the FTP server) and the available disk space minus the configured minimum free disk space is used as the maximum file size to allow upload. Appended files are accounted for too.

  13. Rob Swindell (on Debian Linux)
    Sat Mar 18 2023 14:52:43 GMT-0700 (PDT)
    Modified Files:
    

    exec/default.js diff
    Remove debug command and log-output left in by accident

  14. Rob Swindell (on Debian Linux)
    Sat Mar 18 2023 14:53:29 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/text.js diff
    Add InactivityAlert

  15. Rob Swindell (on Debian Linux)
    Sat Mar 18 2023 14:43:45 GMT-0700 (PDT)
    Modified Files:
    

    exec/login.js diff
    Apply inactive_hangup option (for dumb terminals) using max_socket_inactivity this insures that inactive dumb (bot) connections will be disconnected even when using a script (e.g. animated pause prompt) that doesn't time-out. Also, if the connected node is the last node (for this sbbs instance), divide the socket inactivity timeout value in half. These changes (along with sbbs v3.20) should help with DOS (denial-of-service, not MS-DOS) prevention. Mainly for Krueger.

  16. Rob Swindell (on ChromeOS)
    Fri Mar 17 2023 21:05:29 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfgsys.c diff
    A few help text fixups.

  17. Rob Swindell (in GitKraken)
    Fri Mar 17 2023 19:10:02 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/genwrap.c diff
    Use const doubles for time durations Instead of copy/pasta. No change in function,.

  18. Rob Swindell (in GitKraken)
    Fri Mar 17 2023 19:26:53 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/sbbs.ini diff
    src/sbbs3/answer.cpp diff
    src/sbbs3/getkey.cpp diff
    src/sbbs3/inkey.cpp diff
    src/sbbs3/js_console.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/newuser.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/sbbs_ini.c diff
    src/sbbs3/scfg/scfgnode.c diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfg/scfgxtrn.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfglib2.c diff
    src/sbbs3/scfgsave.c diff
    src/sbbs3/startup.h diff
    src/sbbs3/text.h diff
    src/sbbs3/text_defaults.c diff
    src/sbbs3/xtrn_sec.cpp diff
    Add terminal-client socket inactivity detection/disconnection - New keys in [BBS] section of sbbs.ini: MaxLoginInactivity (default: 10 minutes) MaxNewUserInactivity (default: 60 minutes) MaxSessionInactivity (default: none/unlimited) - Each configured external program/door in SCFG can have its own maximum inactivity setting (or else the session max inactivity is applied) - moved node-specific sec_hangup to system-wide/shared max_getkey_inactivity (configured in SCFG->System->Advanced) - moved node-specific sec_warn (seconds of inactivity before sending warning) to inactivity_warn (a percentage of elapsed max inactivity before sending warning), also configured in SCFG->System->Advanced and used for both socket and getkey inactivity detection - Renamed JS console.inactivity_hangup to console.max_getkey_inactivity (old name remains as alias) - Renamed JS console.timeout to console.last_getkey_activity (old name remains as alias) - Removed JS console.inactivity_warning - Added JS console.max_socket_inactivity (current input_thread inactivity threshold) - New text.dat string: InactivityAlert (just contains 3 ^G/BELLs by default) used for non-visual inactive-user warning The MaxLoginInactivity setting in particular solves the problem of custom scripts (e.g. animated pause prompts) that just poll indefinitely for user input and never time-out - these will no longer cause nodes to be tied-up with inactive/bot users at login. You may ask yourself, how did I get here? No, you may ask yourself: why configure these socket inactivity max values in sbbs.ini? The reason is consistency: sbbs.ini is where the MaxInactivity is configured for all the other TCP servers and services. This fixes issue #534 for Krueger in #synchronet

  19. Rob Swindell (on Debian Linux)
    Thu Mar 16 2023 15:04:13 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_system.c diff
    Rename system.last* to system.last_*, leaving old names as aliases ... to make property names more consistent (e.g. with bbs.last_node). The old names (without the underscores) are still usable but won't appear in JSDOCS (i.e. jsobjs.html).

  20. Rob Swindell (on Debian Linux)
    Wed Mar 15 2023 23:45:30 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Add 'first_node' and 'last_node' properties to JS bbs object This allows scripts (e.g. login.js) to have custom behavior (e.g. shortening the maximum inactivity timeout) based on how close the current node is to the configured last node number. There may be other uses too, but for the vast majority of Synchronet systems, first_node will always be 1 and last_node the same as system.nodes/lastnode. Ugh, inconsistent naming. :-(

  21. Eric Oulashin
    Wed Mar 15 2023 16:18:19 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/DefaultTheme.cfg diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Added a new configurable text string: scanningMessageText

  22. Rob Swindell
    Wed Mar 15 2023 23:22:59 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/DefaultTheme.cfg diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'ddmsgreader_new_scanningSubBoardText' into 'master' Added a new configurable text string: scanningMessageText See merge request main/sbbs!267

  23. Eric Oulashin
    Wed Mar 15 2023 16:13:18 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: Makes use of console.aborted for proper screen updates after the user quits @ help screen pause. Shows sub-board status during a new message scan.

  24. Rob Swindell
    Wed Mar 15 2023 16:13:18 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'ddmsgreader_console_aborted_and_newscan_subboard_status' into 'master' DDMsgReader: Makes use of console.aborted for proper screen updates after the user quits @ help screen pause. Shows sub-board status during a new message scan. See merge request main/sbbs!266

  25. Rob Swindell (in GitKraken)
    Tue Mar 14 2023 10:51:27 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_archive.c diff
    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/js_client.c diff
    src/sbbs3/js_com.c diff
    src/sbbs3/js_console.cpp diff
    src/sbbs3/js_file.c diff
    src/sbbs3/js_file_area.c diff
    src/sbbs3/js_filebase.c diff
    src/sbbs3/js_global.c diff
    src/sbbs3/js_internal.c diff
    src/sbbs3/js_msg_area.c diff
    src/sbbs3/js_msgbase.c diff
    src/sbbs3/js_queue.c diff
    src/sbbs3/js_server.c diff
    src/sbbs3/js_socket.c diff
    src/sbbs3/js_system.c diff
    src/sbbs3/js_uifc.c diff
    src/sbbs3/js_user.c diff
    src/sbbs3/js_xtrn_area.c diff
    src/sbbs3/jsexec.c diff
    src/sbbs3/main.cpp diff
    Beautify JSDOCS Mainly capitalization, but some typos and added details.

  26. Rob Swindell (in GitKraken)
    Tue Mar 14 2023 11:09:25 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_file.c diff
    Fix JSDOC typo

  27. Rob Swindell (in GitKraken)
    Tue Mar 14 2023 11:10:21 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_filebase.c diff
    src/sbbs3/js_internal.c diff
    src/sbbs3/js_system.c diff
    Fix JSDOC property descriptions Add some missing descriptions, fix the order of others.

  28. Rob Swindell (on Debian Linux)
    Mon Mar 13 2023 21:28:44 GMT-0700 (PDT)
    Added Files:
    

    exec/default.js diff
    exec/load/shell_lib.js diff
    Synchronet classic shell ported to JS with helper library: shell_lib.js This mimics default.src very closely, even the curious clear-screens before the menu displays only when in non-expert mode (?). I'll likely be using this to recreate some other command shells. There's a couple of RIP-specific calls to getlines in default.src that I did not port over (yet). This commit fixes issue #526 for Nelgin (and any other JavaScript devs). Note: this file supercedes default.bin, so beware if you have customized default.src (and built your own custom default.bin), you'll want to move those to your mods directory to continue to use them. Another nail in Baja's coffin.

  29. Rob Swindell (on Debian Linux)
    Mon Mar 13 2023 20:20:45 GMT-0700 (PDT)
    Modified Files:
    

    exec/tempxfer.js diff
    Handle sub-dirs in the temp directory better Use rmfiles() to recursively clean the temp dir, if available. Don't count sub-directories (if somehow created) as files. Clean the temp dir when exiting this module too.

  30. Rob Swindell (on ChromeOS)
    Mon Mar 13 2023 20:07:42 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/client.h diff
    Removed unused client_rec structure definition

  31. Rob Swindell (on Debian Linux)
    Mon Mar 13 2023 19:40:00 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_global.c diff
    Fix GCC warning regarding incompatible pointer type

  32. Rob Swindell (on Debian Linux)
    Mon Mar 13 2023 19:41:03 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Include protocol and client IP address in FastCGI send error log msg

  33. Rob Swindell (in GitKraken)
    Mon Mar 13 2023 14:52:42 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/filedat.c diff
    src/sbbs3/filedat.h diff
    src/sbbs3/js_archive.c diff
    src/sbbs3/pack_qwk.cpp diff
    src/sbbs3/pack_rep.cpp diff
    src/sbbs3/sbbsecho.c diff
    src/sbbs3/un_qwk.cpp diff
    src/sbbs3/un_rep.cpp diff
    Fix issue with DIZ extraction creating subdirs in temp For archives with directories, the first call to extract_files_from_archive() from extract_diz() would create sub-directories in the target (temp) directory, but no files within them. To correctly solve the original problem identified in commit 59200e33, introduce/use a new 'recurse' argument to extract_files_from_archive() which means to recursively apply the file_list filter (if specified). Always pass 'with_path' argument as false to prevent sub-dir creation. The JS Archive.extract() method now excepts an additional boolean argument (recurse) following the file list arguments, default is false. Remove extra whitespace in Archive JSDOC method descriptions to be consistent with other object/class docs.

  34. Rob Swindell (in GitKraken)
    Mon Mar 13 2023 16:22:05 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/putmsg.cpp diff
    Fix typo in comment

  35. Rob Swindell (in GitKraken)
    Mon Mar 13 2023 17:25:49 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getkey.cpp diff
    src/sbbs3/js_console.cpp diff
    src/sbbs3/sbbs.h diff
    Enhance pause method flexibility (both C++ and JS) sbbs_t::pause() and JS console.pause()... now excepts an optional set_abort argument (default is true) which controls whether this method will set the global console-output aborted flag (sys_status&SS_ABORT in C++, console.aborted in JS) when the user hits the Quit or No key at the pause prompt. This method now returns a bool: false if the user entered No, Quit, or Ctrl-C at the pause prompt. Nothing makes use of either of these new pause() features yet, but its generally better to not set/rely on global state wherever possible.

  36. Rob Swindell (in GitKraken)
    Mon Mar 13 2023 17:51:53 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/dirwrap.c diff
    If delfiles() is called with a NULL spec, assume "all files" (*)

  37. Rob Swindell (in GitKraken)
    Mon Mar 13 2023 18:31:21 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_global.c diff
    Add new global JS function: rmfiles() (remove files) number rmfiles(directory, spec=*, keep=0) Removes files and sub-directories, recursively. Use with caution!

  38. Rob Swindell (in GitKraken)
    Sun Mar 12 2023 18:23:56 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/putmsg.cpp diff
    Add TRUNCOFF @-code to turn off line truncation (if already turned on)

  39. Rob Swindell (in GitKraken)
    Sun Mar 12 2023 18:19:47 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Fix PETSCII 40/80 column port connections for IPv6 The connected TCP port detection method only worked for IPv4, so automatically detecting a CBM/PETSCII connection over IPv6 didn't work. Thanks to Deuce's xp_sockaddr and helper functions, this was an easy change.

  40. Rob Swindell (in GitKraken)
    Sun Mar 12 2023 17:42:17 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbs_ini.c diff
    Add back a (different) typecast to eliminate MSVC warning

  41. Rob Swindell (on Debian Linux)
    Sun Mar 12 2023 17:36:21 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/putmsg.cpp diff
    Add TRUNCATE @-code to enable line truncation when too wide for user's terminal

  42. Rob Swindell (on Debian Linux)
    Sun Mar 12 2023 14:19:07 GMT-0700 (PDT)
    Modified Files:
    

    exec/msgscancfg.js diff
    Better to just break this loop than to call exit() exit()ing from a load()ed script can cause the parent script to terminate and we don't want that.

  43. Rob Swindell (in GitKraken)
    Sat Mar 11 2023 23:59:24 GMT-0800 (PDT)
    Modified Files:
    

    src/sbbs3/services.c diff
    Fix a couple of potential NULL-pointer deferences in js_initcx() failure cases service_client->client is NULL in these failure/error cases, so get the protocol string from the service_client->service (which is not NULL) instead.

  44. Rob Swindell (in GitKraken)
    Sat Mar 11 2023 23:59:37 GMT-0800 (PDT)
    Modified Files:
    

    src/sbbs3/sbbs_ini.c diff
    Remove extraneous ulong typedef

  45. Rob Swindell (on Debian Linux)
    Sat Mar 11 2023 23:59:11 GMT-0800 (PDT)
    Added Files:
    

    exec/filescancfg.js diff
    Modified Files:

    exec/default.src diff
    exec/wwiv.src diff
    New file transfer configuration sub menu script To replace some copy/pasta in *.src (and later *.js shells)

  46. Rob Swindell (in GitKraken)
    Sat Mar 11 2023 17:16:37 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/genwrap.c diff
    Fix mysterious double overflow issue in parse_byte_count() It's possible that some values (e.g. "16384P") exceed the storage (count of bytes) of a 64-bit integer, and such values were causing floating point exceptions when running sbbsctrl.exe, e.g. Faulting application name: sbbsctrl.exe, version: 3.20.0.0, time stamp: 0x00000000 Faulting module name: gdi32full.dll, version: 10.0.19041.2604, time stamp: 0x2b5302d5 Exception code: 0xc0000090 but interesting (and perhaps a clue), not with sbbs.exe. Anyway, this added range checking, limiting the maximum value to INT64_MAX (after division by unit, though there was no division-unit in the problem case, the "min_dspace" value parsing in scfglib2.c). Using conditional/ternary return statement had the same floating point exception occurrences, so this if-statement shouldn't be removed/changed/optimized! I suspect this has something to do with mix of Borland and MSVC run-time libs and perhaps different expectations or setups with regards to floating point exceptions. I did notice that when stepping through read_file_cfg(), I would get different return values for the same call to iniGetBytes() depending on whether it was initiated from sbbsctrl.exe (built with C++Builder) or sbbs.dll (built with MSVC). Thanks to Codefenix for providing the sample file.ini file that demonstrated the issue. This problem would've been very hard to root-cause otherwise!

  47. Rob Swindell (on ChromeOS)
    Sat Mar 11 2023 14:08:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    bbs.logoff() now returns a boolean: false if log-off was denied Previously, there was no good way for the caller to determine if the\ user opted (when prompted) to actually log-off or not.

  48. Rob Swindell (in GitKraken)
    Fri Mar 10 2023 17:48:54 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    More strict login-by-user-number support (parsing logic) Before now, if the sysop enabled login-by-user-number and the specified login ID *started* with a decimal digit, it'd be treated as a user number and converted to a 32-bit integer. This could result in weird stuff, like this error I got today: SMTP ... !ERROR -2 getting data on user (7000401005.gc7gg@synchro.net) 7,000,401,005 is clearly greater than the number of users in my user base on Vert, but since 7B is > 2.1B (0x7fffffff), the number would be parsed as a *negative* integer value and thus less than the total number of users in my userbase. An obvious solution would be to just turn of login-by-user-number, and for most systems, I suggest doing that (a system is less secure with it enabled). However, I want to leave the option for sysops (at least for now) and don't want this weird behavior so, a login by user number now requires that the entire login ID is just decimal numbers, nothing else, and the number is parsed as an unsigned integer. So yes, roll-over can happen for very high numbers (>4.2B), but in no instance will the number be parsed as negative and thus lead to an invalid user record look-up attempt.

  49. Rob Swindell (in GitKraken)
    Fri Mar 10 2023 19:17:53 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/sbbs.h diff
    Introduce sbbs_t::sync() method that does what the old SYNC/ASYNC macros do But... as rightful member of sbbs_t, thus useful from other scopes. Should get rid of all use of SYNC/ASYNC now then.

  50. Rob Swindell (in GitKraken)
    Fri Mar 10 2023 19:27:07 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/execmsg.cpp diff
    src/sbbs3/readmsgs.cpp diff
    src/sbbs3/sbbsdefs.h diff
    Fix 30+ year old typo on SCAN_CONT (continuous) macro name

  51. Rob Swindell (in GitKraken)
    Fri Mar 10 2023 19:39:09 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ansiterm.cpp diff
    src/sbbs3/bat_xfer.cpp diff
    src/sbbs3/chat.cpp diff
    src/sbbs3/con_out.cpp diff
    src/sbbs3/data.cpp diff
    src/sbbs3/download.cpp diff
    src/sbbs3/exec.cpp diff
    src/sbbs3/execfunc.cpp diff
    src/sbbs3/getkey.cpp diff
    src/sbbs3/inkey.cpp diff
    src/sbbs3/listfile.cpp diff
    src/sbbs3/logon.cpp diff
    src/sbbs3/prntfile.cpp diff
    src/sbbs3/qwk.cpp diff
    src/sbbs3/readmail.cpp diff
    src/sbbs3/readmsgs.cpp diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scansubs.cpp diff
    src/sbbs3/str.cpp diff
    src/sbbs3/telgate.cpp diff
    src/sbbs3/upload.cpp diff
    src/sbbs3/useredit.cpp diff
    src/sbbs3/viewfile.cpp diff
    src/sbbs3/writemsg.cpp diff
    Replace SYNC and ASYNC macros with calls to sbbs_t::sync() Does exactly the same thing, no change in behavior and unlikely there's any change in performance.

  52. Rob Swindell (in GitKraken)
    Fri Mar 10 2023 19:46:26 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/chat.cpp diff
    src/sbbs3/data.cpp diff
    src/sbbs3/exec.cpp diff
    src/sbbs3/getkey.cpp diff
    src/sbbs3/getnode.cpp diff
    src/sbbs3/inkey.cpp diff
    src/sbbs3/sbbsdefs.h diff
    Replace use of SAVELINE/RESTORELINE with sbbs_t method calls That's all these macros were doing anyway, so no change.

  53. Rob Swindell (in GitKraken)
    Fri Mar 10 2023 19:57:59 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsdefs.h diff
    CRLF macro now calls sbbs_t::newline() No change in behavior. Eventually would like to get rid of all the CRLF (and CLS) macro usage.

  54. Rob Swindell (in GitKraken)
    Fri Mar 10 2023 19:59:24 GMT-0800 (PST)
    Modified Files:
    

    exec/load/sbbsdefs.js diff
    Fix 30+ year old typo copy/pasted from sbbsdefs.h It's SCAN_CONT (for continuous). <sigh> Leave SCAN_CONST alias for backwards-compatibility, but deprecated.

  55. Rob Swindell (on Debian Linux)
    Thu Mar 09 2023 18:38:23 GMT-0800 (PST)
    Modified Files:
    

    exec/newuser_signup.js diff
    Add a notice clarify that this script is not actually used by anything and suggestions how to achieve what the reader/sysop is wanting.

  56. Rob Swindell (on Debian Linux)
    Thu Mar 09 2023 17:31:56 GMT-0800 (PST)
    Modified Files:
    

    exec/rlogin.js diff
    Re-write to allow options in any order, more control over all behavior Previously, in order to just specify the terminal-type string, the sysop would also have to pass new values for the tg-mode, client-name and server-name, which was not very friendly. We still support the old syntax where order of arguments matters, but also a new better syntax for options (which may now come before or after the required address[:port] argument): -c <client-name> (default: user alias) -s <server-name> (default: user real name) -t <terminal-type> (e.g. "xtrn=doorcode" to auto-exec door on server) -T <connect-timeout-seconds> (default: 10 seconds) -m <telnet-gateway-mode> (Number or TG_* vars OR'd together, default: 0) -p send current user alias and password as server and client-name values -q don't display banner or pause prompt displayed (quiet) -P don't pause for user key-press -C don't clear screen after successful session For arguments that take a value (e.g. -c, -s, -t, -T, -m), the value may immediately follow the option letter (e.g. "-cMyName") or be specified in the following argument (e.g. "-c MyName"). Multiple options cannot be stuck together in the same option (e.g. use '-C -P' instead of '-CP'). If the RLogin server is a Synchronet BBS, you probably want to specify the '-p' option which will send the current user's alias and password in the RLogin connection parameters that Synchronet expects them. The sysop now has better control over the output (banner, screen-clearing) and the pause prompt that was previously hard-coded.

  57. Rob Swindell (in GitKraken)
    Thu Mar 09 2023 17:30:29 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/telgate.cpp diff
    [telnet|rlogin]_gate now returns bool (false if failed to connect) Previously, there was no real way to tell if the call to telnet_gate() or rlogin_gate() was successful (e.g. to display or an error message to the user), though there were error/warning messages logged for the sysop. Equivalent JS bbs object methods now return Boolean too. Include ":port" part of address argument to bbs.[telnet|rlogin]_gate methods in JSDOCS. Removed a bunch of extraneous (copy-pasted?) JS_SET_RVAL() calls from js_bbs.cpp. This just makes the code a little easier to grok.

  58. Eric Oulashin
    Thu Mar 09 2023 13:46:13 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: Fixes for time zone alignment and key help for the message list. Should fix #531

  59. Rob Swindell
    Thu Mar 09 2023 14:02:36 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'ddmsgreader_531_timezone_and_key_help_alignment' into 'master' DDMsgReader: Fixes for time zone alignment and key help for the message list. Should fix #531 Closes #531 See merge request main/sbbs!265

  60. Deucе
    Mon Mar 06 2023 10:04:35 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    src/syncterm/modem.c diff
    A couple fixes for NORTS mode 1) In the BBS list, show flow control, not TCP port 2) Properly ignore DCD

  61. Rob Swindell (on ChromeOS)
    Sun Mar 05 2023 14:13:52 GMT-0800 (PST)
    Modified Files:
    

    exec/addfiles.js diff
    Fix typo in help output

  62. Rob Swindell (on ChromeOS)
    Sun Mar 05 2023 17:15:36 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/data_ovl.cpp diff
    src/sbbs3/execmsg.cpp diff
    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/sbbs.h diff
    Add sbbs_t::reinit_msg_ptrs() - eliminates some copy/pasta Clarify the JS bbs.reinit_msg_ptrs() method description a bit.

  63. Rob Swindell (on ChromeOS)
    Sun Mar 05 2023 17:29:39 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Add JS bbs methods: save_msg_scan() and reload_msg_scan() These methods aren't normally needed (msg scan config/ptrs are automatically loaded upon logon and saved upon logoff), but for users (e.g. sysops) that can be logged-in concurrently or experimenting with scans, these methods can be useful and I plan to expose in a loadable module next.

  64. Rob Swindell (on ChromeOS)
    Sun Mar 05 2023 18:55:30 GMT-0800 (PST)
    Added Files:
    

    exec/msgscancfg.js diff
    Modified Files:

    exec/default.src diff
    exec/major.src diff
    exec/renegade.src diff
    exec/sdos.src diff
    exec/simple.src diff
    exec/wildcat.src diff
    exec/wwiv.src diff
    text/menu/maincfg.msg diff
    New module: msgscancfg.js to replace copy/pasta msg config menu in *.src Also added 2 new menu options: R - re-load msg scan config & pointers W - save msg scan config & pointers Leaving the menu file named "maincfg.msg" even though that's a pretty badly named file - should rename that file at some point, but keep 8.3 format for DOS (e.g. TheDraw, AcidDraw) compatibility. mscancfg.msg maybe? Ah, the fun of abbreviating things to 8 chars again.

  65. Rob Swindell (on ChromeOS)
    Sun Mar 05 2023 13:53:17 GMT-0800 (PST)
    Modified Files:
    

    exec/addfiles.js diff
    Add support for an optional description character offset (number) arg If all descriptions start a fixed offset and the default parsing logic (regex) isn't working for the sysop, they can specify the exact error offset to use for the beginning of each file's description. This offset is only used for the initial line of the description, not the continuation lines, but perhaps that could be done if needed. This is an attempt to address issue #530 I first attempted to use "Lookbehind Assertions" in the regex, but didn't have any success and decided the brute force method that the old addfiles utility used might be as simpler solution and provide an effective work-around for more potential issues with auto-detecting the beginning of the useful file description. I also added descriptions of the optional arguments to the help output.

  66. Rob Swindell (in GitKraken)
    Sat Mar 04 2023 18:38:31 GMT-0800 (PST)
    Modified Files:
    

    ctrl/text.dat diff
    exec/load/text.js diff
    src/sbbs3/newuser.cpp diff
    src/sbbs3/text.h diff
    src/sbbs3/text_defaults.c diff
    Add text.dat string: NewUserValEmailSubj This fixes issue #62

  67. Rob Swindell (on ChromeOS)
    Sat Mar 04 2023 17:41:57 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/js_user.c diff
    src/sbbs3/logon.cpp diff
    src/sbbs3/readmail.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/userdat.c diff
    src/sbbs3/userdat.h diff
    src/sbbs3/userfields.h diff
    Add user_t.mail (in JS, user.mail_settings) to remember mail preferences Right now, the only preference is reverse mail listings (oldest first or newest first). These settings are only used when reading "your mail", not any other kind of mail reading. bbs.read_mail() now returns the user-adjusted loadmail_mode value and this allows us to determine the user's preferences and save them after this function/method is called. A readmail_mod can now return a number (other than 0) and that will be used as the return value of this method. sbbs_t::readmail() now does the adjustment of the passed lm_mode before calling any installed readmail_mod, so if for example, deleted message viewing is enabled by the sysop, those LM_* flags might be set now in the argument to the readmail_mod, wherase they never would before. There is not yet any way for the sysop to set a new user's default mail_settings, they'll just default to 0 for now. email_sec.js will get some adjustments to use/store the user.mail_settings next.

  68. Rob Swindell (on ChromeOS)
    Sat Mar 04 2023 17:52:18 GMT-0800 (PST)
    Modified Files:
    

    exec/email_sec.js diff
    Use/store the new user.mail_settings property to track the user's preference for reverse-ordering when listing/reading mail messages. The Un-read mail command still just always uses reverse ordering.

  69. Rob Swindell (in GitKraken)
    Fri Mar 03 2023 19:17:48 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/atcodes.cpp diff
    src/sbbs3/bat_xfer.cpp diff
    src/sbbs3/chat.cpp diff
    src/sbbs3/chk_ar.cpp diff
    src/sbbs3/filedat.c diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/listfile.cpp diff
    src/sbbs3/netmail.cpp diff
    src/sbbs3/pack_qwk.cpp diff
    src/sbbs3/userdat.c diff
    src/sbbs3/userdat.h diff
    src/sbbs3/xtrn.cpp diff
    src/sbbs3/xtrn_sec.cpp diff
    Add/use user_available_credits() helper function Handles integer overflow in the summing of user's credits and remaining daily free credits.

  70. Rob Swindell (on Debian Linux)
    Fri Mar 03 2023 17:59:53 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/bat_xfer.cpp diff
    Fix missing 'autohang' argument in call to protocol() Caught by a GCC warning.

  71. Rob Swindell (in GitKraken)
    Fri Mar 03 2023 17:41:39 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/atcodes.cpp diff
    Add CPS @-code which is used to display the current download CPS In a minute, this CPS value will be of more use since it'll be reflective of the user's actual download rate (in characters/bytes per second) instead of just some randomly-chosen numeric constant.

  72. Rob Swindell (in GitKraken)
    Fri Mar 03 2023 17:41:39 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/bat_xfer.cpp diff
    src/sbbs3/download.cpp diff
    src/sbbs3/getmsg.cpp diff
    src/sbbs3/listfile.cpp diff
    src/sbbs3/sbbs.h diff
    Dynamically recalculate the user's download rate (in CPS) Upon successful download of a file, recalculate and store the user's download CPS (characters/bytes per second), mainly for subsequent transfer time estimates.

  73. Rob Swindell (in GitKraken)
    Fri Mar 03 2023 17:41:39 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/upload.cpp diff
    Since protocol() now calculates elapsed time, use that

  74. Rob Swindell (in GitKraken)
    Fri Mar 03 2023 17:41:39 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/email.cpp diff
    Use proper 64-bit function for converting an off_t to comma-separated

  75. Eric Oulashin
    Fri Mar 03 2023 17:14:29 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.cfg diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    DDMsgReader: When forwarding a message, now prepends the subject with "Fwd: " before editing the subject.

  76. Rob Swindell
    Fri Mar 03 2023 17:14:29 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.cfg diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    Merge branch 'ddmsgreader_forward_subj_prepend' into 'master' DDMsgReader: When forwarding a message, now prepends the subject with "Fwd: " before editing the subject. See merge request main/sbbs!264

  77. Rob Swindell (on Debian Linux)
    Fri Mar 03 2023 16:48:23 GMT-0800 (PST)
    Modified Files:
    

    exec/init-fidonet.ini diff
    Fix Zone 1 filegate.net BACKBONE.NA link Not sure when this changed, but Thearcadeguy let me know it was a broken link.

  78. Rob Swindell (on Debian Linux)
    Fri Mar 03 2023 16:49:30 GMT-0800 (PST)
    Modified Files:
    

    exec/userlist.js diff
    When sorting by logon date, display most recent first

  79. Rob Swindell (on Debian Linux)
    Fri Mar 03 2023 12:54:15 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_user.c diff
    src/sbbs3/logon.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/userdat.c diff
    src/sbbs3/userfields.h diff
    Introduced user download_cps property Will track the user's last succsesful file-download transfer rate in characters (bytes) per second. I'm not calculating or storing this rate yet, but will be soon. This will make the file download ETAs more realistic and no longer hard-coded to 3000 cps (which now defaults to 10000 cps, to keep up with the times). New field added to user.tab placed adjacent to the other File xfer stats, which means the leech attempt counter (likely always 0) was moved to the end of the user record.

  80. Rob Swindell (in GitKraken)
    Thu Mar 02 2023 17:42:57 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    The NoAccess* text.dat strings are not appropriate 'reason' codes These text.dat strings require an argument (and normally used with the NOACCESS @-code which uses the noaccess_str and noaccess_val member variables), so not appropriate to use as a reason code here. Use more generic (no argument) text.dat item numbers instead.

  81. Rob Swindell (in GitKraken)
    Thu Mar 02 2023 17:42:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/putnode.cpp diff
    src/sbbs3/sbbs.h diff
    Create sbbs_t::putnode_downloading() Migrated from sbbs_t::start_batch_download(), this just calculates the ETA (of transfer completion) and writes to the node's aux field in the proper format.

  82. Rob Swindell (in GitKraken)
    Thu Mar 02 2023 17:42:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/filedat.c diff
    Avoid possible divide-by-zero in gettimetodl() Default to 100000 (cps) if passed a rate_cps argument value of 0.

  83. Rob Swindell (in GitKraken)
    Thu Mar 02 2023 17:42:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/listfile.cpp diff
    Use the new putnode_downloading() function Eliminate some copy/pasta.

  84. Rob Swindell (in GitKraken)
    Thu Mar 02 2023 17:42:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/logon.cpp diff
    Remove defunct files from batch download queue during logon If a user doesn't have access to download a file that's in their batch queue, remove it without saying anything to the user (but log a notice-level message about it) during logon. Files that no longer exist in the filebase are treated the same way.

  85. Rob Swindell (in GitKraken)
    Thu Mar 02 2023 17:42:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/bat_xfer.cpp diff
    Better access enforcement to files in batch download queues If a file gets added to a batch download queue that a user doesn't have download-access to (at the time of batch download), deal with that gracefully and consistently. start_batch_download(): - Now checks current user access to download the file in both single-file and batch modes - Now performs credit-check in single-file mode (wasn't doing so previously) - totalsize of multi-file batch download queue is now calculated again (apparently removed/broken in the new filebase conversion of v3.19), so download ETA should be calculated more accurately (?) again - Use gettimetodl() to calculate each file's download time for multi-file downloads - Using new putnode_download() method to write node downloading "action" and ETA-in-aux fields - The node status wasn't being updated at all before start of download in single-file mode - fixed create_batchdn_lst() : - Checks each file still downloadable by the user and if not, removes from the queue (and the generated list file). - Performs credit check and removes files that exceed available user credit - returns true only when 1 or more files is added to the batch download list file addtobatdl() - Removed redundant 'D' restriction check - this is handled by can_user_download() check already. - Use the 'reason' out parameter from can_user_download() to determine which error string to display (not always CantDownloadFromDir).

  86. Eric Oulashin
    Thu Mar 02 2023 16:57:12 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    DDMsgReader: Don't prepend "Fwd: " to forwarded messages

  87. Rob Swindell
    Thu Mar 02 2023 17:34:59 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Merge branch 'ddmsgreader_forward_dont_prepend_fwd' into 'master' DDMsgReader: Don't prepend "Fwd: " to forwarded messages See merge request main/sbbs!263

  88. Eric Oulashin
    Thu Mar 02 2023 14:06:23 GMT-0800 (PST)
    Added Files:
    

    xtrn/ddfilelister.js diff
    Modified Files:

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    ddfilelister: Now allows downloading a single selected file with the D key

  89. Rob Swindell
    Thu Mar 02 2023 14:06:23 GMT-0800 (PST)
    Added Files:
    

    xtrn/ddfilelister.js diff
    Modified Files:

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Merge branch 'ddfilelister_download_single_with_d' into 'master' ddfilelister: Now allows downloading a single selected file with the D key See merge request main/sbbs!261

  90. Eric Oulashin
    Thu Mar 02 2023 13:41:41 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: When forwarding a message, the subject can now be edited before sending the message

  91. Rob Swindell
    Thu Mar 02 2023 13:41:41 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'ddmsgreader_forward_edit_subject' into 'master' DDMsgReader: When forwarding a message, the subject can now be edited before sending the message Closes #528 See merge request main/sbbs!262

  92. Rob Swindell (on Debian Linux)
    Thu Mar 02 2023 00:32:03 GMT-0800 (PST)
    Modified Files:
    

    src/smblib/smbstr.c diff
    Better automatic network address type detection smb_netaddr_type(): - if passed NULL or a string that begins with whitespace, now returns NET_NONE. - if passed a string that begins with '@', now returns NET_UNKNOWN. - if the user.name portion of an otherwise value Internet email address contains a space, now returns NET_NONE. smb_get_net_type_by_addr() - if passed a string that begins with '@', now returns NET_UNKNOWN. - if passed a string with space following '@', will now return NET_UNKNOWN. - if passed a string without a dot following '@', will never return NET_INTERNET. Unrelated change: Add the missing FILE attribute to smb_msgattrstr()

  93. Rob Swindell (on Debian Linux)
    Thu Mar 02 2023 00:48:20 GMT-0800 (PST)
    Added Files:
    

    exec/bench/nettype.js diff
    A set of tests for the global netaddr_type() method

  94. Rob Swindell (on Debian Linux)
    Thu Mar 02 2023 00:49:01 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_global.c diff
    netaddr_type() now returns NET_NONE when passed null or undefined ... instead of undefined, to match what the documentation already stated.

  95. Rob Swindell (on Debian Linux)
    Thu Mar 02 2023 01:04:56 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mailsrvr.c diff
    Fix false FORGED mail header 'FROM' field detection/rejection Pretty much any From field that contains an '@' in the username portion was subject to comparison to the full email address, but clearly some of these rejected emails were not forge attempts: 'Chris @ StubHub' vs 'events@mail.stubhub.com' 'Eric S. Raymond (@esr)' vs 'gitlab@mg.gitlab.com' Fixed by requiring that the sender name is actually a well-formed Internet email address using smb_netaddr_type(), which was also recently improved to be more accurate. Unrelated change: include reverse-path (email address for bounces) in ILLEGALLY-LONG body and header line log messages (usually SPAM from what I can tell).

  96. Rob Swindell (on Debian Linux)
    Thu Mar 02 2023 01:09:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Re-publish the server error_count topic in mqtt_startup() Fixes a stale non-zero error_count retained topic.

  97. Rob Swindell (on Debian Linux)
    Tue Feb 28 2023 13:25:41 GMT-0800 (PST)
    Modified Files:
    

    exec/newuser.js diff
    Fix @-code replacment logic in newuser.msg Fix 2 issues with commit df799b0a: 1. Need to replace @-code globally, otherwise only the first @-code was replaced 2. Need to strip the leading and trailing @'s from the code before passing to bbs.atcode() - fix for issue #527

  98. Rob Swindell (in GitKraken)
    Mon Feb 27 2023 18:33:45 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mailsrvr.c diff
    Handle illegally-long received SMTP lines better SMTP commands have a shorter limit (510 versus 998) and the body text line limit needed to account for dot-stuffing.

  99. Rob Swindell (on Debian Linux)
    Mon Feb 27 2023 17:41:36 GMT-0800 (PST)
    Modified Files:
    

    exec/msglist.js diff
    Remove accidentally-committed debug output And some trailing white-space

  100. Rob Swindell (on Debian Linux)
    Mon Feb 27 2023 17:31:54 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mailsrvr.c diff
    Resolve new GCC printf-format warning in new log message text

  101. Rob Swindell (in GitKraken)
    Mon Feb 27 2023 17:30:32 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mailsrvr.c diff
    Reject SMTP session from any client that sends illegally-long lines Log a warning message and send a "500 Line too long" before disconnecting any SMTP client that sends lines > 998 characters in length. Technically, we can handle lines up to 1023 characters, but then we could get out of sync with the client if it sends exactly 1023 chars and then a new-line char (which we would interpret as a blank line, separating the message header and body) - so just punt the client who doesn't obey the rules of the protocol.

  102. Rob Swindell (in GitKraken)
    Mon Feb 27 2023 15:22:41 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/makeuser.c diff
    src/sbbs3/newuser.cpp diff
    src/sbbs3/userdat.c diff
    Update/use newuserdefaults() Update newuserdefaults() to use the new sysop-configured Chat and QWK new user settings/values (commit d1d49e99). Use newuserdefaults() in newuser.cpp and makeuser.c, eliminating a lot of copy/pasta.

  103. Rob Swindell (on Debian Linux)
    Mon Feb 27 2023 17:31:54 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mailsrvr.c diff
    Resolve new GCC printf-format warning in new log message text

  104. Rob Swindell (in GitKraken)
    Mon Feb 27 2023 17:30:32 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mailsrvr.c diff
    Reject SMTP session from any client that sends illegally-long lines Log a warning message and send a "500 Line too long" before disconnecting any SMTP client that sends lines > 998 characters in length. Technically, we can handle lines up to 1023 characters, but then we could get out of sync with the client if it sends exactly 1023 chars and then a new-line char (which we would interpret as a blank line, separating the message header and body) - so just punt the client who doesn't obey the rules of the protocol.

  105. Rob Swindell (in GitKraken)
    Mon Feb 27 2023 15:22:41 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/makeuser.c diff
    src/sbbs3/newuser.cpp diff
    src/sbbs3/userdat.c diff
    Update/use newuserdefaults() Update newuserdefaults() to use the new sysop-configured Chat and QWK new user settings/values (commit d1d49e99). Use newuserdefaults() in newuser.cpp and makeuser.c, eliminating a lot of copy/pasta.

  106. Eric Oulashin
    Sat Feb 25 2023 14:23:08 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    ddfilelister: Now supports being used as a loadable module for Scan Dirs and List Files (applicable for Synchronet 3.20+)

  107. Rob Swindell
    Mon Feb 27 2023 00:31:04 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Merge branch 'ddfilelister_loadable_module_support' into 'master' ddfilelister: Now supports being used as a loadable module for Scan Dirs and List Files (applicable for Synchronet 3.20+) See merge request main/sbbs!260

  108. Rob Swindell (on ChromeOS)
    Mon Feb 27 2023 00:25:32 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/newuser.cpp diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    Make new user QWK-related and Chat-related settings configurable Added chat-settings to SCFG->System->New User Values->Toggle Options Added new menu: SCFG->System->New User Values->QWK Packet Settings Moved SCFG->System->New User Values->Question Toggles to: SCFG->System->New User Prompts... This fixes issue #11

  109. Rob Swindell (on ChromeOS)
    Sun Feb 26 2023 21:47:49 GMT-0800 (PST)
    Modified Files:
    

    exec/xtrnmenu.js diff
    Replace load() of chat_sec.js with call of (new method) bbs.chat_sec()

  110. Rob Swindell (on ChromeOS)
    Sun Feb 26 2023 18:18:02 GMT-0800 (PST)
    Added Files:
    

    exec/feedback.src diff
    Modified Files:

    exec/default.src diff
    exec/major.src diff
    exec/pcboard.src diff
    exec/renegade.src diff
    exec/sdos.src diff
    exec/simple.src diff
    exec/wildcat.src diff
    exec/wwiv.src diff
    src/sbbs3/chat.cpp diff
    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    Add configurable chat section module, defaults to "chat_sec" This includes a new JS bbs method: bbs.chat_sec() And the old command shells written in Baja now call the PCMS chat_section function, as they used to, rather than hard-coding the name of the module to execute.

  111. Rob Swindell (on ChromeOS)
    Sun Feb 26 2023 16:37:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/js_user.c diff
    src/sbbs3/userdat.c diff
    src/sbbs3/userdat.h diff
    Add/use new helper function is_user_sysop()

  112. Rob Swindell (on ChromeOS)
    Sun Feb 26 2023 16:37:51 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/email.cpp diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    Add optional/configurable feedback module Most sysops didn't know it, but if exec/feedback.* existed, it would be executed just before any user sent an email to the sysop (user #1), excluding new user validation requests: - make this module name configurable and loadable from mods - support JS module here (exit(1) to abort the feedback) - invoke for email being sent to *any* sysop (not just user #1) - don't invoke the module when sending *from* a sysop account This fixes issue #16

  113. Rob Swindell (on ChromeOS)
    Sun Feb 26 2023 14:16:59 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    src/sbbs3/sbbs.h diff
    GCC 4.8.5 can't initialize a class char-array member with = "" syntax This fixes issue #525 Thanks to Nelgin for providing the test platform.

  114. Rob Swindell (on ChromeOS)
    Sun Feb 26 2023 12:57:06 GMT-0800 (PST)
    Modified Files:
    

    install/GNUmakefile diff
    Fix fatal: not a git repository (or any of the parent directories): .git Apparently the cwd is changed back after ever command is invoked.

  115. Rob Swindell (in GitKraken)
    Sun Feb 26 2023 12:38:25 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Fix typo in JSDOC help for batch_clear() method.

  116. Rob Swindell (in GitKraken)
    Sun Feb 26 2023 12:38:25 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/bat_xfer.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    Add new loadable module for batch file transfer menu You want to replace the built-in batch file transfer menu with your own loadable module across all command shells? Now you can.

  117. Rob Swindell (on Debian Linux)
    Sun Feb 26 2023 12:18:18 GMT-0800 (PST)
    Modified Files:
    

    install/GNUmakefile diff
    Don't use 'git -C' since apparently older versions of git don't have it <nelgin> git -C /home/bbs/sbbs/repo remote set-url origin https://gitlab.synchro.net/main/sbbs.git <nelgin> Unknown option: -C <nelgin> using GNUMakefile on CentOS 7 This partially reverts commit 34909899

  118. Rob Swindell (on ChromeOS)
    Sun Feb 26 2023 00:05:31 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsdefs.h diff
    Expand user_t.curxtrn from 8 to 16 chars (the new maxlen of int-codes) Apparently I missed this in commit b1f3fef6.

  119. Rob Swindell (on ChromeOS)
    Sat Feb 25 2023 23:34:00 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/exec.cpp diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/uedit/uedit.c diff
    src/sbbs3/useredit.cpp diff
    src/sbbs3/useredit/MainFormUnit.cpp diff
    Increase user's hostname field (aka user_t.comp) from 30 to 60 chars Many dynamically-generated (e.g residential) hostnames are much > 30 chars. And we can now increase user.tab fields fairly arbitrarily, so let's. :-) Also rename LEN_COMP to LEN_HOST. Some day I'll change all the user_t comp references to 'host', but not today.

  120. Rob Swindell (on ChromeOS)
    Sat Feb 25 2023 23:08:20 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/useredit.cpp diff
    Display more of the user's password Reversed the order of the pwmod date and the password itself. The number of chars of the user's password displayed depends on the terminal width. e.g. on an 80 column terminal, 18 chars will be displayed. If the user's password is longer than what can be displayed, this is indicated with a trailing "..". Wider displays (e.g. 132 column) can display all 40 chars of a user's password. This fixes issue #442 When passwords aren't displayed (due to sysop configuration), show "<hidden>" instead of "XXXXXXXX" to make that more clear.

  121. Rob Swindell (on ChromeOS)
    Sat Feb 25 2023 23:12:59 GMT-0800 (PST)
    Modified Files:
    

    ctrl/text.dat diff
    Display more of the user's password Reversed the order of the pwmod date and the password itself. The number of chars of the user's password displayed depends on the terminal width. e.g. on an 80 column terminal, 18 chars will be displayed. If the user's password is longer than what can be displayed, this is indicated with a trailing "..". Wider displays (e.g. 132 column) can display all 40 chars of a user's password. This fixes issue #442 When passwords aren't displayed (due to sysop configuration), show "<hidden>" instead of "XXXXXXXX" to make that more clear.

  122. Rob Swindell (on ChromeOS)
    Sat Feb 25 2023 21:50:29 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Create bbs.batch_clear() method Pass argument of 'true' to clear upload queue, otherwise download queue is cleared. This fixes issue #488

  123. Rob Swindell (on ChromeOS)
    Sat Feb 25 2023 19:40:02 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfglib1.c diff
    Define/use some more sensible defaults for new user Q's, etc. We don't yet really work with a 0-byte main.ini file, but this gets us a little closer.

  124. Rob Swindell (on ChromeOS)
    Sat Feb 25 2023 18:45:52 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfgchat.c diff
    src/sbbs3/scfg/scfgmsg.c diff
    src/sbbs3/scfg/scfgsub.c diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfg/scfgxfr2.c diff
    src/sbbs3/scfg/scfgxtrn.c diff
    Use K_NOSPACE (don't allow spaces) when inputting internal codes and prefixes, suffixes.

  125. Rob Swindell (on Debian Linux)
    Sat Feb 25 2023 15:18:11 GMT-0800 (PST)
    Modified Files:
    

    install/systemd/sbbs.service diff
    Start after network-online instead of just 'network.target'

  126. Rob Swindell (on Debian Linux)
    Sat Feb 25 2023 15:22:47 GMT-0800 (PST)
    Added Files:
    

    install/systemd/ircd.service diff
    A sample systemd unit file that can be used to run ircd via jsexec I'm using this on cvs.synchro.net along with an override.conf file in /etc/systemd/system/ircd.service.d/ [Service] ExecStart= ExecStart=/sbbs/exec/jsexec -A -L7 -hcvs.synchro.net ircd.js -a cvs.synchro.net LimitCORE=infinity

  127. Rob Swindell (on Debian Linux)
    Sat Feb 25 2023 15:01:52 GMT-0800 (PST)
    Modified Files:
    

    exec/load/dns.js diff
    Throw a more helpful exception when no nameservers specified/available My /etc/resolv.conf was wiped by Network Manager (gee, thanks), so ircd.js was throwing the following unhelpful exceptions when starting up: Feb 25 13:47:51 git jsexec[19108]: !JavaScript : uncaught exception: Unable to create any sockets Feb 25 13:47:51 git jsexec[19108]: !JavaScript : uncaught exception: Unable to create any sockets First, instead of throwing a string, throw an Error object so we can actually know where the exception ocurred. Please, everyone, throw Errors not Strings. Second, throw a different more helpful exception if there are no nameservers specified in the DNS constructor or configured on the system.

  128. Eric Oulashin
    Sat Feb 25 2023 02:02:29 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    DDMsgReader: Ctrl-C can now cancel message scans, and message scan status text is word-wrapped for the terminal width

  129. Rob Swindell
    Sat Feb 25 2023 02:02:29 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Merge branch 'dd_msg_reader_wrapping_ctrlc_scans' into 'master' DDMsgReader: Ctrl-C can now cancel message scans, and message scan status text is word-wrapped for the terminal width Closes #522 and #523 See merge request main/sbbs!259

  130. Rob Swindell (in GitKraken)
    Fri Feb 24 2023 21:20:08 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/text_defaults.c diff
    Re-color the *DownloadUserMsg strings a little bit

  131. Rob Swindell (on Debian Linux)
    Fri Feb 24 2023 21:18:17 GMT-0800 (PST)
    Modified Files:
    

    ctrl/text.dat diff
    Re-color the *DownloadUserMsg strings a little bit They were too hard for me to read before, being all high intensity.

  132. Rob Swindell (in GitKraken)
    Fri Feb 24 2023 21:15:40 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    src/sbbs3/sbbs.h diff
    Initialize sbbs_t member variables in class definition instead of ctor Remove the (now) unnecessary explicit initializations (e.g. to zero, blank, etc.) from the sbbs_t constructor.

  133. Rob Swindell (on ChromeOS)
    Fri Feb 24 2023 18:36:56 GMT-0800 (PST)
    Modified Files:
    

    exec/init-fidonet.ini diff
    Fix the fsxNet infopack and direct-echolist download links Apparently Paul made some changes (nobody reports these things).

  134. Rob Swindell (on ChromeOS)
    Fri Feb 24 2023 18:37:42 GMT-0800 (PST)
    Modified Files:
    

    exec/init-fidonet.js diff
    Use Archive() instead of executing 'unzip' to get echolist from infopack Fixes issue #311 Also clarify "Internet e-mail" address (unrelated)

  135. Rob Swindell (on ChromeOS)
    Fri Feb 24 2023 17:47:13 GMT-0800 (PST)
    Modified Files:
    

    exec/init-fidonet.js diff
    Prompt for sysop's valid/working Internet email address ... and use as reply-to address for any Internet-mailed node number applications. This fixes issue #456 reported by Nick Andre.

  136. Rob Swindell (on ChromeOS)
    Fri Feb 24 2023 17:06:34 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/listfile.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/scandirs.cpp diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    Add support for 3 new loadable modules for file scanning/listing/viewing Configured in SCFG->System->Loadable Modules: Scan Dirs: User scans one or more directories for (e.g. new) files List Files: User lists files within a file directory View File Info: User views detailed information on files in a directory This addresses/fixes feature request #521 for Nightfox Will need to document the mode argument bit values on the wiki, but it's the usual suspects: FL_* for scandirs and listfiles and FI_* for fileinfo. The scandirs_mod will be passed an extra bool (0/1) arg that indicates whether or not the user is scanning *all* directories. Test results would be welcome

  137. echicken
    Fri Feb 24 2023 10:40:38 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/readme.txt diff
    xtrn/wttr.in/wttr-lib.js diff
    Default view to 1AFn, best fit for 24 rows

  138. echicken
    Fri Feb 24 2023 10:40:57 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/wttr.js diff
    Add a blank line before pause

  139. echicken
    Fri Feb 24 2023 10:30:43 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/locator.js diff
    Avoid ip info probably not pertaining to this client

  140. echicken
    Fri Feb 24 2023 10:31:29 GMT-0800 (PST)
    Modified Files:
    

    exec/websocketservice.js diff
    Create ip temp file immediately on connect.

  141. echicken
    Fri Feb 24 2023 08:21:30 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/wttr-lib.js diff
    xtrn/wttr.in/wttr.js diff
    Allow command line arguments to override modopts values. Parameter names are -- prefixed, with a space between name and value. Quotes etc. around values are not handled; use escapes. We can get fancier with this later if it's necessary. Example: ?wttr.js --fallback_location Toronto --cache_ttl 0

  142. echicken
    Fri Feb 24 2023 07:34:42 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/locator.js diff
    xtrn/wttr.in/wttr.js diff
    Allow this to run under jsexec

  143. echicken
    Fri Feb 24 2023 07:35:35 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/wttr-lib.js diff
    Skip cache stuff if 0 ttl; keep some methods private.

  144. echicken
    Fri Feb 24 2023 07:35:54 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/xterm-colors.js diff
    Keep some methods private for no particular reason.

  145. echicken
    Thu Feb 23 2023 23:16:27 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/locator.js diff
    Comments for the future

  146. echicken
    Thu Feb 23 2023 23:17:04 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/wttr-lib.js diff
    Use new modopts settings instead of args.

  147. echicken
    Thu Feb 23 2023 23:17:27 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/wttr.js diff
    Command line arguments no longer supported, use modopts instead. See readme.txt for details on modopts.d/wttr.ini.

  148. echicken
    Thu Feb 23 2023 23:18:16 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/readme.txt diff
    Notes on config and format

  149. echicken
    Thu Feb 23 2023 20:41:32 GMT-0800 (PST)
    Modified Files:
    

    exec/websocketservice.js diff
    Better cleanup of ipFile Changed scope of ipFile variable so we can access it in the finally{} block. Should prevent stale files hanging around if the service encounters an error.

  150. echicken
    Thu Feb 23 2023 19:52:19 GMT-0800 (PST)
    Modified Files:
    

    exec/websocketservice.js diff
    Write websocket client IP address to temp file. Scripts running on upstream (terminal) server can find actual client IP in: system.temp_path + 'sbbs-ws-' + client.socket.remote_port + '.ip'

  151. echicken
    Thu Feb 23 2023 19:55:16 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/locator.js diff
    Read client IP from websocketservice-provided temp file if exists. Ditch TTYLOC method; no longer needed. (Note: websocketservice's UTF-8 handling rendered this unusable anyway.) Remove rlogin/webv4 specific lookup method; no longer needed.

  152. echicken
    Thu Feb 23 2023 19:57:34 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/wttr-lib.js diff
    Remove some debug logging.

  153. Rob Swindell (on Debian Linux)
    Wed Feb 22 2023 21:55:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    src/uifc/uifc.h diff
    src/uifc/uifc32.c diff
    Change uifcapi_t.kmode to .input_mode, only appy in input() method

  154. echicken
    Wed Feb 22 2023 11:13:30 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/locator.js diff
    Use client.ip_address instead of user.ip_address; check if protocol is Telnet or SSH

  155. echicken
    Wed Feb 22 2023 10:52:48 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/locator.js diff
    Fix addrRe

  156. echicken
    Tue Feb 21 2023 22:01:35 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/locator.js diff
    xtrn/wttr.in/wttr-lib.js diff
    xtrn/wttr.in/wttr.js diff
    More information must be gathered by Keyop. Therefore, be it resolved: Whereas more information is required, Whereas such information cometh from log files, Whereas this script should spew many messages into the logs, The script shalt not cache any data for the time being, nor load any cached data, The script shall barf much data into the logs for purposes of troubleshooting. - King James III on the eve of his coronation, hand on bibble

  157. Rob Swindell (on ChromeOS)
    Tue Feb 21 2023 20:20:04 GMT-0800 (PST)
    Modified Files:
    

    src/uifc/uifc.h diff
    src/uifc/uifc32.c diff
    Add input K_TRIM and K_NOSPACE mode flags K_TRIM causes leading and trailing whitespace to be trimmed. K_NOSPACE disallows any whitespace characters to be added to the string. Previously, trailing whitespace was always trimmed. Now, only do that if/when K_TRIM is specified.

  158. Rob Swindell (on ChromeOS)
    Tue Feb 21 2023 20:26:15 GMT-0800 (PST)
    Modified Files:
    

    src/uifc/uifc.h diff
    src/uifc/uifc32.c diff
    Add uifcapi_t.kmode that can be used to set global key-input mode flags e.g. this a way to set the K_TRIM mode globally for all keyboard input

  159. Rob Swindell (on ChromeOS)
    Tue Feb 21 2023 20:29:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfgsys.c diff
    Use the new UIFC input mode flags to trim spaces where inappropriate from sysop input, automatically.

  160. Rob Swindell (on Debian Linux)
    Tue Feb 21 2023 18:41:09 GMT-0800 (PST)
    Modified Files:
    

    exec/activeuserservice.js diff
    exec/asc_handler.js diff
    exec/avatar_chooser.js diff
    exec/avatars.js diff
    exec/badpasswords.js diff
    exec/bajavascript.js diff
    exec/bulkmail.js diff
    exec/bullseye.js diff
    exec/chat_sec.js diff
    exec/chksetup.js diff
    exec/chkspace.js diff
    exec/classic_shell.js diff
    exec/dyndns.js diff
    exec/echoareas.js diff
    exec/exportcfg.js diff
    exec/finger.js diff
    exec/fingerservice.js diff
    exec/flashpolicyserver.js diff
    exec/freqit.js diff
    exec/fseditor.js diff
    exec/ftn-setup.js diff
    exec/getnewsgrouplist.js diff
    exec/gopherservice.js diff
    exec/hatchit.js diff
    exec/hexdump.js diff
    exec/imapservice.js diff
    exec/init-fidonet.js diff
    exec/init-tickit.js diff
    exec/irc.js diff
    exec/ircmsg.js diff
    exec/json-service.js diff
    exec/lbshell.js diff
    exec/letsyncrypt.js diff
    exec/listgate.js diff
    exec/listserver.js diff
    exec/load/822header.js diff
    exec/load/age.js diff
    exec/load/ansiterm_lib.js diff
    exec/load/array.js diff
    exec/load/avatar_lib.js diff
    exec/login.js diff
    exec/logonlist.js diff
    exec/mailauth.js diff
    exec/mailproc_example.js diff
    exec/makeguest.js diff
    exec/makeuser.js diff
    exec/md5sum.js diff
    exec/msglist.js diff
    exec/msgutil.js diff
    exec/mspservice.js diff
    exec/mudgate.js diff
    exec/newslink.js diff
    exec/nntpservice.js diff
    exec/nodelist.js diff
    exec/postmsg.js diff
    exec/postpoll.js diff
    exec/privatemsg.js diff
    exec/privchat.js diff
    exec/qnet-http.js diff
    exec/qotdservice.js diff
    exec/sauce.js diff
    exec/sbbsecho_upgrade.js diff
    exec/sbbsimsg.js diff
    exec/scanpolls.js diff
    exec/scrubmsgs.js diff
    exec/showavatar.js diff
    exec/showfileavatar.js diff
    exec/showmsgavatar.js diff
    exec/showmsghdr.js diff
    exec/showsixel.js diff
    exec/spamc.js diff
    exec/str_cmds.js diff
    exec/telgate.js diff
    exec/termcapture.js diff
    exec/termsetup.js diff
    exec/tickfix.js diff
    exec/typeasc.js diff
    exec/typehtml.js diff
    exec/unixgate.js diff
    exec/websocket_proxy_service.js diff
    exec/websocketservice.js diff
    exec/wget.js diff
    exec/xjs_handler.js diff
    exec/xtrn-setup.js diff
    exec/xtrn_sec.js diff
    Remove old CVS tags, increment revision/version numbers where used The details (dates, author, revision numbers) are often stale and misleading, so start removing them. Where the Revision tag was used for a version/revision, just bump it by one and use a string constant instead (Git doesn't provide any similar facility for auto-incrementing revision numbers). More remains. Perhaps a commit hook to alert me when committing that I should clean up as I go rather than try to do this in bulk. <shrug>

  161. Rob Swindell (in GitKraken)
    Tue Feb 21 2023 16:52:10 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mailsrvr.c diff
    Fix corrupted RFC822 msg headers when a header field was > 1024 chars When sending an SMB message header via SMTP or POP3, some header fields (lines) could potentially be longer than 1024 and yet sockprintf() was limited to sending 1024 bytes (actually 1022 plus CRLF). This could result in some messages not being sent correctly: header field truncated, not CRLR-terminated, and notably resulting in MIME message contents not being decoded properly in a message viewer/reader. Example (Content-Type is part of the previous header field/line): x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?cm9T1Q9G65VC/lKTTqhODKhy5lHT2y6WWMb/WyvJ+EeGEwYmY7ILhzE3yfNM?= =?us-ascii?Q?KeFWN9T/PqHBya1plKf/sHgaw0iRmI7Hq+u9Dp4bG8OqdniKQlK+Aa27oXMd?= =?us-ascii?Q?Hly6OEYaSu7jbhGGY89LF0gyRVqquqxkaMfpKvG+h4cQnnu4Tl8YAKeE39a2?= =?us-ascii?Q?lHW3372ulmb9jvvZU72J2RtZYkuoIr+Wsqhfyuj39wTZ/+C4qKCsYrmTxrki?= =?us-ascii?Q?fBZ4gMPzWkrcWAr7zPcXBg8bphJJB8VJFUjQyksA3EG4dtH8+TZeEcNNBmHf?= =?us-ascii?Q?oCGnV9wHr9HszzrSkkZ2GGyh3QZLHAVDNe7wDXSy7HJttZugf9kNqKGeaYQL?= =?us-ascii?Q?TpljH1aHPe7MiSP9Dmp/xHQ/DWQOZDx5guNS+iMciMt5p5ad+SkQye0hWRhd?= =?us-ascii?Q?usHvpllclzIee6lxJ0VSPAzHGlAOhtOolrHdDB2ODjvkEzU7L2Fj2f5x7p9q?= =?us-ascii?Q?9d6sUgSz7vZVx8yyR3KPq3jIX0QUnl0xr2Mix9xcmMNcg0yFLPcznqBdLVa8?= =?us-ascii?Q?IC7j0+8oy4BjYxr8Z3elxMC2JKq13gPYgR95cwm6hMDiZbMB4EW/J1uJhD/I?= =?us-ascii?Q?RIIqTZ+Ywt8nKOfXj6/a9Aauf0wN71QKKA+in7KY9oksIhkUGvWOrtJwkVDL?= =?us-ascii?Q?Q2UFrBBJyQHJgumj5Y+bG8FDk/55IfyV9XYEcsdLL4bCF+HX4QPHZCw4P+li?= =?us-ascii?Q?bRvN+UxOO8hgXVkgB1q8mNJ62yQuaj0AContent-Type: multipart/alternative; boundary="_000_SN6PR07MB454477F4C32C66D48BA0B02187A09SN6PR07MB4544namp_" Solved by using asprintf() instead of snprintf() for dynamic string formatting and allocation in one go. Using realloc() to expand the buffer for the appended/required CRLF.

  162. echicken
    Tue Feb 21 2023 12:57:34 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/readme.txt diff
    Fix whoopsie in last doopsie.

  163. echicken
    Tue Feb 21 2023 12:47:17 GMT-0800 (PST)
    Added Files:
    

    xtrn/wttr.in/wttr-lib.js diff
    Modified Files:

    xtrn/wttr.in/readme.txt diff
    xtrn/wttr.in/wttr.js diff
    Cache stuff. Rearranged some things. Stuff like that.

  164. echicken
    Tue Feb 21 2023 10:54:10 GMT-0800 (PST)
    Modified Files:
    

    xtrn/wttr.in/readme.txt diff
    xtrn/wttr.in/wttr.js diff
    Treat command line argument as an alternate URL. This allows for greater flexibility with the options, and the possibility of querying your own (or some other) wttr server.

  165. echicken
    Tue Feb 21 2023 07:16:28 GMT-0800 (PST)
    Added Files:
    

    xtrn/wttr.in/locator.js diff
    xtrn/wttr.in/readme.txt diff
    xtrn/wttr.in/wttr.js diff
    xtrn/wttr.in/xterm-colors.js diff
    wttr.in weather forecast viewer

  166. echicken
    Tue Feb 21 2023 07:23:06 GMT-0800 (PST)
    Added Files:
    

    xtrn/wttr.in/locator.js diff
    xtrn/wttr.in/readme.txt diff
    xtrn/wttr.in/wttr.js diff
    xtrn/wttr.in/xterm-colors.js diff
    Merge branch 'wttr.in' into 'master' wttr.in weather forecast viewer See merge request main/sbbs!258

  167. Rob Swindell (on ChromeOS)
    Mon Feb 20 2023 20:29:02 GMT-0800 (PST)
    Modified Files:
    

    ctrl/main.ini diff
    Make userlist.js the default user list module Include some other new key values (migrated from node.ini)

  168. Rob Swindell (on ChromeOS)
    Mon Feb 20 2023 20:31:47 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgsys.c diff
    Reverse the other of the userlist and nodelist modules User list is more similar to logonlistl and nodelist is more similar to 'who's online'.

  169. Rob Swindell (on ChromeOS)
    Mon Feb 20 2023 21:28:27 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/scfg/scfg.c diff
    Support JavaScript modules as command shells Yes, finally, you can write a command shell in JS without needing a .bin "stub" Baja module to execute it. Fixes issue #504.

  170. Eric Oulashin
    Mon Feb 20 2023 19:50:46 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/readme.txt diff
    DDMsgReader: Updated the readme for installation as a loadable module for Synchronet 3.20+ as of 2023-02-20

  171. Rob Swindell
    Mon Feb 20 2023 20:26:36 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/readme.txt diff
    Merge branch 'dd_msg_reader_sync_320_loadable_module_readme_update' into 'master' DDMsgReader: Updated the readme for installation as a loadable module for Synchronet 3.20+ as of 2023-02-20 See merge request main/sbbs!257

  172. Rob Swindell (on Debian Linux)
    Mon Feb 20 2023 19:48:07 GMT-0800 (PST)
    Modified Files:
    

    exec/userlist.js diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    src/sbbs3/str.cpp diff
    Add a configurable 'user list' module Also modifying the existing (sample) userlist.js to mimic the hard-coded sbbs_t::userlist() function (from str.cpp), suitable as a user list module. Also added sort-by-laston-date functionality to this module, thus fixing issue #518.

  173. Rob Swindell (on ChromeOS)
    Mon Feb 20 2023 15:05:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfgdefs.h diff
    All loadable modules can now be configured as full command-lines Previously, many/most loadable modules were limited to just 8 chars, so while technically you could include a command-line option with a very short module name, now all modules can be configured with full (up to 63 char) command-lines.

  174. Rob Swindell (on Debian Linux)
    Mon Feb 20 2023 14:07:27 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_uifc.c diff
    Fix insufficient 'mode' string length in init() method Limited to 6 chars, yet some values are as long as 12 chars. Also, eliminates this warning from RELEASE builds (only) using gcc version 12.2.0 (Debian 12.2.0-14): js_uifc.c: In function ‘js_uifc_init’: sbbs.h:230:56: warning: writing 8 bytes into a region of size 7 [-Wstringop-overflow=] 230 | (ret)[JSSTSpos]=(char)JSSTSstrval[JSSTSpos]; \ | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_uifc.c:609:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 609 | JSVALUE_TO_ASTRING(cx, argv[1], mode, 7, NULL); | ^~~~~~~~~~~~~~~~~~ In file included from sbbs.h:255: /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:20: note: destination object of size 7 allocated by ‘__builtin_alloca’ 77 | #define alloca(sz) __builtin_alloca(sz) | ^~~~~~~~~~~~~~~~~~~~ sbbs.h:228:43: note: in expansion of macro ‘alloca’ 228 | if(((ret)=(char *)alloca((*JSSTSlenptr)+1))) { \ | ^~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_uifc.c:609:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 609 | JSVALUE_TO_ASTRING(cx, argv[1], mode, 7, NULL); | ^~~~~~~~~~~~~~~~~~

  175. Rob Swindell (on Debian Linux)
    Mon Feb 20 2023 14:10:50 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/js_console.cpp diff
    Fix (false pos?) warnings in use of JSVALUE_TO_ASTRING only in RELEASE builds using gcc version 12.2.0 (Debian 12.2.0-14), e.g. js_console.cpp: In function ‘JSBool js_handle_ctrlkey(JSContext*, uintN, jsval*)’: sbbs.h:230:56: warning: writing 8 bytes into a region of size 2 [-Wstringop-overflow=] 230 | (ret)[JSSTSpos]=(char)JSSTSstrval[JSSTSpos]; \ | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 670 | JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL); | ^~~~~~~~~~~~~~~~~~ In file included from sbbs.h:255: /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: destination object of size 2 allocated by ‘__builtin_alloca’ 77 | #define alloca(sz) __builtin_alloca(sz) | ~~~~~~~~~~~~~~~~^~~~ sbbs.h:228:43: note: in expansion of macro ‘alloca’ 228 | if(((ret)=(char *)alloca((*JSSTSlenptr)+1))) { \ | ^~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 670 | JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL); | ^~~~~~~~~~~~~~~~~~ sbbs.h:230:56: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 230 | (ret)[JSSTSpos]=(char)JSSTSstrval[JSSTSpos]; \ | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 670 | JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL); | ^~~~~~~~~~~~~~~~~~ /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: at offset 2 into destination object of size 2 allocated by ‘__builtin_alloca’ 77 | #define alloca(sz) __builtin_alloca(sz) | ~~~~~~~~~~~~~~~~^~~~ sbbs.h:228:43: note: in expansion of macro ‘alloca’ 228 | if(((ret)=(char *)alloca((*JSSTSlenptr)+1))) { \ | ^~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 670 | JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL); | ^~~~~~~~~~~~~~~~~~ /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: at offset 2 into destination object of size 2 allocated by ‘__builtin_alloca’ 77 | #define alloca(sz) __builtin_alloca(sz) | ~~~~~~~~~~~~~~~~^~~~ sbbs.h:228:43: note: in expansion of macro ‘alloca’ 228 | if(((ret)=(char *)alloca((*JSSTSlenptr)+1))) { \ | ^~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 670 | JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL); | ^~~~~~~~~~~~~~~~~~ /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: at offset 2 into destination object of size [1, 2] allocated by ‘__builtin_alloca’ 77 | #define alloca(sz) __builtin_alloca(sz) | ~~~~~~~~~~~~~~~~^~~~ sbbs.h:228:43: note: in expansion of macro ‘alloca’ 228 | if(((ret)=(char *)alloca((*JSSTSlenptr)+1))) { \ | ^~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 670 | JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL); | ^~~~~~~~~~~~~~~~~~ sbbs.h:230:56: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 230 | (ret)[JSSTSpos]=(char)JSSTSstrval[JSSTSpos]; \ | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~

  176. Rob Swindell (on Debian Linux)
    Mon Feb 20 2023 14:15:43 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/un_rep.cpp diff
    Fix warning about signed/unsigned compare

  177. Rob Swindell (on ChromeOS)
    Mon Feb 20 2023 13:13:21 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    Add an 'enabled' property for QWKnet hubs, defaults to true, part 2 Missing part of yesterday's commit, whoops

  178. Rob Swindell (on ChromeOS)
    Mon Feb 20 2023 01:57:53 GMT-0800 (PST)
    Modified Files:
    

    ctrl/msgs.ini diff
    src/sbbs3/scfg/scfgnet.c diff
    Add an 'enabled' property for QWKnet hubs, defaults to true Move the pack and unpack commands to an "Advanced" sub-menu since they are completely optional now. Set QWKhub 'VERT' to disabled by default in a new install. Fixes issue #506

  179. Rob Swindell (on ChromeOS)
    Mon Feb 20 2023 00:35:16 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdlfuncs.c diff
    Resolve GCC warning warning: passing argument 1 of ‘ra’ discards ‘const’ qualifier from pointer target type

  180. Rob Swindell (on ChromeOS)
    Sun Feb 19 2023 21:42:01 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgsys.c diff
    'sysop login' instead of 'sysop logon' in help text

  181. Rob Swindell (on Debian Linux)
    Sun Feb 19 2023 15:29:10 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/chat.cpp diff
    src/sbbs3/readmail.cpp diff
    src/sbbs3/str.cpp diff
    src/sbbs3/un_qwk.cpp diff
    src/sbbs3/useredit.cpp diff
    Resolve warnings as a result of last commit More 'long int' purging.

  182. Rob Swindell (in GitKraken)
    Sun Feb 19 2023 15:25:51 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    src/sbbs3/userdat.h diff
    find_login_id() will now return 0 if login ID is an invalid user number If login by number is supported and a client attempts login with an invalid usernumber, don't log an error, e.g. mail 3264 SMTPS [46.148.x.x] !ERROR -2 getting data on user (6123) But rather treat it as an invalid login attempt. Also change lastuser() and total_users() to return int instead of uint. 2 billion users should be plenty.

  183. Rob Swindell (on Debian Linux)
    Sun Feb 19 2023 14:56:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/chat.cpp diff
    src/sbbs3/exec.cpp diff
    src/sbbs3/getnode.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/prntfile.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/str.cpp diff
    src/sbbs3/writemsg.cpp diff
    Eliminate old lread/lwrite/lkbrd wrapper macros Vestiges of MS-DOS and 16-bit ints and local keyboard access.

  184. Rob Swindell (in GitKraken)
    Sun Feb 19 2023 13:51:25 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfgsys.c diff
    Fix help text wrapping issues recently introduced Make the wizard use the same width (76) as the help screen to help identify text wrapping issues. Looks a bit better too.

  185. Rob Swindell (in GitKraken)
    Sun Feb 19 2023 13:39:44 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    Resolve Borland 'Unreachable code' warning Warning W8066 .\ini_file.c 416: Unreachable code in function iniRemoveKey

  186. Rob Swindell (in GitKraken)
    Sun Feb 19 2023 13:42:51 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.h diff
    _chsize_s() is only available in MSVC, apparently Fixes Borland and mingw-GCC builds.

  187. Rob Swindell (in GitKraken)
    Sun Feb 19 2023 13:30:50 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    Add a figlet logo to the wizard welcome page

  188. Rob Swindell (in GitKraken)
    Sun Feb 19 2023 13:31:13 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgsys.c diff
    Re-word the QWK BBS-ID help text

  189. Rob Swindell (in GitKraken)
    Sun Feb 19 2023 13:31:51 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/text_defaults.c diff
    CantDeleteMsg text update %lu -> %u (part of the great 'long int' purge)

  190. Rob Swindell (on Debian Linux)
    Sun Feb 19 2023 13:05:13 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/chksmb.c diff
    src/sbbs3/mailsrvr.c diff
    src/smblib/smbadd.c diff
    src/smblib/smballoc.c diff
    src/smblib/smbhash.c diff
    src/smblib/smblib.c diff
    src/smblib/smbtxt.c diff
    The great 'long int' purge of 2023 part 4 [s]printf format fix-ups

  191. Rob Swindell (in GitKraken)
    Sun Feb 19 2023 12:55:52 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/writemsg.cpp diff
    src/smblib/smbadd.c diff
    src/smblib/smballoc.c diff
    src/smblib/smbdefs.h diff
    src/smblib/smbfile.c diff
    src/smblib/smbhash.c diff
    src/smblib/smblib.c diff
    src/smblib/smblib.h diff
    src/smblib/smbtxt.c diff
    src/xpdev/filewrap.h diff
    The great 'long int' purge of 2023 part 3 Likely a part 4 coming next after building with GCC.

  192. Rob Swindell (on Debian Linux)
    Sun Feb 19 2023 12:47:37 GMT-0800 (PST)
    Modified Files:
    

    exec/irc.js diff
    Fix irc.js line 750: TypeError: channels.current is undefined And other potential occurrences of this when not in a channel

  193. Rob Swindell (in GitKraken)
    Sun Feb 19 2023 01:34:25 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/newuser.cpp diff
    Lowercase the action/newuser/<protocol> topic Be consistent with the other action/* topics.

  194. Rob Swindell (on Debian Linux)
    Sat Feb 18 2023 21:57:09 GMT-0800 (PST)
    Modified Files:
    

    ctrl/text.dat diff
    Fix the one lingering %l[d|u|x] in this file

  195. Rob Swindell (in GitKraken)
    Sat Feb 18 2023 21:37:48 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/logout.cpp diff
    Insure there's at least one space between stats in .lol files The format string used did not insure there was any space between fields leading to very hard to parse stats, like this: User 2 SSH 12:25 12:39 14554 0 0 0 0 0 That's 554 msgs read in 14 minutes online, but well, you see what I'm say'n.

  196. Rob Swindell (on Debian Linux)
    Sat Feb 18 2023 21:21:37 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/answer.cpp diff
    src/sbbs3/atcodes.cpp diff
    src/sbbs3/con_out.cpp diff
    src/sbbs3/exec.cpp diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/getmsg.cpp diff
    src/sbbs3/getstats.c diff
    src/sbbs3/getstats.h diff
    src/sbbs3/inkey.cpp 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/msgtoqwk.cpp diff
    src/sbbs3/pack_qwk.cpp diff
    src/sbbs3/prntfile.cpp diff
    src/sbbs3/qwk.cpp diff
    src/sbbs3/qwktomsg.cpp diff
    src/sbbs3/readmail.cpp diff
    src/sbbs3/readmsgs.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/scansubs.cpp diff
    src/sbbs3/slog.c diff
    src/sbbs3/str.cpp diff
    src/sbbs3/telgate.cpp diff
    src/sbbs3/tmp_xfer.cpp diff
    src/sbbs3/useredit.cpp diff
    src/sbbs3/websrvr.c diff
    src/sbbs3/writemsg.cpp diff
    src/sbbs3/xtrn.cpp diff
    src/sbbs3/xtrn_sec.cpp diff
    The great 'long int' purge of 2023 part 2 Mostly [s]printf format fixups

  197. Rob Swindell (in GitKraken)
    Sat Feb 18 2023 20:37:10 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/atcodes.cpp diff
    src/sbbs3/cmdshell.h diff
    src/sbbs3/con_hi.cpp diff
    src/sbbs3/con_out.cpp diff
    src/sbbs3/data.cpp diff
    src/sbbs3/email.cpp diff
    src/sbbs3/exec.cpp diff
    src/sbbs3/execfile.cpp diff
    src/sbbs3/execmsg.cpp diff
    src/sbbs3/file.cpp diff
    src/sbbs3/getkey.cpp diff
    src/sbbs3/getmsg.cpp diff
    src/sbbs3/getstr.cpp diff
    src/sbbs3/inkey.cpp diff
    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/listfile.cpp diff
    src/sbbs3/logfile.cpp diff
    src/sbbs3/logon.cpp diff
    src/sbbs3/mail.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/msgtoqwk.cpp diff
    src/sbbs3/netmail.cpp diff
    src/sbbs3/pack_qwk.cpp diff
    src/sbbs3/postmsg.cpp diff
    src/sbbs3/prntfile.cpp diff
    src/sbbs3/putmsg.cpp diff
    src/sbbs3/qwk.cpp diff
    src/sbbs3/qwk.h diff
    src/sbbs3/qwktomsg.cpp diff
    src/sbbs3/readmail.cpp diff
    src/sbbs3/readmsgs.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scandirs.cpp diff
    src/sbbs3/scansubs.cpp diff
    src/sbbs3/startup.h diff
    src/sbbs3/str.cpp diff
    src/sbbs3/telgate.cpp diff
    src/sbbs3/tmp_xfer.cpp diff
    src/sbbs3/writemsg.cpp diff
    src/sbbs3/xtrn.cpp diff
    src/sbbs3/xtrn_sec.cpp diff
    src/xpdev/dirwrap.c diff
    src/xpdev/dirwrap.h diff
    The great 'long int' purge of 2023 part 1 At one time, Synchronet was a 16-bit DOS project, plagued by the 16-bit [u]int, so long's were used everywhere > 16-bits were known to be needed/wanted (This is before the days of the standard sized types from stdint.h), and they've persisted. But '[u]long int' is 64-bits on *nix 64-bit builds, 32-bits everywhere else (even 64-bit Windows builds if/when we ever get around to that), so this could lead to insidious bugs that would only show up on one flavor or the other. Since [u]int is 32-bits on everything we currently support, we'll use that instead of [u]long. This "part 1" because I'm sure there's going to be warnings and errors from the GCC/Clang builds as a result, which I'll get to next.

  198. Rob Swindell (in GitKraken)
    Sat Feb 18 2023 18:49:52 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/exec.cpp diff
    src/sbbs3/load_cfg.c diff
    src/sbbs3/scfg/scfgnode.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfglib2.c diff
    src/sbbs3/str.cpp diff
    src/sbbs3/upgrade_to_v319.c diff
    src/sbbs3/xtrn_sec.cpp diff
    Removed about 1500 bytes of unused scfg_t fields (cruft) modem init strings, alt file paths, PostLink name/number, node-specific command-lines, etc., many of these haven't been used since SBBS v2.

  199. Rob Swindell (in GitKraken)
    Sat Feb 18 2023 18:50:25 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    Use 'logon' instead of 'login' in the config wizard

  200. Rob Swindell (on Debian Linux)
    Sat Feb 18 2023 18:10:02 GMT-0800 (PST)
    Modified Files:
    

    exec/tempxfer.js diff
    file_area.min_diskspace is in bytes now, not kilobytes - so deal

  201. Rob Swindell (on ChromeOS)
    Sat Feb 18 2023 15:37:29 GMT-0800 (PST)
    Modified Files:
    

    exec/chkspace.js diff
    file_area.min_diskspace is in bytes now, not kilobytes - so deal Also, use easier to read byte value strings in email and log msgs.

  202. Rob Swindell (on ChromeOS)
    Sat Feb 18 2023 15:12:29 GMT-0800 (PST)
    Modified Files:
    

    text/newuser.msg diff
    Add EOL to last line

  203. Rob Swindell (on ChromeOS)
    Sat Feb 18 2023 11:47:30 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    More consistent 'exact' parameter values to findnodecfg() - e.g. false, not 0 No functional change.

  204. Rob Swindell (on ChromeOS)
    Sat Feb 18 2023 12:30:14 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Rework NetMail routing logic to handle point destinations better With this commmit, the logic is now: If the NetMail destination is a point and there's no linked-node for it and the boss node for this point is not one of our AKAs then route to the boss node (no linked-node match needed) if the boss node matches a linked-node with a route configuration then route to that configured route destination (2-levels of routing and thus 2 "Routing NetMail" msgs will be logged in this scenario) If the NetMail destination is a point and there is a linked-node for it then the netmail will not be routed unless that linked node has a route configuration NetMail destined for non-points are treated the same as before this commit. No change in the routing of echomail for points. I think this change fixes issue #520 which can be traced back to commit 45ced2a3b for poindexter FORTRAN (REALITY), 2 years ago almost to the day, where that change added point->boss routing, but only if the boss had a matching linked-node configuration (for both echomail and netmail). This commit also re-thinks commit ffe69b43623d (for Alterego) which would not route a point netmail if any our local AKAs matched the destination address, igorining the point value. I think what was intended here (I coudln't locate the original enhancmenet request or issue), was to not route if a local AKA was the *boss* of the point. And with this commit, that's now how it now works. As before, "test results appreciated".

  205. Rob Swindell (on ChromeOS)
    Fri Feb 17 2023 23:15:14 GMT-0800 (PST)
    Modified Files:
    

    src/uifc/uifc32.c diff
    input() method was off-by-one on the string input x-coordinate w/ WIN_NOBRDR

  206. Rob Swindell (on ChromeOS)
    Fri Feb 17 2023 23:16:03 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    Display the system password prompt in the Wizard with no border

  207. Rob Swindell (on ChromeOS)
    Fri Feb 17 2023 20:36:47 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    Fix compile error about label and statements from gcc version 10.2.1 Interestingly, gcc version 12.2 and MSVC 2019 had no problem with this code.

  208. Rob Swindell (in GitKraken)
    Fri Feb 17 2023 20:29:26 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    A little cosmetic adjustment to the setup wizard

  209. Rob Swindell (on Debian Linux)
    Thu Feb 16 2023 22:15:08 GMT-0800 (PST)
    Added Files:
    

    web/root/fido-nodelist-syncterm.ssjs diff
    Create a simple web service to convert an FTN nodelist to syncterm.lst Tested with this: wget --content-disposition --post-file=nodelist.010 http://synchro.net/fido-nodelist-syncterm.ssjs

  210. Rob Swindell (on Debian Linux)
    Fri Feb 17 2023 20:10:10 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfg.h diff
    src/sbbs3/scfg/scfgmsg.c diff
    src/sbbs3/scfg/scfgnet.c diff
    src/sbbs3/scfg/scfgsys.c diff
    Enable backward movement through the setup wizard using ESC Display a progress bar too.

  211. Rob Swindell (on Debian Linux)
    Thu Feb 16 2023 22:12:57 GMT-0800 (PST)
    Modified Files:
    

    exec/fido-nodelist-syncterm.js diff
    Don't use alert() or write() to make this suitable for a web service Also close the syncterm.lst file so we can read it completely after load()ing this script.

  212. Rob Swindell (on Debian Linux)
    Thu Feb 16 2023 22:12:57 GMT-0800 (PST)
    Modified Files:
    

    exec/sendmail.js diff
    Updated to be suitable as a /usr/bin/mail[x] replacement too Migrated rcpt() to mailutil.js parse_mail_recipient()

  213. Rob Swindell (on Debian Linux)
    Thu Feb 16 2023 22:12:57 GMT-0800 (PST)
    Modified Files:
    

    exec/load/mailutil.js diff
    Moved sendmail.js rcpt() to parse_mail_recipient() here for reuse

  214. Rob Swindell (in GitKraken)
    Thu Feb 16 2023 19:27:01 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/ConfigWizardUnit.cpp diff
    scfg_t.node_valuser is now scfg_t.valuser

  215. Rob Swindell (on Debian Linux)
    Thu Feb 16 2023 19:22:18 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfgsys.c diff
    Cosmetic improvements to the Setup Wizard, especial for > 80 col screens

  216. Rob Swindell (in GitKraken)
    Thu Feb 16 2023 14:29:07 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/logout.cpp diff
    Report correct upload/download Kbytes in data/logs/<date>.log files After the move to 64-bit upload/download byte counts, these integers are different width than 'long' on 32-bit builds (e.g. Windows), so these numbers were wrong on all but 64-bit *nix builds. The change here also uses the cool byte_estimate_to_str() function so that large byte totals are not expressed in 'K' but rather 'M', 'G', 'T' etc. suffixes. The formatting is otherwise consistent with the pre-existing log line format save for the use of an uppercase suffix now. Before: @- 02:19p T: 12 R: 0 P: 0 E: 0 F: 0 U: 0k 0 D:420k 1 After: @- 02:07p T: 0 R: 0 P: 0 E: 0 F: 0 U: 0K 0 D:420K 1 Before: @- 02:23p T: 0 R: 0 P: 0 E: 0 F: 0 U: 0k 0 D:1359k 1 After: @- 02:26p T: 1 R: 0 P: 0 E: 0 F: 0 U: 0K 0 D:1.3M 1 This fixes issue #519. I'm glad to hear that sysops still use these log files!

  217. Rob Swindell (in GitKraken)
    Thu Feb 16 2023 14:30:46 GMT-0800 (PST)
    Modified Files:
    

    src/uifc/uifc32.c diff
    Fix centering of the showbuf (e.g. help screen) title I'm not sure what was going on with this addition of 6 when mouse is enabled (and didn't check for WIN_DYN flag set!), but is wrong. And we need to add 4 to the title_len when figuring out the centered-offset.

  218. Rob Swindell (in GitKraken)
    Thu Feb 16 2023 14:34:33 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfg.h diff
    src/sbbs3/scfg/scfgsys.c diff
    More setup wizard help messages/screens (e.g. Welcome) Updated System Operator help text. Fixed line-wrapping in other help text. Provide the UTC offset string to edit, even when 0. Make the abort/restart wizard options more clear. General beautifications of the wizard.

  219. Rob Swindell (in GitKraken)
    Thu Feb 16 2023 17:30:30 GMT-0800 (PST)
    Modified Files:
    

    exec/upgrade_to_v320.js diff
    src/sbbs3/email.cpp diff
    src/sbbs3/exec.cpp diff
    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/logfile.cpp diff
    src/sbbs3/newuser.cpp diff
    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfg.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
    Move sysop notification settings from node to system level The validation user (required new user feedback user number) and error notification/level settings don't make sense under node settings in today's world where all nodes typically run on the same system and serve the same BBS. Moved from SCFG->Nodes->... Advanced Options to (new sub-menu) SCFG->System->Notifications. Likewise, these 3 settings (valuser, erruser, errlevel) were moved from node*/node.ini to ctrl/main.ini. If you're already running v3.20a, then you'll want to make sure you set these in SCFG->System->Notifications how you prefer them as the migration (now handled in upgrade_to_v320.js) won't have been done for you automatically. The default is no-new-user-feedback required and no-error-notification user set. Added a prompt to the SCFG setup wizard to prompt for this setting since it still is a FAQ. Other cosmetic changes to SCFG help and setup wizard.

  220. Rob Swindell (in GitKraken)
    Thu Feb 16 2023 00:01:02 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/login.cpp diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/mqtt.c diff
    src/sbbs3/mqtt.h diff
    src/sbbs3/services.c diff
    src/sbbs3/websrvr.c diff
    Add MQTT <BBS>/action/login_fail/<protocol> topic support Publish all login-failures to this new topic. This commit also includes a few 64-bit free disk space fixes in the FTP server.

  221. Rob Swindell (in GitKraken)
    Thu Feb 16 2023 00:01:22 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/zmodem.c diff
    64-bit free disk space fix

  222. Rob Swindell (in GitKraken)
    Thu Feb 16 2023 00:01:37 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Resolve signed/unsigned compare warning with MSVC

  223. Rob Swindell (on Debian Linux)
    Wed Feb 15 2023 23:37:48 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    src/xpdev/ini_file.h diff
    Add iniGetClampedInt() to return an int key val clamped to a min/max range Very similar to iniGetIntInRange(), but the default value is only returned if the key or value is missing.

  224. Rob Swindell (on Debian Linux)
    Tue Feb 14 2023 23:38:12 GMT-0800 (PST)
    Modified Files:
    

    src/uifc/uifcx.c diff
    showbuf() definition needs a name for the first arg for MSVC ... but not for GCC or Clang interestingly enough.

  225. Rob Swindell (on Debian Linux)
    Tue Feb 14 2023 22:56:09 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/ConfigWizardUnit.dfm diff
    Fix typo

  226. Rob Swindell (on Debian Linux)
    Tue Feb 14 2023 23:01:20 GMT-0800 (PST)
    Modified Files:
    

    src/uifc/uifcx.c diff
    Create a (very simple) showbuf() implementation for the stdio uifc

  227. Rob Swindell (on Debian Linux)
    Tue Feb 14 2023 23:02:11 GMT-0800 (PST)
    Modified Files:
    

    src/uifc/uifc32.c diff
    Fix list() width when WIN_NOBRDR is used The title isn't displayed in this mode, so the title length is 0. Why is title being strdup()'d here? Something to look into.

  228. Rob Swindell (on Debian Linux)
    Tue Feb 14 2023 23:04:21 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfg.h diff
    src/sbbs3/scfg/scfgmsg.c diff
    src/sbbs3/scfg/scfgnet.c diff
    src/sbbs3/scfg/scfgsys.c diff
    Make the Configuration Wizard look cool This kind of sort of matches the SBBSCTRL Config Wizard flow and set of settings now. Pretty neat the stuff you can do with UIFC it turns out. Also fixed a typo here and there and default to the currently-configured deleted-message-viewing policy and stuff like that.

  229. Rob Swindell (on Debian Linux)
    Mon Feb 13 2023 11:17:33 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/xtrn_sec.cpp diff
    Fix "running external" log message format mistake Introduced in commit 73e5dd9c, reported by Codefenix

  230. Rob Swindell (on ChromeOS)
    Sun Feb 12 2023 22:54:10 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_internal.c diff
    Descriptions of js.exec_file and exec_dir were reversed

  231. Rob Swindell (on ChromeOS)
    Sun Feb 12 2023 21:20:36 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgsys.c diff
    Default Other/non-US timezone to the current configuration selection

  232. Rob Swindell (on Debian Linux)
    Sun Feb 12 2023 19:48:14 GMT-0800 (PST)
    Modified Files:
    

    ctrl/sbbs.ini diff
    src/sbbs3/sbbscon.c diff
    Change the default run/pid file to just 'sbbs.pid' (in the ctrl dir) Non-root users don't have write access to /var/run by default, so don't use that as the default location of the pid file.

  233. Rob Swindell (on ChromeOS)
    Sun Feb 12 2023 16:02:33 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/baja.c diff
    Make !INCLUDE directives filename case-insensitive Some legacy Baja source files !INCLUDE SBBSDEFS.INC, but the filename is now sbbsdefs.inc, which does not match on case-sensitive filesystems (e.g. Linux) e.g. BBSLISTR.ZIP:!INCLUDE SBBSDEFS.INC FORSALE1.ZIP:!INCLUDE SBBSDEFS.INC FWISH10.ZIP:!INCLUDE SBBSDEFS.INC GUESS20.ZIP:!INCLUDE SBBSDEFS.INC NU_SYNC.ZIP:!INCLUDE SBBSDEFS.INC ONELINE1.ZIP:!INCLUDE SBBSDEFS.INC ni-sbbs.zip:!INCLUDE SBBSDEFS.INC This issue was reported via DOVE-Net by Rick Smith.

  234. Rob Swindell (on ChromeOS)
    Sun Feb 12 2023 14:01:44 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfg.h diff
    src/sbbs3/scfg/scfgmsg.c diff
    src/sbbs3/scfg/scfgnet.c diff
    src/sbbs3/scfg/scfgsys.c diff
    Add initial setup wizard (prompts for each of the important cfg settings) Automatically runs when main.ini new_install=true or the '-w' option is passed to SCFG. This doesn't ask all the same questions as the SBBSCTRL Config Wizard, but it's a good start.

  235. Rob Swindell (in GitKraken)
    Sat Feb 11 2023 22:35:47 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/exec.cpp diff
    src/sbbs3/js_global.c diff
    src/sbbs3/js_system.c diff
    src/sbbs3/text_defaults.c diff
    src/sbbs3/upload.cpp diff
    src/xpdev/dirwrap.c diff
    src/xpdev/dirwrap.h diff
    Support larger file systems (>4GB size/space) using uint64_t through-out getdirsize() is maxed out at size_t, so return that type

  236. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 21:29:44 GMT-0800 (PST)
    Modified Files:
    

    ctrl/text.dat diff
    src/sbbs3/bat_xfer.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/upload.cpp diff
    Check free disk space when batch-uploading to the blind upload directory This fixes issue #516

  237. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 18:41:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_file_area.c diff
    src/sbbs3/upload.cpp diff
    min_dspace is now in bytes, not kilobytes, so deal with that

  238. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 17:31:49 GMT-0800 (PST)
    Modified Files:
    

    exec/upgrade_to_v320.js diff
    Insure that the file.ini min_dspace value has been migrated in kilobytes

  239. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 17:47:37 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgxfr1.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib2.c diff
    src/sbbs3/scfgsave.c diff
    Allow minimum disk space to be any size (not limited to 65535K)

  240. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 17:48:19 GMT-0800 (PST)
    Modified Files:
    

    ctrl/file.ini diff
    Set default minimum free space to 100M bytes

  241. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 16:33:13 GMT-0800 (PST)
    Modified Files:
    

    ctrl/file.ini diff
    Apply up/download credit percentage key name fixes Following the (now proper) naming introduced in commit 8e6ebec36f942

  242. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 16:44:23 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfgsave.c diff
    Fix bug where file.ini min_dspace could be set to -1 min_dspace is an *unsigned* short, so saving 65535 (the default) was converting the signed decimal representation when saving file.ini.

  243. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 16:54:43 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfglib2.c diff
    src/sbbs3/scfgsave.c diff
    More iniGetShort ->iniGetUShort fixups Not that most of these values should ever exceed 32767, but might as well

  244. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 17:08:30 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgnet.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    Change qhub_t mode and days to an unsigned 8-bit int Resolve the QWKnet hub 'days' key in msgs.ini being written as -1

  245. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 17:18:05 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    iniSetHexInt[64] write values < 10 in decimal notation

  246. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 17:24:30 GMT-0800 (PST)
    Modified Files:
    

    ctrl/chat.ini diff
    ctrl/file.ini diff
    ctrl/main.ini diff
    ctrl/msgs.ini diff
    ctrl/xtrn.ini diff
    Re-generated stock .ini files using 'scfg -n -f' When changes are made using SCFG on these files, a 'git diff' is now helpful and readable to see what changed. The order of sections and keys change as a result. Some extraneous stuff created by upgrade_to_v320.js was removed and some numeric values change from hex to decimal encoding.

  247. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 16:16:13 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    When writing hex integer values, use "0" rather than "0x0" upgrade_to_v320.js sets these values to just "0", so let's not thrash on the format.

  248. Rob Swindell (on Debian Linux)
    Sat Feb 11 2023 15:01:58 GMT-0800 (PST)
    Modified Files:
    

    ctrl/main.ini diff
    Fix freecreditperday -> freecdtperday Resulted from upgrade_to_v320.js typo

  249. Rob Swindell (on Debian Linux)
    Sat Feb 11 2023 15:01:58 GMT-0800 (PST)
    Modified Files:
    

    exec/upgrade_to_v320.js diff
    Fix typo: freecdtperday, not freecreditperday

  250. Rob Swindell
    Sat Feb 11 2023 14:25:17 GMT-0800 (PST)
    Modified Files:
    

    exec/SlyEdit_Misc.js diff
    Merge branch 'slyedit_user_sysop_fix' into 'master' SlyEdit: Small fix for sysop checking (didn't catch it in the earlier refactor) See merge request main/sbbs!256

  251. Eric Oulashin
    Sat Feb 11 2023 14:25:17 GMT-0800 (PST)
    Modified Files:
    

    exec/SlyEdit_Misc.js diff
    SlyEdit: Small fix for sysop checking (didn't catch it in the earlier refactor)

  252. Rob Swindell
    Sat Feb 11 2023 14:25:17 GMT-0800 (PST)
    Modified Files:
    

    exec/SlyEdit_Misc.js diff
    Merge branch 'slyedit_user_sysop_fix' into 'master' SlyEdit: Small fix for sysop checking (didn't catch it in the earlier refactor) See merge request main/sbbs!256

  253. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 12:58:11 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    Set the Window title to override the default: "SyncConsole" This appeared in the ChromeOS taskbar, so now it'll say "Synchronet Configuration" instead.

  254. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 12:56:58 GMT-0800 (PST)
    Modified Files:
    

    exec/login.js diff
    Use the new (to v3.20) method of checking for login-by-usernumber support The old NM_NO_NUM flag is unused/deprecated.

  255. Rob Swindell (on ChromeOS)
    Sat Feb 11 2023 12:45:10 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/file.cpp diff
    Set destination directory in proper file_t instance in movefile() This fixes the issue (#515) that was introduced 9 months ago (after the v3.19b release) with commit b1449b273cec4d. Also: movefile() will now log an error message if addfile() fails. Fix the message logged when the file is successfully moved.

  256. Rob Swindell (on Debian Linux)
    Fri Feb 10 2023 21:49:53 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Fix crash when getting file area web_file_prefix in JSexec js_init was assuming that startup != NULL

  257. Rob Swindell (on ChromeOS)
    Fri Feb 10 2023 21:24:01 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_msg_area.c diff
    Add 'fidonet_addr' property to msg_area.sub[] Fixes issue #398

  258. Rob Swindell (on Debian Linux)
    Fri Feb 10 2023 19:13:50 GMT-0800 (PST)
    Added Files:
    

    exec/fido-nodelist-syncterm.js diff
    Exports a syncterm.lst file from a FTN nodelist Paul Hayton (fsxNet admin) had this idea. This seems to do the trick. It does use the listed IBN (BinkP) address as a fall-back if the INA and ITN addresses aren't specified, which may not be desireable. So maybe that should be a command-line option to enable as desired. <shrug>

  259. Rob Swindell (on Debian Linux)
    Fri Feb 10 2023 19:13:50 GMT-0800 (PST)
    Added Files:
    

    exec/fido-nodelist-syncterm.js diff
    Exports a syncterm.lst file from a FTN nodelist Paul Hayton (fsxNet admin) had this idea. This seems to do the trick. It does use the listed IBN (BinkP) address as a fall-back if the INA and ITN addresses aren't specified, which may not be desireable. So maybe that should be a command-line option to enable as desired. <shrug>

  260. Deucе
    Fri Feb 10 2023 16:52:32 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Fix a couple issues found by Coverity 1) Unreachable return without a lock in sdl_useR_func_ret() (harmless) 2) LOR in handling SDL_USEREVENT - vstatlock was obtained inside of win_mutex which should never be done... this could (and likely does) result in a deadlock when using SDL mode.

  261. Rob Swindell
    Fri Feb 10 2023 14:55:19 GMT-0800 (PST)
    Modified Files:
    

    ctrl/sbbs.ini diff
    src/sbbs3/main.cpp diff
    src/sbbs3/newuser.cpp diff
    src/sbbs3/sbbs_ini.c diff
    src/sbbs3/startup.h diff
    Use configurable default terminal dimensions from sbbs.ini New (optional) keys in ctrl/sbbs.ini (with defaults): [BBS] DefaultTermWidth=80 DefaultTermHeight=24 This fixes issue (feature request) #491

  262. Deucе
    Fri Feb 10 2023 16:52:32 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Fix a couple issues found by Coverity 1) Unreachable return without a lock in sdl_useR_func_ret() (harmless) 2) LOR in handling SDL_USEREVENT - vstatlock was obtained inside of win_mutex which should never be done... this could (and likely does) result in a deadlock when using SDL mode.

  263. Rob Swindell
    Fri Feb 10 2023 14:55:19 GMT-0800 (PST)
    Modified Files:
    

    ctrl/sbbs.ini diff
    src/sbbs3/main.cpp diff
    src/sbbs3/newuser.cpp diff
    src/sbbs3/sbbs_ini.c diff
    src/sbbs3/startup.h diff
    Use configurable default terminal dimensions from sbbs.ini New (optional) keys in ctrl/sbbs.ini (with defaults): [BBS] DefaultTermWidth=80 DefaultTermHeight=24 This fixes issue (feature request) #491

  264. Rob Swindell (on Windows)
    Fri Feb 10 2023 11:58:14 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgsys.c diff
    Update terminology in security-related settings and help screens

  265. Rob Swindell
    Thu Feb 09 2023 19:54:01 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/con_hi.cpp diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    Allow configurable system password timeout The default value is the same as the previously hard-coded value: 15 minutes. Increase this value to prompt the sysop for the system password less frequently, decrease for more frequent. This fixes issue #407.

  266. Rob Swindell
    Thu Feb 09 2023 18:59:05 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/str.cpp diff
    Fix 30-year-old bug (obvious password patterns) in chkpass() Off-by-one bug caused the comparison of only the first 3 chars of the proposed password against "QWE", "ASD", and "!@#" rather than the 4 character pattern match as intended. These lines should be removed anyway since this can be easily achieved via password.can (as intended), but I couldn't help myself but to fix this ancient bug.

  267. Rob Swindell (on Windows)
    Thu Feb 09 2023 19:03:08 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgsys.c diff
    Overhaul the System Configuration menu - moved all Security Options to submenu The security-related options were really spread around and this menu was getting very overloaded (the list of Toggle Options had grown huge), so now most of the content is actually under the new "Security Options" sub-menu. This does make a bunch of previous instructions/docs slightly out of sync (e.g. SCFG->System->Security Level Values should now be SCFG->System->Security Options->Security Level Values), but I think sysops will still find stuff just fine. This re-org will allow me to add more options that I've wanted to but needed better organization and structuring to do so logically and clearly. Using the memcmp() trick to detect changes in the configuration. No new settings/option were added in this commit.

  268. Eric Oulashin
    Thu Feb 09 2023 16:03:19 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: As a loadable module, now make use of user# parameter for reading personal email (for the sysop when deleting a user account)

  269. Rob Swindell
    Thu Feb 09 2023 16:03:19 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_read_personal_email_usernum_update' into 'master' DDMsgReader: As a loadable module, now make use of user# parameter for reading personal email (for the sysop when deleting a user account) See merge request main/sbbs!254

  270. Rob Swindell (on Windows)
    Thu Feb 09 2023 12:42:35 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    Free/zero out the file_t struct *after* sending the MQTT action msg ... not before. This explains why FTP-uploaded actions had a (null) filename.

  271. Rob Swindell (on Debian Linux)
    Thu Feb 09 2023 11:54:28 GMT-0800 (PST)
    Modified Files:
    

    exec/str_cmds.js diff
    All UEDIT sysop command to pull up deleted users by alias or number Requires the latest v3.20a for sytem.matchuserdata() to support deleted and inactive user record searching. This is part of the fix for the issue described in issue #513 where the UEDIT sysop command was falling back (displaying/editing) user #1 because the sysop-specified user number or alias was not an active user account. The fallback to display/editing user #1 still happens, but first we try really hard to find the user that the sysop specified as an argument to the UEDIT command.

  272. Rob Swindell (on Windows)
    Thu Feb 09 2023 11:47:17 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_system.c diff
    Allow system.matchuserdata() to search deleted user records Insert an optional boolean argument to enable a search through deleted and inactive user records (in addition to active user records). This is part of the solution to the problem described in issue #513 where the UEDIT sysop command did not go to a specified user (by alias) automatically, presumably because the user record was marked as deleted.

  273. Rob Swindell (on Windows)
    Wed Feb 08 2023 23:11:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/newuser.cpp diff
    Fix MQTT action/newuser msg topic

  274. Rob Swindell (on Debian Linux)
    Tue Feb 07 2023 20:42:08 GMT-0800 (PST)
    Modified Files:
    

    src/sexpots/sexpots.c diff
    [com] Debug will enable transmit debug log output (in addition to receive) Log the characters themselves of ASCII values (between 32 and 126) for com debug log messages. Still a separate log message/line for every character (so very chatty/verbose). This fixes issue (feature request) #510

  275. Rob Swindell (on Debian Linux)
    Tue Feb 07 2023 18:11:18 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/writemsg.cpp diff
    Don't save draft messages upon disconnect for Guest or "no one" (user #0) Fix issue #508

  276. Deucе
    Mon Feb 06 2023 21:02:11 GMT-0800 (PST)
    Modified Files:
    

    src/comio/comio_win32.c diff
    That's not a semi-colon!

  277. Deucе
    Mon Feb 06 2023 20:58:42 GMT-0800 (PST)
    Modified Files:
    

    src/comio/comio_win32.c diff
    Handle COM10 and above. https://support.microsoft.com/en-us/topic/howto-specify-serial-ports-larger-tha n-com9-db9078a5-b7b6-bf00-240f-f749ebfd913e Obviously, it needs the be \\.\COM12

  278. Rob Swindell (on Windows)
    Mon Feb 06 2023 18:45:10 GMT-0800 (PST)
    Modified Files:
    

    src/sexpots/sexpots.c diff
    Fix printf format typo in previous commit This should fix issue #509

  279. Rob Swindell (on Windows)
    Mon Feb 06 2023 12:35:38 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    If the FastCGI address begins with a '.', treat as UNIX Domain Socket as well <Deuce> So the [previous] change doesn't work with relative paths? So... support relative UDS paths in this manner (without the "unix:" prefix)

  280. Rob Swindell (on Windows)
    Mon Feb 06 2023 11:56:01 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    If the FastCGI address starts with a '/', it's obviously a UNIX domain socket We don't really need the "unix:" prefix now, but just leave that support in for backward compatibility.

  281. Rob Swindell (on Windows)
    Mon Feb 06 2023 11:54:08 GMT-0800 (PST)
    Modified Files:
    

    src/sexpots/sexpots.c diff
    Add optional debug-level logging of all chars received over COM port/device Set Debug=true in the [com] section of sexpots.ini to enable this (and you'll need to be logging debug-level message as well). For Nelgin.

  282. Rob Swindell (on Windows)
    Sun Feb 05 2023 13:10:29 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Fix webserver build on Windows - no UNIX domain socket support According to https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/ it is possible, but I think I'm using an WinSDK that's too old, so let's just not support this feature on Windows just yet. Define UDS_SUPPORT when supported.

  283. Rob Swindell (on Debian Linux)
    Sat Feb 04 2023 23:20:35 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Add UNIX domain FastCGI support Resolves a long-standing todo comment and has made wiki.synchro.net page rendering even faster. PHP-FPM defaults to creating/listening on UNIX domain sockets. This resolves gitlab issue #507

  284. Rob Swindell (on Debian Linux)
    Sat Feb 04 2023 21:25:21 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    More details in "Failure to send header/request to FastCGI socket" log msg Elevate the log level back to ERROR (from WARNING), as this is not an expected condition and the sysop (me) should be alerted right away. This had previously be lowered (along with some other log messages) from ERROR to WARNING. When php-fpm is updated (on Debian, anyway), e.g. from 8.1 to 8.2, a new etc/php configuration (pool.d) directory was used which set me back to a default www.conf file that uses Unix domain sockets instead of TCP sockets.

  285. Rob Swindell (on Debian Linux)
    Sat Feb 04 2023 20:20:07 GMT-0800 (PST)
    Modified Files:
    

    exec/login.js diff
    The bare CR is treated as CRLF on PETSCII, so use Ctrl-A[ instead We don't do output translation for PETSCII terminals for CR or LF chars, so this trick is needed, at least currently, for the NN legacy prompt to be properly over-written/invisible for CBM/PETSCII terminals.

  286. Rob Swindell (on Debian Linux)
    Sat Feb 04 2023 20:20:07 GMT-0800 (PST)
    Modified Files:
    

    exec/msglist.js diff
    Fix errant tab in help output

  287. Eric Oulashin
    Sat Feb 04 2023 17:53:57 GMT-0800 (PST)
    Modified Files:
    

    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    Updates/fixes to Good Time Trivia questions & answers etc.

  288. Rob Swindell
    Sat Feb 04 2023 17:53:57 GMT-0800 (PST)
    Modified Files:
    

    xtrn/gttrivia/qa/general.qa diff
    xtrn/gttrivia/qa/music_movies_and_entertainment.qa diff
    Merge branch 'gttrivia_small_updates' into 'master' Updates/fixes to Good Time Trivia questions & answers etc. See merge request main/sbbs!253

  289. Rob Swindell (on Debian Linux)
    Sat Feb 04 2023 17:12:07 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/filedat.c diff
    If filename_maxlen is 0, don't use it enforce a maximum filename length This is just extra paranoia now since the reading of file.ini enforces the value range 8 <-> 65535 now.

  290. Rob Swindell (on ChromeOS)
    Fri Feb 03 2023 19:50:54 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfglib2.c diff
    Insure that the max (uploaded) filename limit is in the range 8-65535 characters Upgrading fromm v3.19 can result in a setting of filename_maxlen=0 in file.ini, so let's put a special check in place to insure this can't happen (thus preventing any file uploads). I chose '8' as a kind of arbitrary minimum maximum value (MS-DOS filenames maxed out at 12 characters), but at least 0 won't be possibly any longer. As reported on DOVE-Net by Codefenix and confirmed by xbit.

  291. Rob Swindell
    Fri Feb 03 2023 16:23:16 GMT-0800 (PST)
    Modified Files:
    

    CONTRIBUTING.md diff
    Typos and capitalization

  292. Eric Oulashin
    Fri Feb 03 2023 08:57:34 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    DDMsgReader: When reading or listing messages, either the DEL or BACKSPACE key...

  293. Rob Swindell
    Fri Feb 03 2023 08:57:34 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Merge branch 'dd_msg_reader_delete_backspace' into 'master' DDMsgReader: When reading or listing messages, either the DEL or BACKSPACE key... See merge request main/sbbs!252

  294. Rob Swindell (on ChromeOS)
    Fri Feb 03 2023 00:21:39 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/inkey.cpp diff
    src/sbbs3/sbbs.h diff
    Move input translation (e.g. for PETSCII) to its own sbbs_t methods Move kbincom() to an sbbs_t method. No functional change here, just getting ready to support input translation for stdio external programs as an option.

  295. Rob Swindell (on Windows)
    Thu Feb 02 2023 18:08:44 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    Don't include number of user's file uploads in action/[upload|download] msgs

  296. Rob Swindell (on Windows)
    Thu Feb 02 2023 17:47:03 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    Fix uploader-notification, credit awards, download-counters in FTP downloads Since v3.19 (the new filebases), when a user FTP-downloaded a file, we failed to properly find/load that file's record from the filebase (searching for the file's full path, rather than just the filename), so the code the increments the file's download counter, notifies the uploader, awards credits, etc. did not ever execute. This means that FTP-downloads for all files downloaded via FTP were effectively "free" (and nobody noticed). No error was logged either. I discovered this while debugging the case of "(null)" filenames in the action/download MQTT topic messages being published by the FTP server. So that issue is fixed as part of this commit as well. Oh, and if this code had executed before, it would have memory-leaked the file information, so that's fixed too (added call to smb_freefilemem). Ugh.

  297. Rob Swindell (on Windows)
    Thu Feb 02 2023 13:47:32 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/chat.cpp diff
    Sysop can chat with nodes that aren't logged-in (at logon prompt, new users) Be sure to let them select a node even when no nodes are technically "in use". As requested by Nelgin in IRC (what, no gitlab issue?)

  298. Rob Swindell (on Windows)
    Thu Feb 02 2023 13:17:50 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Lower severity of "Spy socket ... connected" log message from ERR (?) to INFO Looks like just a confluence of search/replace errors over the past 19 years, starting with commit 9ef382e50c6.

  299. Rob Swindell (on Debian Linux)
    Thu Feb 02 2023 13:09:56 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/umonitor/umonitor.c diff
    Make the "Spy on node" and "Chat with user" node options always available On the node options popup menu, these options weren't visible/available unless there was a user logged-in, but they're usable and useful even when there is not a user logged-in.

  300. Rob Swindell (on Debian Linux)
    Thu Feb 02 2023 13:14:15 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/umonitor/umonitor.c diff
    Make the chat (F10) work even when user is not logged-in A sysop can, and may want to, chat with a user before they succesfully login.

  301. 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

  302. 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

  303. 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

  304. 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

  305. 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.

  306. 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

  307. 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

  308. 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

  309. 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

  310. 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

  311. 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)

  312. 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

  313. 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.

  314. 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.

  315. 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

  316. 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

  317. 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.

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

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

  319. 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

  320. 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.

  321. 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.

  322. 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.

  323. 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

  324. 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.

  325. 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.

  326. 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/*

  327. 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.

  328. 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

  329. 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

  330. 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

  331. 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.

  332. 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).

  333. 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

  334. 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

  335. 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.

  336. 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?

  337. 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.

  338. 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.

  339. 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. :-/

  340. 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

  341. 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

  342. 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).

  343. 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.

  344. 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

  345. 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

  346. 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

  347. 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

  348. 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.

  349. 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).

  350. 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

  351. 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!

  352. 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!

  353. 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)

  354. 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

  355. 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.

  356. 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!

  357. 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.

  358. 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.

  359. 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.

  360. 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

  361. 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.

  362. 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.

  363. 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.

  364. 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.

  365. 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.

  366. 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.

  367. 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.

  368. 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

  369. 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

  370. 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

  371. 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

  372. 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)

  373. 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

  374. 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. :-)

  375. 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

  376. 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

  377. 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

  378. 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

  379. 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

  380. 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

  381. 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

  382. 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.

  383. 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.

  384. 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

  385. 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

  386. 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

  387. 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

  388. 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

  389. 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

  390. 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

  391. 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

  392. 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

  393. 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

  394. 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

  395. 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

  396. 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.

  397. 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).

  398. 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.

  399. 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.

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

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

  401. 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)

  402. 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.

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

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

  404. 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)

  405. 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.

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

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

  407. 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)

  408. 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

  409. 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)

  410. 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.

  411. 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.

  412. 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)

  413. 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

  414. 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

  415. 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.

  416. 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.

  417. 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

  418. 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

  419. 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.

  420. 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.

  421. 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.

  422. 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.

  423. 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

  424. 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

  425. 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

  426. 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

  427. 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.

  428. 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.

  429. 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.

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

    webv4/lib/auth.js diff
    Aripoll auth wtf

  431. 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

  432. 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.

  433. 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

  434. 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.

  435. 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

  436. 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

  437. 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

  438. 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

  439. 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

  440. 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

  441. 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.

  442. 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

  443. 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.

  444. 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.

  445. 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.

  446. 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.

  447. 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.

  448. 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

  449. 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.

  450. 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

  451. 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

  452. 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)

  453. 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).

  454. 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.

  455. 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

  456. 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.

  457. 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.

  458. 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.

  459. 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.

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

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

  461. 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>

  462. 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"

  463. 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

  464. 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.

  465. 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.

  466. 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

  467. 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()

  468. 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)

  469. 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

  470. 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

  471. 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.

  472. 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.

  473. 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().

  474. 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

  475. 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.

  476. 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.

  477. 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.

  478. 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.

  479. 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.

  480. 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

  481. 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.

  482. 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()

  483. 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

  484. 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.

  485. 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.

  486. 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

  487. 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.

  488. 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.

  489. 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.

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

    src/sbbs3/mqtt.c diff
    Add TLS support

  491. 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

  492. 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

  493. 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

  494. 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.

  495. 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

  496. 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

  497. 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*’

  498. 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).

  499. 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.

  500. 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()

  501. 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

  502. 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.

  503. 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>

  504. 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

  505. 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.

  506. 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.

  507. 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.

  508. 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.

  509. 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)

  510. 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.

  511. 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!)

  512. 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.

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

    src/sbbs3/sbbsexec.c diff
    Fix typo

  514. 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.

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

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

  516. 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

  517. 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.

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

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

  519. 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.

  520. 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.

  521. 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.

  522. 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.

  523. 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.

  524. 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.

  525. 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.

  526. 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.

  527. 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

  528. 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

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

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

  530. 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.

  531. 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.

  532. 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.

  533. 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.

  534. 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.

  535. 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

  536. 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.

  537. 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.

  538. 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.

  539. 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.

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

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

  541. 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

  542. 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.

  543. 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.

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

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

  545. 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.

  546. 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

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

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

  548. 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

  549. 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.

  550. 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.

  551. 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.

  552. 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).

  553. 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.

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

    src/syncterm/telnet_io.c diff
    Whitespace cleanup

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

    src/syncterm/ripper.c diff
    Fix RIP_FILE_QUERY

  556. 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.

  557. 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.

  558. 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.

  559. 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

  560. 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

  561. 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.

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

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

  563. 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?"

  564. 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.

  565. 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

  566. 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.

  567. 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.

  568. 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.

  569. 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.

  570. 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

  571. 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

  572. 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

  573. 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