1. 15 Feb, 2021 2 commits
  2. 14 Feb, 2021 1 commit
  3. 18 Jan, 2021 1 commit
    • Rob Swindell's avatar
      Safe string handling with config-load error messages · 99dbeb14
      Rob Swindell authored
      We were just trusting that the error strings would be shorter than 256 (usually), but since we're including paths and strerror() results, we really have no control over the length of the error strings. So enforce some healthy boundaries. This could explain the crashes that Divarin of Mutiny is seeing with SCFG on WinXP or maybe it was the truncsp(strerror()) stuff that was just removed as well. We'll see...
      99dbeb14
  4. 20 Dec, 2020 1 commit
  5. 13 Dec, 2020 4 commits
  6. 07 Dec, 2020 1 commit
  7. 29 Nov, 2020 4 commits
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Fallback to the "first node" configuration · 07bd3442
      Rob Swindell authored
      If a node's configuration can't be loaded (e.g. nodeX/node.cnf is missing), fall-back and load the "first node" (e.g. Node1) configuration. On recent *nix installs (since the migration to Git), the node2+/node.cnf files were not copied/created, so let's solve that soon-to-be-FAQ now.
      07bd3442
    • Rob Swindell's avatar
      Copy event last-run info from global config into node config · 827063bb
      Rob Swindell authored
      Fixes issue introduced in last commit to this file (the each-node-has-its-own-config-in-memory enhancement) that would prevent users from logging in because their time was reduced for an upcoming event that had already run. The change assumes the event thread is running (its the thing that reads the event last-run info from time.dab). Thanks to mlong for the report.
      827063bb
    • Rob Swindell's avatar
      Load/keep/refresh each node's configuration in memory. · 82d3ae6e
      Rob Swindell authored
      Previously, all nodes shared the same copy of the configuration in memory. This prevented any node from seeing an updated configuration until all nodes were offline or waiting for connection and could be recycled. Now, no recycling of the server is needed for a node to load a new config. A node in-use *still* cannot reload configuration until the user disconnects, but all you have to do is logon to another unused node and you (or that user) will get an updated configuration. Bots or server recycling problems will no longer prevent the sysop or user from getting a current configuration when connecting to any node.
      
      This is one of those instances of giving the sysop what he wants rather than what he asked for. I should've done this a long time ago, but the idea just occurred to me. You're welcome. :-)
      82d3ae6e
  8. 24 Nov, 2020 1 commit
    • Rob Swindell's avatar
      Stop pretending to configure the JavaScript Context stack · c0cd8686
      Rob Swindell authored
      The argument to JS_NewContext that we were allowing to be configured was not the contest stack size, but rather:
      "The size, in bytes, of each "stack chunk". This is a memory management tuning parameter which most users should not adjust. 8192 is a good default value." - per Mozilla.
      
      So we're just going to use the suggested default, hard-coded.
      c0cd8686
  9. 20 Nov, 2020 1 commit
  10. 19 Nov, 2020 1 commit
  11. 18 Nov, 2020 5 commits
  12. 17 Nov, 2020 1 commit
  13. 13 Nov, 2020 1 commit
    • Rob Swindell's avatar
      Add timestamp of node.log file to crash.log · bd78d5c5
      Rob Swindell authored
      When a preexisting node.log file is found, a terminal server crash is suspected. Include the timestamp of the node.log in the message appended to the system log (data/logs/*.log) to help identify the likely time of the crash.
      bd78d5c5
  14. 09 Nov, 2020 1 commit
  15. 06 Nov, 2020 1 commit
    • Rob Swindell's avatar
      Replace ctype.h function calls with new MSVC-safe XPDEV macros · 8a7b7308
      Rob Swindell authored
      I'm fed-up with MSVC assertions in ctype functions (e.g. isdigit, isprint, isspace, etc.) when called with out-of-range (e.g. negative) values.
      
      This problem only affects MSVC debug builds, but if you run them (like I do), these things are like little time bombs that can drive you crazy (knocking your board out of service).
      
      The new macros names are bit more descriptive as well.
      8a7b7308
  16. 05 Nov, 2020 1 commit
  17. 02 Nov, 2020 1 commit
    • Deon George's avatar
      Misc updates for sbbs/sbbs!11 · 9d66d732
      Deon George authored
      Use \n\r instead of \x0a\x0d.
      Change to memcpy instead of strcmp for v2 protocol validation
      Change read_socket error logging to WARNING, since the resulting error is diagnosed after the call.
      9d66d732
  18. 25 Oct, 2020 1 commit
  19. 23 Oct, 2020 1 commit
  20. 20 Oct, 2020 1 commit
  21. 19 Oct, 2020 1 commit
  22. 18 Oct, 2020 1 commit
  23. 09 Oct, 2020 1 commit
    • Rob Swindell's avatar
      Use an enum for ANSI output state · f26b296b
      Rob Swindell authored
      No functional change with regard to the ANSI output state, just making the code easier to read.
      
      Removed the conversion of `[ and \xFA[ to \x1b[ in putmsg(). This unexplained output translation has been supported since at least v2.xx and I have no recollection of exactly why it was added. If I recall correctly, some BBS software at some point in time sent ANSI-encoded messages into message networks by translating the ESC (\x1b) character in the ANSI sequences to either ` or \xFA in the process. This "feature" seems like it would still work, but it's completely undocumented and I have no idea why it was added (and seriously doubt anyone relies on this behavior), so I'm removing it. If anyone misses this feature, I'll happily add it back, but I'm skeptical that'll happen.
      f26b296b
  24. 20 Sep, 2020 2 commits
  25. 15 Sep, 2020 1 commit
  26. 13 Sep, 2020 2 commits
  27. 07 Sep, 2020 1 commit
    • Rob Swindell's avatar
      Fix observed race-condition resulting in the HOSTNAME @-code being blank. · dee21ed6
      Rob Swindell authored
      Eliminate the hack in each server where it will over-write startup host_name
      (with the configured Internet email address), if it's blank. This hack was
      subject to a race condition where the parent app (e.g. sbbsctrl.exe) would
      clear or re-initialize the host_name after the sever threads had initialized.
      Instead, just use a function which will return either the startup->host_name
      or (fallback to) scfg.inet_addr.
      dee21ed6