1. 28 Apr, 2022 6 commits
  2. 26 Apr, 2022 2 commits
  3. 25 Apr, 2022 6 commits
  4. 22 Apr, 2022 4 commits
    • Rob Swindell's avatar
      Fix segfault when printing Bad-echo name after failing to load cfg · 2962e4a5
      Rob Swindell authored
      This is a weird one: sbbsecho ran right as I was saving msgs.cnf via
      SCFG and it seems like it loaded 0-byte msgs.cnf into memory and this
      segfault was a result of trying to print sub[INVALID_SUB]->code.
      
      The use of [f]nopen() with proper share perms should have prevented this
      (truncated msgs.cnf read) from happening, so there's something else afoot here.
      2962e4a5
    • Rob Swindell's avatar
      Use smb_open_sub() for the "mail" base too · dc4b1bd9
      Rob Swindell authored
      This restores the ability for JS MsgBase() to be used to create the
      initial mail message base properly, if needed.
      
      This means that the 'subnum' should now be equal to scfg.total_subs
      when referencing an arbitrary SMB via path (not in the configuration).
      dc4b1bd9
    • Rob Swindell's avatar
      Restore ability for MsgBase.open() to open an arbitrary SMB msgbase · 1e62752a
      Rob Swindell authored
      Before commit 5da26eca, you could pass Msgbase() the path to an SMB
      on the disk and open() it, no configuration needed. As of 2 years
      ago, I broke that, and passing a path to an SMB would open the "mail" base
      instead - most unexpected. This is a feature of smb_open_sub() which we
      switched to using (from smb_open()), so go back to using smb_open() when
      an unrecognized code is pass to the constructor.
      
      This has the negative consequence that the "mail" base can't be created
      via JS. Probably should fix that.
      1e62752a
    • Rob Swindell's avatar
      Limit door.sys numeric values to 32767 · 6b36b379
      Rob Swindell authored
      The DoorFrame door library will about with "Overflow Error" if it reads a door.sys file with lines 16 (calls), 42 (minute credits), or 52 (posted messages) with a value > 32767, the maximum positive value of a signed 16-bit integer. So cap these values in the door.sys file at that maximum. This does potentially break/limit doors that give minutes using the door.sys drop file, so use that "modify user data" option in SCFG with care.
      
      Electrosys initially reported this problem with the Lemonade! door game which was barfing on a line 42 value of 449632.
      6b36b379
  5. 19 Apr, 2022 2 commits
  6. 18 Apr, 2022 2 commits
  7. 16 Apr, 2022 3 commits
  8. 15 Apr, 2022 3 commits
  9. 14 Apr, 2022 4 commits
  10. 13 Apr, 2022 1 commit
    • Rob Swindell's avatar
      Fix packet filename in "Gruned message" log entry on Win32 · 414d34ec
      Rob Swindell authored
      e.g. "Grunged message (type 2) from 4:80/1 at offset 58 in packet: (null)"
      
      off_t is 64-bit, but long in 32-bit (on Win32), so needs a typecast here in
      lprintf() call (otherwise, the upper 4 bytes of the offset are interpreted
      as the string address for the corresponding '%s' argument, the filename).
      414d34ec
  11. 12 Apr, 2022 2 commits
  12. 11 Apr, 2022 1 commit
    • Rob Swindell's avatar
      Install OperationCallback for all executed JS scripts · 9d752c75
      Rob Swindell authored
      JS doors with the "Use Shell or New Context" option enabled in SCFG and JS
      modules installed a global hot key handlers would not automatically terminate
      when the user disconnected (and js.auto_terminate was true, the default).
      I'm not sure why the operation callback was only installed when scope==NULL
      but always installing it fixes the issue with some global hot key modules
      and JS doors becoming "zombies" when a user disconnects while running them.
      9d752c75
  13. 09 Apr, 2022 4 commits
    • Rob Swindell's avatar
      Check for user disconnection in CheckTerminate() · dee6266e
      Rob Swindell authored
      A user disconnecting while running tw2 would just result in an infinite loop
      checking node status and waiting for the user's allowed time to run out (which
      may never happen) or for the server to be locally terminated.
      
      This has been happening for years on Vertrauen. Finally now I see why.
      dee6266e
    • Rob Swindell's avatar
      Send error output to stderr, non-error output to stdout · c84808d0
      Rob Swindell authored
      Fixes issue #390
      c84808d0
    • Rob Swindell's avatar
      Fix long-standing issue with external program name display · 82b3374f
      Rob Swindell authored
      Especially for Guest (G-Exempt) accounts which support multiple
      concurrent logons - the 'curxtrn' value stored in the user's record
      may not match the external program that was actually last executed
      on the node in question, so use the .aux property value (from
      node.dab) as is done in the C++ code (e.g. printnodedat()). This insures
      that the node_status() output here matches the C/C++ code output
      (e.g. when logging on the terminal server).
      
      Still support the 'code-based' external program name look-up since
      that usage is relied upon by other modules, but when a number is
      passed, use the number to find the right external progarm name
      (and we need to subtract one, since aux is a 1-based number).
      
      I've looked at this problem a couple of times before and not sure why
      I didn't see the solution. <shrug>
      82b3374f
    • Deucе's avatar