1. 04 Aug, 2022 1 commit
  2. 07 Jul, 2022 1 commit
  3. 15 Jun, 2022 1 commit
    • Rob Swindell's avatar
      Allow sysop-choice of source of virtual sub-directory source name · 3823fea1
      Rob Swindell authored
      By default, each file transfer directory's internal code suffix is
      used as the source of the sub-directory of the virtual path used
      to represent a file area in the FTP and Web servers. Now, a sysop
      can change that source to either each directory's short name or
      long name, if they prefer.
      
      For MRO, because he asked (on DOVE-Net).
      3823fea1
  4. 02 Jun, 2022 1 commit
  5. 09 May, 2022 1 commit
    • Rob Swindell's avatar
      Add "Disable Local Display" option for doors, parse DOSXTRN.ERR · dc0d401d
      Rob Swindell authored
      New option to disable local screen display for door programs: sets the 'Screen' value appropriately in door.sys or pcboard.sys drop files and on Windows, doesn't create a new console window.
      
      Also, now parsing the DOSXTRN.ERR file created by the latest/greatest dosxtrn.exe when failing to execute the child/DOS program and log the parsed error details (errno value and description), helpful in debugging the reason why a DOS program may not have been successfully executed by DOSXTRN.
      dc0d401d
  6. 30 Apr, 2022 1 commit
  7. 29 Apr, 2022 2 commits
    • Rob Swindell's avatar
      Give the timed event config menu the left/right arrow key treatment · f0b0e4ef
      Rob Swindell authored
      Allows quick traversing through timed events (e.g. for comparison of settings).
      f0b0e4ef
    • Rob Swindell's avatar
      Add "Native" option for QWKnet call-out cmd-lines · bb43c70b
      Rob Swindell authored
      This really shouldn't be necessary to toggle (at least now) on Windows, since we treat all off-line executions as "native", but for *nix, it could make a big difference if trying to invoke a native program or shell script for a QWKnet call-out and it would either fail due to no DOS support or try to executing using Linux-DOSEMU (unless the command's program name was in the global "native program list" configured in SCFG->External Programs).
      bb43c70b
  8. 18 Apr, 2022 1 commit
  9. 16 Apr, 2022 1 commit
  10. 15 Apr, 2022 1 commit
  11. 14 Apr, 2022 1 commit
    • Rob Swindell's avatar
      Add configurable log size limit and retention count · 238b0b7c
      Rob Swindell authored
      For the following log files:
        hungup.log
        error.log
        crash.log
        hack.log
        spam.log
        guru.log
      
      ... they can be limited in size, in bytes, by the sysop, along with a maximum retention limit (number of *.#.log files). Configured in SCFG->System->Advanced.
      
      By default, the limit and keep numbers are 0, so "unlimited" (same behavior as before). Once sufficiently tested, I'll change the default in a stock main.cnf file to use a sensible limit (e.g. 10 log files of 10MB each, something like that).
      238b0b7c
  12. 28 Mar, 2022 2 commits
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Overhaul statistics files · 908a31be
      Rob Swindell authored
      */dsts.dab (daily statistics and running totals) -> */dsts.ini
      */csts.dab (cumulative statistics / log) -> */csts.tab
      
      * dsts.ini now has both daily and total stats for all fields (not just timeon and logons).
      * dsts.ini is now an easily modifiable text file - no longer need dstsedit (here-by deprecated and soon to be deleted)
      * dsts.ini and csts.tab support 64-bit upload/download byte stats and are very extensible for future fields to be added or extended > 32-bit (this was the main inspiration for this overhaul, but it was overdue and already designed for v4, pretty much)
      * csts.tab is a tab-delimited fixed length record format suitable for easy import to a spreadsheet program or parsing with scripts. Each day is a 128-character LF-delimited record with tab-delimited fields of plain ASCII text.
      * All fields except timeon in dsts.ini files are updated immediately and by more non-terminal servers (e.g. post statistics from web UI scripts).
      * New user stats are tracked more than just for "today".
      
      The upgrade of these files is automatic and built-into SBBS.
      
      Still to do: overhaul the slog utility to support the new csts.tab file format.
      908a31be
  13. 24 Mar, 2022 1 commit
    • Rob Swindell's avatar
      Support user credits and transfer stats > 4GB in total · 1cac2c8a
      Rob Swindell authored
      Credits and daily free credits are accurate to the byte up to (a maximum) of 18446744073709551615 (that's 18 Exbibytes - 1).
      
      User's upload and download byte stats are now similarly extended in maximum range, but the accuracy is only "to the byte" for values less than 10,000,000,000. Beyond that value, the accuracy declines, but is generally pretty damn accurate (to 4 decimal places beyond the nearest multiple of a power of 1024), so I don't expect that to be an issue. This method of storing upload/download byte stats allowed me to use the same 10-character user record fields in the user.dat file.
      
      As a side-effect of this enhancements:
      * User and file credit values are now expressed in multiples of powers of 1024 (e.g. 4.0G rather than 4,294,967,296).
      * Free credits per day per security level has now been extended from 32 to 64-bits (to accommodate values >= 4GB).
      * adjustuserrec() now longer takes the record length since we can easily determine that automatically and don't need more "sources of truth" that can be out-of-sync (e.g. the U_CDT field length going from 10 to 20 chars with this change).
      * setting the stage for locale-dependent thousands-separators (e.g. space instead of comma) - currently still hard-coded to comma
      * more/better support for files > 4GB in size (e.g. in the batch download queue)
      * user_t ulong fields changed to either uint32_t or uint64_t - I didn't realize how many long/ulong's remained in the code (which are sometmies 32-bit, sometimes 64-bit) - ugh
      * Steve's ultoac() function renamed to u32toac() and created a C++ wrapper that still uses the old name, for homage
      1cac2c8a
  14. 21 Mar, 2022 2 commits
  15. 13 Mar, 2022 1 commit
  16. 11 Mar, 2022 2 commits
  17. 07 Mar, 2022 1 commit
    • Rob Swindell's avatar
      Cycle through grps, subs, libs, and dirs using left/right arrow keys · ceb01048
      Rob Swindell authored
      Nelgin's suggestion to support quick searching/scanning through message and file areas (e.g. comparing settings or whatever) without having to ESC then arrow key, ENTER, for each.
      
      Uses Deuce's WIN_EXTKEYS UIFC mode flag, which I don't think I've used before now and uses the special -CIO_KEY value - 2 trick.
      
      Also expanded the width of the sub-board and directory info windows to show more information (including full long name).
      
      Fixes issue (wishlist item) #349 by Nelgin
      ceb01048
  18. 03 Mar, 2022 1 commit
  19. 02 Mar, 2022 1 commit
  20. 28 Feb, 2022 2 commits
  21. 21 Feb, 2022 1 commit
    • Rob Swindell's avatar
      Rename "Allow Sysop Login" option to "Allow Sysop Access" · a8a6ca22
      Rob Swindell authored
      With this option set to "No", sysops can still login, they just can't perform most sysop functions.
      
      Updated System Password help text to clarify that the "Allow Sysop Access" option effectively disables the system password. Also mention the FTP Server use of the system password to enable sysop access.
      a8a6ca22
  22. 19 Feb, 2022 1 commit
  23. 09 Feb, 2022 1 commit
  24. 05 Feb, 2022 2 commits
    • Rob Swindell's avatar
      O-restriction forces sent netmail to come from user's alias too · b35a9907
      Rob Swindell authored
      Users with the 'O' restriction (automatically set if a new user has the same "real name" as another account, and that's allowed by the sysop) will send netmail from their alias and not their real name to prevent impersonation of another user.
      b35a9907
    • Rob Swindell's avatar
      Detect and reject duplicate internal code prefixes · 5fcc9090
      Rob Swindell authored
      Don't let (or at least try to prevent) a sysop create a duplicate message group or file library internal code prefix (which could lead to duplicate internal codes for subs and dirs, pretty easily and accidentally).
      5fcc9090
  25. 04 Feb, 2022 2 commits
  26. 01 Feb, 2022 1 commit
    • Rob Swindell's avatar
      Implement the sbbsfile.nam and sbbsfile.des post-processing in v3.19 · bc7030d3
      Rob Swindell authored
      This one was one of the last TODO items for the new filebase implementation: It's been supported (for a *long* time) that a file tester/upload processor could change the uploaded file's name or description by modifying the contents of the sbbsfile.nam and sbbsfile.des files in the node's directory (I know, great names, eh?). These files were not read-back into sbbs to apply any changes in v3.19b and that's now "fixed" though I'm not sure any file upload tester/processor actually ever made use of this feature.
      
      Also as part of this change, the '%s' specifier for the tester command-line will now be replaced with the path to the sbbsfile.des file and not the file's description itself (which could easily have been problematic for a command-line).
      
      Updated SCFG help text to suit.
      bc7030d3
  27. 28 Jan, 2022 2 commits
    • Rob Swindell's avatar
      Use sbbs.ini [web] FileVPathPrefix to configure web filebase prefix · acd808d3
      Rob Swindell authored
      It bothered Deuce having a web server setting in scfg_t/SCFG->File Options, so I moved this setting to [web_]startup_t and the sbbs.ini file.
      
      The downside is that file_area.web_file_prefix is no longer available to JS environments outside of the web server and terminal server, but meh, probably not going to use it elsewhere anyway? I can imagine use cases for JSexec scripts to want to generate URLs to filebase files. If that ends up being a need, they'll have to find and parse the "right" sbbs.ini file to determine the vpath prefix. 
      acd808d3
    • Rob Swindell's avatar
      Fix up the directory internal code suffix help text · 19fbeaea
      Rob Swindell authored
      ... more aligned with a sub-board's internal code help text.
      19fbeaea
  28. 18 Jan, 2022 1 commit
    • Rob Swindell's avatar
      Provide more help for the "Access to Sub-directories" feature · 3a1929b8
      Rob Swindell authored
      This is an experimental feature that's been in the code for quite a while without any supporting help/docs (there was the original commit message, I'm sure). I'm not sure how much value this feature is without providing automatic access to the *files* within the sub-directories, but there you have it.
      3a1929b8
  29. 16 Jan, 2022 1 commit
    • Rob Swindell's avatar
      Add direct filebase access from the web server (optional) · 1ab2956b
      Rob Swindell authored
      By setting SCFG->File Options->Web File Virtual Path Prefix to something (e.g. "/files/"), all HTTP or HTTPS requests to the Synchronet Web Server with request paths beginning with this prefix will be interpreted as filebase access requests (with full access control enforcement). This is configured here (in SCFG) rather than, say, the [web] section of sbbs.ini, because I have plans for the terminal server to use this prefix to generate Web-URLs for files to display or email to users.
      
      Currently, only requests to *files* (for download) are supported (no index generation, file information, etc. and definitely no upload support). Full access control (using HTTP auth, not cookies) is used for libraries and directories with controlled access. Credits are deducted and awarded and uploaders are notified of downloads, as one would expect. Requests to any dynamic-web-content files (e.g. .SSJS, .XJS, etc.) will be treated as static file download requests (no script will be executed).
      
      I'm reusing the same virtual path parsing logic from the FTP server (moved to the userdat lib), so the virtual path to a file for download would be, for example, http://yourdomain/files/lib/dir-code/filename.ext
      
      The main motivation for this feature is: FTP-links in email and web pages are just not useful to many users these days and I don't think that sysops should have to rely on a SSJS web UI (e.g. ecWebv4, cool as it is), to provide web-access to the filebases. Using this feature, you can share simpler/shorter web links to your files that will be more enduring.
      1ab2956b
  30. 11 Jan, 2022 1 commit
    • Rob Swindell's avatar
      Allow maximum uploaded filename length to be configured · eb8114bd
      Rob Swindell authored
      Default to 64 characters. Maximum value is 65535 characters, but filenames larger than 64 characters may be problematic (e.g. searching for them, displaying them, security concerns), so only increase with caution. Shorter values are fine, but 0 will just revert back to the default.
      eb8114bd
  31. 02 Jan, 2022 1 commit
  32. 01 Dec, 2021 1 commit
    • Rob Swindell's avatar
      Remove the last remnants of Win9x/Me support · 717592bc
      Rob Swindell authored
      Allow "FOSSIL Only" as a configuration option for external programs in SCFG. This is a much easier method of disabling the virtual UART support in the Virtual UART/FOSSIL device driver (if/when necessary) than editing the sbbsexec.ini file (which is still supported).
      717592bc