Synchronet now requires the libarchive development package (e.g. libarchive-dev on Debian-based Linux distros, libarchive.org for more info) to build successfully.

  1. 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
  2. 30 Nov, 2021 1 commit
    • Rob Swindell's avatar
      Add support for NTVDMx64 · 6b5de04a
      Rob Swindell authored
      Yes, you can run 16-bit DOS doors on 64-bit (x64) Windows now.
      
      Install NTVDMx64 (http://www.columbia.edu/~em36/ntvdmx64.html, it's not as onerous as it sounds) and re-enable DOS program support in SBBS (i.e. make sure "NO_DOS" is not in your sbbs.ini [bbs] Options value) and voila: DOS doors work.
      
      This change adds an empty init routine to sbbsexec.dll since older versions of NTVDM (which NTVDMx64 is based on) required one. Also, the sbbsexec.dll should be located in your Synchronet "exec" directory when using NTVDMx64 (in addition to or instead of your Windows/System32 directory).
      6b5de04a
  3. 23 Nov, 2021 1 commit
    • Rob Swindell's avatar
      Allow FOSSIL mode of the Win32 virtual UART/FOSSIL driver to be disabled · 5b36ab9a
      Rob Swindell authored
      When configuring an external program, a Win32 sysop can now choose to *only* enable the virtual UART (and not the FOSSIL driver) feature of the Synchronet virtual UART/FOSSIL driver (dosxtrn.exe/sbbsexec.dll). Some programs (e.g. TradeWars 2) will always use the FOSSIL driver if one is detected and in order to force the use of COM/UART driver for I/O (if that is desired), then one must disable the FOSSIL driver. It's a rare use case, but I can see the potential need.
      
      Renamed the "Intercept I/O" option in SCFG to "I/O Method" and make it clear that "Socket" (for native programs) and "FOSSIL or UART" (for 16-bit DOS programs) is the default method (what was previously identified as "No" I/O Interception).
      
      If a sysop want to disable the virtual UART support (on Win32, e.g. so *only* FOSSIL is available to one or all DOS programs), they do that via their sbbsexec.ini file.
      5b36ab9a
  4. 16 Nov, 2021 1 commit
  5. 05 Apr, 2021 1 commit
    • Deucе's avatar
      More closely reproduce select() behaviour when using poll() · b5b02ba5
      Deucе authored
      Specifically, have errors mean the fd is "ready".
      
      Also, fix some extra revent clearing and a spy socket issue while
      we're looking at this code.
      
      Should fix issues with CGI scripts that close stdin/stdout but do
      not terminate, and maybe deal with some other corner cases at the
      same time.
      b5b02ba5
  6. 04 Apr, 2021 2 commits
  7. 31 Mar, 2021 1 commit
    • Deucе's avatar
      Use new PREFER_POLL define to control poll() usage · 3de05e2d
      Deucе authored
      Rather than depending on _WIN32 which is silly, make it clear what
      exactly is being done and why.
      
      Note that the spy socket stuff and some external stuff on *nix have
      had the select() implementation removed.  To support using select()
      on !Win32 will require de-refactoring that's not really worth doing.
      Instead, just use #error and reference the commit where the old
      code can be found.
      3de05e2d
  8. 30 Mar, 2021 1 commit
    • Deucе's avatar
      Initial poll() work · af30c430
      Deucе authored
      Still needs updates in services_thread(), CGI stuff in websrvr.c,
      and sbbs_t::external()
      af30c430
  9. 22 Feb, 2021 1 commit
  10. 21 Feb, 2021 1 commit
  11. 19 Feb, 2021 1 commit
  12. 18 Feb, 2021 1 commit
  13. 17 Feb, 2021 1 commit
  14. 15 Feb, 2021 2 commits
  15. 17 Dec, 2020 1 commit
    • Michael Long's avatar
      Improvements to linux dosemu support · 0bf85543
      Michael Long authored
      The hardcoded external.bat file has been moved to a templated
      /exec/external.bat which can be modified by the sysop. ENV
      vars are in there to be able to customize as needed. emusetup.bat
      is no longer needed, but still supported. The actual dosemu command line
      is now stored in /exec/dosemulaunch.ini and can be customized for
      fossil or i/o command lines. the keystroke is now only sent for i/o, and
      only sent as \n instead of \r which would trigger undesired behavior in
      certain programs. The above 2 files can also be placed in door dirs
      to override. ansi.com has been removed as it was not needed. default
      external.bat includes cmd lines for share, x00, etc. (user will still
      need to provide these in xtrn/dosutils).
      0bf85543
  16. 02 Dec, 2020 1 commit
  17. 01 Dec, 2020 2 commits
  18. 30 Nov, 2020 1 commit
    • Rob Swindell's avatar
      Better native vs. DOS cmd-line detection in cmdstr() · 94517fdf
      Rob Swindell authored
      Always check the command-line for a '*' or '?' prefix and compare the executed filename against the native program list. For DOSEMU magic drive/path name command-line specifier substitution, but only when invoking DOS programs. Reported by bobrob via IRC.
      94517fdf
  19. 29 Nov, 2020 1 commit
  20. 28 Nov, 2020 1 commit
  21. 25 Nov, 2020 6 commits
  22. 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
  23. 05 Nov, 2020 1 commit
  24. 30 Aug, 2020 2 commits
    • Rob Swindell's avatar
      Fix compile issue in previous commit. Add more semicolons. · ec5cbb84
      Rob Swindell authored
      One can't have too many semicolons.
      ec5cbb84
    • Rob Swindell's avatar
      External program "use shell" option can be used to use a new JS context · 1decdc69
      Rob Swindell authored
      Rather than introduce yet-another-external-program/config flag to enable
      the "new JS run-time/context" per invocation of any particular JS command,
      I'm using the XTRN/EX_SH ("Use Shell") option as it had no function for
      JavaScript command-lines and the concept is similar.
      
      So if you want to invoke a JS external program/timed-event in its own
      "sandbox", enable the "Use Shell / New Context" option for that
      program/command in SCFG. There may be performance penalties when running
      JS mods in this way, but you get the benefit of isolating one JS module
      from all others, if/when necessary.
      1decdc69
  25. 16 Aug, 2020 1 commit
  26. 02 Aug, 2020 1 commit
  27. 01 Aug, 2020 1 commit
    • rswindell's avatar
      An experimental external() mode flag that runs JS modules in their own... · b898eb73
      rswindell authored
      An experimental external() mode flag that runs JS modules in their own separate runtime and context - currently does not work (appears to corrupt the shared JS context). Not actually used currently.
      The reason I wanted to run a JS module (actually JS doorgame) in its own context was to get useful error messages (filenames and line numbers) when the module throws an exception. Currently, the error is just reported as occuring in xtrn_sec.js, which isn't helpful or correct.
      b898eb73
  28. 19 May, 2020 1 commit
  29. 15 Apr, 2020 1 commit
    • rswindell's avatar
      Added 2 new environment variables dynamically-defined when launching DOS · a3cdd3b8
      rswindell authored
      programs: PCBDRIVE (the drive letter of the current node directory) and PCBDIR
      (the path to the current node directory, without the drive letter).
      
      These emulate the same variables crated by PCBoard.
      
      The reason these are being added is that Sunrise Door Software's 16-bit doors
      contain special support for these environment vars when used in their .CFG files
      (e.g. %PCBDIR%DOOR.SYS) and this allows easy multi-node configuration with a
      single .CFG file. The SBBSNODE environment varialbe would have worked perfectly
      fine for this purpose, but apparently Sunrise Doors (or the DoorFrame
      development kit they utilized) has hard-coded these PCBoard (and Wildcat!)
      environment variable names, so SBBSNODE wont' work for this purpose.
      
      For Synchronet-Win32, you will need the DOSXTRN.EXE revision 25 or later
      or you may experience NTVDM crashes when running external DOS programs.
      a3cdd3b8
  30. 28 Mar, 2020 1 commit
  31. 25 Mar, 2020 1 commit