1. 27 May, 2022 1 commit
  2. 25 May, 2022 1 commit
  3. 24 May, 2022 9 commits
  4. 19 May, 2022 1 commit
    • Rob Swindell's avatar
      Fix loop limit (system.stats.total_users != system.lastuser) · ddd4d10b
      Rob Swindell authored
      When looping to highest user number, use system.lastuser, not
      system.stats.total_users.
      
      This explains why not all userbases would be affected by the just-fixed
      issue in js_user.c. If the total_users happens to equal lastuser, then
      you would have hit the issue in js_user.c. If you had at least one
      deleted or inactive user account, then system.stats.total_users would
      be less than system.lastuser and your system would *not* have triggered
      that bug.
      ddd4d10b
  5. 18 May, 2022 1 commit
    • Rob Swindell's avatar
      Fix User.number increment beyond lastuser issue · 65e93897
      Rob Swindell authored
      When the 'number' property of an instance of User was incremented beyond the last user, the call to fgetuserdat() on subsequent property 'get' operation would fail and zero-out the user structure (including the user number). This resulted in an infinite loop in load/birthdays.js where the user number would go from lastuser to 1 in one operation (u.number++).
      
      Reported by DesotoFireflite (VALHALLA)
      65e93897
  6. 17 May, 2022 7 commits
  7. 16 May, 2022 4 commits
  8. 11 May, 2022 2 commits
  9. 10 May, 2022 4 commits
  10. 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
  11. 08 May, 2022 5 commits
    • Rob Swindell's avatar
      Remember the last 'first_msg' property value after msgbase is closed · 323ff1e8
      Rob Swindell authored
      The other msgbase property values are stored in the smb.status or other private_t members which retain their value when the message base is closed, unlike the 'first_msg' property which required a read of the message base index to get the value (and that doesn't work when the message base is closed, so would return 0).
      
      for deon (ALTERANT)
      323ff1e8
    • Rob Swindell's avatar
      Synchronet Virtual DOS Modem for Windows · b70d5898
      Rob Swindell authored
      First commit.
      
      Right now it just connects/accepts-connections using raw TCP. As demonstrated in YouTube video:
      https://www.youtube.com/watch?v=fxp38Nde3fg
      b70d5898
    • Rob Swindell's avatar
      Improvements to virtual UART driver for Windows · 7791b698
      Rob Swindell authored
      In the process of creating/testing the new Synchronet Virtual DOS Modem (SVDM) project, I made the following significant improvements:
      
      - Don't default the log level to DEBUG for debug builds
      - Add a "carrier change" event so carrier low to high transitions can be tracked too
      - Replace several lprintf() calls with lputs() for performance reasons
      - Specify 'volatile' storage for pending_interrupts
      - Interrupts are re-asserted if there are any pending interrupts after reading IIR register
      - Emulate FIFO enablement
      - Support RTS flow control signal
      - Remove conditional/configurable yields when polling LSR and MSR register, would just unnecessarily slow down terminal programs
      - Report "DCD change" in MSR correctly
      - Clean-up (e.g. close handles) in VDD_CLOSE handler
      - VDD_LOAD_INI_FILE allows an optional ini filename (instead of directory) as its argument - for loading an ini filename other than sbbsexec.ini (e.g. svdm.ini).
      
      Initialize log level in VDDInitialize(). For versions of Windows/NTVDM that use/call the "init proc" (this function), we just re-initialize global variables here.
      7791b698
    • Rob Swindell's avatar
      Support an optional ini filename argument, write to DOSXTRN.ERR · 5e9cc98f
      Rob Swindell authored
      If a 4th optional argument is provided, use that as the ini filename for virtual UART/FOSSIL driver settings instead of "sbbsexec.ini". Using this feature requires an updated sbbsexec.dll that supports an ini-filename argument (instead of a directory) to the VDD_LOAD_INI_FILE command.
      
      If DOSXTRN fails to execute the passed command-line, _spawnvp() returns -1, log the errno value and description to DOSXTRN.ERR (in the same directory as DOSXTRN.ENV). This will help diagnose issues executing DOS command-lines (e.g. file not found).
      
      Upon failure to open/create DOSXTRN.RET, don't prematurely terminate as that would skip a lot of important cleanup.
      5e9cc98f
    • Rob Swindell's avatar
      Print the upload TCP protocol (when available) w/user name, not host/IP · 066c4bd3
      Rob Swindell authored
      Long hostnames would prevent the protocol from being shown. Also, non-operators should be able to see the protocol used to upload files.
      066c4bd3
  12. 01 May, 2022 1 commit
  13. 30 Apr, 2022 2 commits
    • Rob Swindell's avatar
      Fix DIZ extraction/use for FTP uploads · b1449b27
      Rob Swindell authored
      1. Was not setting f->dir to the correct directory number, so only ftp-uploads to the *first* directory (dirnum = 0) would extract DIZ files of uploaded files.
      
      Removing the 'dirnum' parameter to addfile() since that implied that you did not have to initialize the 'dir' element of the passed file_t, but you do: to get the correct file path for file size/date detection and the DIZ extraction.
      
      2. Was getting heap-corruption when freeing the imported/formatted DIZ text on Windows once the above problem was fixed: can't free() in one DLL memory that was allocated in another DLL. Created and now using free_diz() to free the memory allocated in read_diz().
      
      format_diz() handles a NULL 'lines' argument correctly/gracefully, so no need for the NULL lines check in sbbs_t::uploadfile().
      
      Added FTP server log messages for successful file upload or update by user.
      b1449b27
    • Rob Swindell's avatar
      Fix CID 174496: Integer handling issues (BAD_SHIFT) · bf1cae28
      Rob Swindell authored
      Don't repeat call atoi() unnecessarily.
      bf1cae28
  14. 29 Apr, 2022 1 commit