Skip to content
Snippets Groups Projects
  1. Apr 14, 2024
  2. Apr 11, 2024
    • Rob Swindell's avatar
      When server_binary option is set, request remote BINARY_TX option · af28c04c
      Rob Swindell authored
      As reported by Fzf (FQBBS):
      
      It addresses the local configuration but unfortunately it still doesn't set
      remote options.  The remote is usually going to be in binary mode but SVDM has
      the remote option set to ASCII by default.  A CR from the remote then gets held
      up until a second byte is sent.
      
      Also suggested by Fzf, when server_binary mode is not configured, then advertise
      and request binary mode is/be disabled, explicitly.
      af28c04c
  3. Apr 10, 2024
    • Rob Swindell's avatar
      The kludge of reverting the Pause prompt string is no longer needed · 252b1dc3
      Rob Swindell authored
      ... when using user_settings.js (i.e. to switch command shells), the user's
      text.<lang>.ini is re-loaded, thus reverting any changes (e.g. made when
      loading another shell, like simple.bin).
      
      Also, this was causing the translated Pause strings (from text.<lang>.ini)
      to be lost.
      252b1dc3
    • Rob Swindell's avatar
      Resolve CID 492287 - we don't care about the fexistcase() return value here · 76b5c7f4
      Rob Swindell authored
      We're just using it to "fix" the case, if the file indeed exists.
      76b5c7f4
    • Rob Swindell's avatar
      Create/use sbbs_t::flush_output(timeout) · 424dfe10
      Rob Swindell authored
      If client socket is connected, wait up to the specified timeout period (in ms)
      for the output buffer to be emptied.
      
      This is much preferred over blindly calling mswait() after sending some data
      (e.g. a file) and possibly waiting much longer than necessary.
      424dfe10
    • Rob Swindell's avatar
      Reduce the Terminal Server thread outcom timeout from 80 seconds to 800 ms · 221507a8
      Rob Swindell authored
      Since the Terminal Server is a single thread, let's not block for long
      periods of time trying to send bytes to a client (e.g. send the badip.msg
      file contents to a client with a blocked IP address), effectively DoSing the
      terminal server.
      
      This should address the problem reported via IRC:
      <theviper4> │Apr  9 15:38:11 viper-bbs synchronet: term Terminal Server timeout(outcom) 0000 0000
      <theviper4> │Apr  9 15:38:35 viper-bbs synchronet: term Terminal Server !ERROR 110 sending on socket 39
      <theviper4> │Apr  9 15:38:35 viper-bbs synchronet: term Terminal Server !ERROR 32 sending on socket 39
      <theviper4> │Apr  9 15:38:35 viper-bbs synchronet: term Terminal Server !ERROR 32 sending on socket 39
      <theviper4> │Apr  9 15:38:36 viper-bbs synchronet: term 0039 Telnet !CLIENT BLOCKED in ip.can: 117.95.153.33
      
      Also, make the outcom timeout error message more helpful (e.g. include the
      sock descriptor of the client) and don't use the old rioctl() function
      here any more.
      221507a8
  4. Apr 09, 2024
  5. Apr 08, 2024
  6. Apr 07, 2024
  7. Apr 06, 2024
  8. Apr 05, 2024
  9. Apr 04, 2024
  10. Apr 03, 2024
  11. Apr 01, 2024
  12. Mar 31, 2024
  13. Mar 30, 2024
    • Rob Swindell's avatar
      Save and restore the js.exec_path, exec_dir, and exec_file properties · 9013f866
      Rob Swindell authored
      When invoking a nested JS script, these properties of the "js" object would
      be overwritten and not restored, as discovered/reported by Nightfox when his
      trivial game script would indirectly execute yesnobar.js, his subsequent use
      of js.exec_dir would point to the wrong location (the "exec" directory, parent
      of yesnobar.js, and not the direcctory where his game script was located).
      The exec_path and exec_file properties had the same problem as demonstrated
      by a simple test.js placed in (and executed from) a directory other than the
      "exec" dir:
      	function f() {
              print("js.exec_path = " + js.exec_path);
              print("js.exec_dir = " + js.exec_dir);
              print("Js.exec_file = " + js.exec_file);
      	}
      	f();
      	console.yesno("test");
      	f();
      
      This would only trigger the problem when executed from the BBS and whebn the
      YesNoQuestion text.dat string invokes the "yesnobar" module via EXEC @-code and
      yesnobar.js exists (in exec or mods dir), superceding yesnobar.bin which does
      not trigger this issue (not a JavaScript mod).
      9013f866
    • Rob Swindell's avatar
      ceb315be
    • Rob Swindell's avatar
      Merge branch 'gttrivia_js_exec_dir_change_workaround' into 'master' · 679fe5cf
      Rob Swindell authored
      Good Time Trivia: Make a copy of js.exec_dir on startup and use the copy, since js.exec_dir could change indirectly (i.e., console.yesno() running yesnobar.js in sbbs/exec)
      
      See merge request !430
      679fe5cf
    • Eric Oulashin's avatar
      Good Time Trivia: Make a copy of js.exec_dir on startup and use the copy,... · 91babf1d
      Eric Oulashin authored and Rob Swindell's avatar Rob Swindell committed
      Good Time Trivia: Make a copy of js.exec_dir on startup and use the copy, since js.exec_dir could change indirectly (i.e., console.yesno() running yesnobar.js in sbbs/exec)
      91babf1d
    • Deucе's avatar
      Unconditionally call sftp_end() when input thread exits. · 0a397616
      Deucе authored
      Hopefully fixes issue where certificate file is left open and so
      can't be deleted.
      0a397616
  14. Mar 29, 2024
Loading