1. 02 Mar, 2022 1 commit
  2. 16 Mar, 2021 1 commit
  3. 15 Feb, 2021 2 commits
  4. 14 Feb, 2021 1 commit
  5. 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...
  6. 13 Dec, 2020 1 commit
  7. 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.
  8. 19 Sep, 2020 1 commit
  9. 17 Aug, 2020 1 commit
  10. 16 Aug, 2020 2 commits
    • Rob Swindell's avatar
      Fix issue with jsexec being used for CGI scripts · 54431b31
      Rob Swindell authored
      If jsexec is used for a CGI script and the SBBSCTRL env var was not
      set, a warning would be printed (to stderr), even if the -c option
      was used to specify the path to the ctrl dir.
      get_ctrl_dir() now accepts a boolean argument to specify whether to
      print a warning when the default value ("/sbbs/ctrl") is used.
      Pass FALSE for jsexec, TRUE for other callers (currently).
    • Rob Swindell's avatar
      Commit with CVS Keywords expanded. · dfa1a0a4
      Rob Swindell authored
  11. 03 Aug, 2020 1 commit
  12. 13 Apr, 2020 1 commit
  13. 23 Mar, 2020 2 commits
    • rswindell's avatar
      Only do the whole Linux-capabilities dance when run as root (user-id 0). · f22757c4
      rswindell authored
      This eliminates the error messages that would be displayed/logged when
      attempting the SYS_capset SYSCALL, which fails when not root.
      So the capabilities dance enabled with USE_LINUX_CAPS (which is automatically
      enabled when /usr/include/sys/capabilites.h exists, which is installed with
      the libcap2-dev package) apparently is still useful if you need to start
      sbbs as root: the main thread will remain as root even when the child
      threads have their user-id's changed to the user specified in the [UNIX]
      section of sbbs.ini or on the command-line
      - so reducing the enabled privilege set for this root/main thread to the
      minimum needed, is a good security measure. It does this reduction (call to
      linux_minprivs() after the call to change_user()) so I'm not exactly sure how
      that works, but according to Deuce, this is what's happening. :-/
    • rswindell's avatar
      Clean-up some of this USE_LINUX_CAPS patch, but honestly, I think it's · a2b117c8
      rswindell authored
      time for it to go away. Using 'sudo setcap sbbs' during build seems like the
      better, more supported solution.
  14. 03 Jan, 2020 1 commit
    • rswindell's avatar
      Add/use a new get_ctrl_dir() function to query the SBBSCTRL env var and if · b236be71
      rswindell authored
      not set (or blank), use the default ("/sbbs/ctrl") and print a warning to
      stderr. This resolves a FAQ for sysops that struggle with setting the SBBSCTRL
      env var, but do have sbbs install in /sbbs or a symlink from /sbbs to where
      sbbs is actually installed.
      Note: this function is different than the one previously defined in getctrl.c
      but never used. If/when we ever really need to support PREFIX, then perhaps
      we'll use that one (which copies a string to a buffer).
  15. 02 Sep, 2019 1 commit
  16. 31 Aug, 2019 1 commit
    • rswindell's avatar
      Update the C getnodedat/putnodedat API to not require that the node file · 4c8482c9
      rswindell authored
      (ctrl/node.dab) is constantly closed and re-opened for every non-locking read.
      This is really slow across network file systems and unnecessary, so use a
      similar optimization as the C++ sbbs_t class where the file can (and normally
      is) left open across multiple consecutive reads.
      Create/use opennodedat() function.
      Uses the new CLOSE_OPEN_FILE() macro from xpdev/filewrap.h.
  17. 31 Mar, 2019 1 commit
  18. 08 Jan, 2019 1 commit
  19. 12 Dec, 2018 1 commit
  20. 24 Jul, 2018 1 commit
  21. 18 Mar, 2018 1 commit
  22. 17 Mar, 2018 3 commits
  23. 16 Mar, 2018 1 commit
  24. 14 Jan, 2018 1 commit
  25. 24 Nov, 2017 1 commit
  26. 04 Jun, 2017 1 commit
    • rswindell's avatar
      1. Fixed "always syslog" mode Used to force log output to syslog even when · 7ca2cf57
      rswindell authored
         not daemonized: log output would be repeated (once with a timestamp in
         the log string, once without). Now direct calls to lputs/lprintf from
         sbbscon.c won't go to syslog (in this mode), but I think that's okay.
      2. Change the prompt when terminating the servers: replace the ?=help and
         colon implying you can enter commands with just "Termianting..." since
         you can't actually type commands while a terminate is in progress.
      3. Output the inactivity timeout values when waiting for servers to
         terminate (e.g. because they'res till in use).
      4. Report IP addresses in square-brackes in the client ('c' command) output
         to differentiate from hostnames.
  27. 28 Nov, 2016 1 commit
  28. 19 Nov, 2016 2 commits
    • sbbs's avatar
      pthread thread names are limited to 15 chars (not including nul terminator) · f3da24f7
      sbbs authored
      so use shorter thread names.
    • sbbs's avatar
      Fixed high-CPU utilization after server recycling issue: if the sem_chk_freq · 324c41ba
      sbbs authored
      value is missing or set to 0 in the sbbs.ini file, the sanity checking this
      value (setting it to 2 seconds) will not occur after a server recycle and the
      sbbs.ini is re-parsed. So if for any reason, the sem_chk_freq value becomes
      0, these server threads won't hog the CPU because they all YIELD at the
      top of thier main loops.
      Also, changed all the thread names (e.g. adding "sbbs/" prefix), so they're
      more sensible in the Linux 'top' output.
      Also, started adding 'vi' modelines to auto-set tabstops when using vi/vim.
  29. 16 Nov, 2016 1 commit
  30. 04 Dec, 2015 1 commit
  31. 31 Aug, 2015 1 commit
    • rswindell's avatar
      Enancement for ragnarok: · b839898f
      rswindell authored
      If "syslog" is passed as a command-line option, always send log output to
      syslog, even when not daemonized.
  32. 22 Aug, 2015 1 commit
  33. 20 Aug, 2015 1 commit
    • deuce's avatar
      Update to 3.17a · dbbfabf1
      deuce authored
      New Features:
      - Multiple bindings for each service
        Use comma-separated interfaces on Interface= lines in the ini file.
        Default is now ",::"
      - IPv6 support
      - TLS support for the webserver and (non-static) services
        New TLS option in services.ini (ie: Options=TLS)
      - Decrease LEN_SCAN_CMD to 35 chars, increase the CID field to 45 chars,
        and rename the MAIL_CMD string to IPADDR.  I think this frees up the
        note field for SysOp use.
  34. 02 Mar, 2015 1 commit