Skip to content
Snippets Groups Projects
  1. Nov 30, 2021
    • Rob Swindell's avatar
      Fix typo in condition (if linux) for setting the SETCAP/setcap target · 0e39868b
      Rob Swindell authored
      As reported via irc by Nelgin, the setcap target was not being passed
      to 'make -C src/sbbs3' by default (on Linux) due to a misplaced paren.
      0e39868b
    • Rob Swindell's avatar
      Add support for NTVDMx64 · b3122fc5
      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).
      b3122fc5
    • Rob Swindell's avatar
      A batch file to build SBBSEXEC.DLL (may or may not require NTDDK?) · 5a843aa3
      Rob Swindell authored
      Using options (e.g. RINGBUF_MUTEX) from old sbbsexec.dsp
      5a843aa3
    • Rob Swindell's avatar
      6bb2eb9e
    • Rob Swindell's avatar
      Fix sem_wait() call in vdd_read() · d7bee91a
      Rob Swindell authored
      Introduced in Revision 1.16 (CVS)
      Wed May 10 08:52:11 2006 UTC (15 years, 6 months ago) by rswindell
      
      This was supposed to wait (block) until there was a new received
      byte (the ringbuf semaphore was signaled), but we were passing the sem_t
      value rather than the pointer to the sem_t. Since sem_t (on Windows)
      is a HANDLE (which is a void*), there was no compiler warning or
      error. Type-safety in C sucks.
      So, this just never worked (I'm assuming the call would just fail).
      
      I discovered this bug while working on NTVDMx64 support and in that
      case, this call would block/wait forever. Simple one character fix.
      d7bee91a
  2. Nov 28, 2021
  3. Nov 26, 2021
  4. Nov 24, 2021
    • Rob Swindell's avatar
      Implement FOSSIL function 0Dh (Keyboard read without wait) · 76872671
      Rob Swindell authored
      As a work around for TradeWars 2 (v11.14 and v11.20) FOSSIL support:
      This door game would never call the FOSSIL "get received character"
      function (02h) . But I did notice that it was calling the "Keyboard
      read" functions. I never implemented the "Keyboard read" functions
      (figured the door game could read the keyboard itself if it wanted to),
      but appparently TW2 won't ever read the COM port (using function 02h)
      unless the Keyboard read function returns AX=0xFFFF (no keyboard data
      available). So now, I just do that and TW2 works (with FOSSIL I/O).
      
      Incremented the revision to 26.
      Logging the Git branch/hash and other helpful FOSSIL-debug stuff now.
      76872671
    • Rob Swindell's avatar
      Continuation of previous commit (support for UART-only doors on Windows) · 9c4ad56c
      Rob Swindell authored
      Needed the actually mapping of XTRN_UART -> EX_UART mode flag here.
      9c4ad56c
  5. Nov 23, 2021
    • Rob Swindell's avatar
      Allow FOSSIL mode of the Win32 virtual UART/FOSSIL driver to be disabled · 2bbd3bca
      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.
      2bbd3bca
    • Rob Swindell's avatar
      38e6ed3f
    • Rob Swindell's avatar
      MSVC 1.5c defines _MSDOS, not __MSDOS__ · aeb6a1e7
      Rob Swindell authored
      This change needed to build dosxtrn.exe (again).
      aeb6a1e7
  6. Nov 19, 2021
  7. Nov 18, 2021
  8. Nov 17, 2021
    • Rob Swindell's avatar
      Include twit-listed sender name in quotes in log message · 76f0ae79
      Rob Swindell authored
      Since mail server log messages have their white-space condensed, it was not obvious why some sender's name would match a twitlist.cfg line that filters names beginning with a space: "\ *" because the initial space of the sender's name was condensed/combined with space before it in the log message.
      76f0ae79
  9. Nov 16, 2021
    • Rob Swindell's avatar
      Initialize time zone variable (zone) · bf82b184
      Rob Swindell authored
      As found and reported by Talisam author, apam (HAPPYLND).
      
      sscanf() won't initialize the buffer of the argument passed if the format string is not matched, so when there was no hexadecimal/SMB timezone value, the timezone specified in the ISO date/time string (if any) would be overwritten with 0, converted from the uninitialized 'zone' variable (unlikely to be valid hex-ASCII chars). Thanks apam!
      bf82b184
    • Rob Swindell's avatar
      Add support for "name@address" syntax in twitlist.cfg · d3c5cccd
      Rob Swindell authored
      where "address" is a QWKnet ID or path or a FidoNet originating address. Wildcards can be used (e.g. "*@VERT").
      
      For Trikester.
      d3c5cccd
    • Rob Swindell's avatar
      Add command-line specifier for user's real name (auto-quoted) · 31b5229d
      Rob Swindell authored
      %+ will now expand to the current user's real name, automatically enclosed in quotes if it contains any spaces.
      31b5229d
  10. Nov 12, 2021
    • Rob Swindell's avatar
      Generate a MSGID kludge for netmail messages created by SBBSecho · 96712a1c
      Rob Swindell authored
      The "serialno" field is a bad/naive one (a time_t value), but this is really just an experiment for Ragnarok to see if this fixes issue #306 (with hotdoged receiving AreaFix responses/notices).
      96712a1c
    • Rob Swindell's avatar
      Fix sbbsfile.nam contents: contained file's description instead of name · 530a9c54
      Rob Swindell authored
      Found during review of previous commit.
      Introduced as part of the new file base branch merge (commit 925e3b0a).
      530a9c54
    • Rob Swindell's avatar
      Don't write uploaded filename and description to env variables · a869fc69
      Rob Swindell authored
      Environment variables are shared among all threads of a process (e.g. all nodes of a instance of sbbs), so this scheme of passing the uploaded filename and description to an external file tester (upload processor) via environment variables has always been fraught with the possibility of failure or flakiness in Synchronet v3. Since I very much doubt that any upload processor is actually using this scheme, just remove it. Upload processors can and should)use the sbbsfile.nam and sbbsfile.des text files created in the node directory instead.
      a869fc69
    • Rob Swindell's avatar
      Log an error and exit immediately when a local linked-node is configured · b0df2d4e
      Rob Swindell authored
      When a linked-node (in echocfg->Linked Nodes) contains one of the local system's FTN addresses, display/log an error and exit immediately, e.g.:
      Configuration ERROR: Linked node #20 is your own address: 1:103/705
      
      I'd perform this check in EchoCfg, but:
      1. echocfg doesn't read the BBS's configuration files (where the local FTN addresses are configured), and
      2. some sysops just directly edit their sbbsecho.ini file
      b0df2d4e
  11. Nov 08, 2021
  12. Oct 31, 2021
  13. Oct 30, 2021
    • Rob Swindell's avatar
      Allow the client-name, server-name, and term-type to be passed as arguments · 38299663
      Rob Swindell authored
      Optional, for easier use with game servers that take one of the 3 rlogin
      negotation parameters as the name/code of the door to execute. A telgate
      mode flag value argument must be provided (use 0 for default behavior)
      if you want to provide any of the other arguments to override the defaults
      (the user's alias, real name, and current detected terminal type).
      38299663
  14. Oct 23, 2021
    • Rob Swindell's avatar
      Fix segfault after batch-upload when no "uploads" dir specified · 1f93fd53
      Rob Swindell authored
      When there's no "uploads" directory configured by the sysop, cfg.upload_dir will be set to INVALID_DIR, which cannot be used as an index into cfg.dir[] to determine if the time used for uploading the files should be "given back" to the user.
      
      In v3.18, we used the first file in the upload queue, if there was one, else fell back to the "uploads" dir (which had to have been defined if there were no files in the queue). So this illegal array indexing was a regression in v3.19.
      
      Reported by Zoltán Gábor on Facebook
      1f93fd53
Loading