Skip to content
Snippets Groups Projects
  1. Dec 14, 2023
    • Rob Swindell's avatar
      Remove obsolete/proprietary status IPC mechanism made defunct by MQTT support · e8ea2dfc
      Rob Swindell authored
      These can always be revived from the attic if there's some need or purpose.
      e8ea2dfc
    • Rob Swindell's avatar
      Better resource (e.g. client thread) management · 733c39b7
      Rob Swindell authored
      My mail server was suddenly and inexplicably creating thousands of SMTPS
      client threads, each with a unique remote IP address, and each eventually
      failing with the rather obscure log message (from cryptlib):
       dbg 'Cannot read item from object' (-41) setting session active
      
      Eventually (after not long, really), the server would run out of resources
      and fail in weird and wonderful ways (can't malloc, can't create JS runtime
      or context, etc.). The max_clients limit (100, as I have it set) wasn't being
      effectively-imposed on SMTPS connections.
      
      The root-cause: the active_clients (counter) wasn't incremented until *after*
      the cryptlib/TLS setup for SMTPS connections and SMTPS/TLS connections can
      take a long time to fail, resulting in a vulnerability to an effective denial
      of service attack.
      
      Raise the minimum severity of all cryptlib/TLS log messages from Debug to
      Info.
      
      Create wrappers for smtp_thread() [now smtp_client_thread()] and pop3_thread
      [now pop3_client_thread()] that handle basic resource management (thread
      counters, active client counters, the client socket).
      733c39b7
    • Rob Swindell's avatar
      Log the number of bytes that were attempted to be allocated · c4b73c37
      Rob Swindell authored
      ... in malloc error reporting messages
      c4b73c37
    • Rob Swindell's avatar
      Fix crash after failing to connect to MQTT broker · c66f0887
      Rob Swindell authored
      We need to call mqtt_shutdown() instead of mqtt_close() to have the mosquitto
      (loop) thread stopped.
      
      Upon connect failure, call the mqtt_shutdown() *before* calling lprintf->lputs,
      which would eventually try to MQTT-publish the log message.
      
      The call to mqtt_connect() can block for a while, so raise the log severity
      of the "connecting to broker" message from DEBUG to INFO. Otherwise, a bad
      MQTT broker address or port would make the servers just appear to hang during
      initialization, for no reason.
      c66f0887
    • Rob Swindell's avatar
    • Deucе's avatar
      Add workaround for cryptlib bug. · 3cde1ee5
      Deucе authored
      CryptCert.export_cert(CryptCert.FORMAT.TEXT_CERTIFICATE) should
      now work properly instead of always returning an error.
      3cde1ee5
  2. Dec 12, 2023
  3. Dec 11, 2023
  4. Dec 10, 2023
  5. Dec 09, 2023
    • Deucе's avatar
      Fix literal 0xe0 (lower-case greek alpha in unicode/ch437) · 5f1c39f0
      Deucе authored
      With 0xE0 being used for ciolib "super-extended scancodes", a literal
      0xe0 can't pass through the input path.  This is an issue in CP866 (р)
      and KOI8-U (Ю) as well as CP437 α.
      
      Should fix SyncTERM SF bug 123.
      5f1c39f0
    • Rob Swindell's avatar
      Move the startup directory checking to the "native" block of *nix build · 7866f106
      Rob Swindell authored
      of sbbs_t::external()
      
      The startup directory for DOS doors might not be a valid Unix (case-sensitive)
      path, so let's just do that check in the native block here.
      
      Also, removed a bunch of redundant startup_dir ==/!= NULL checks. It can't be
      NULL here.
      7866f106
    • Rob Swindell's avatar
      Only create/use a single run-time for use in JSexec, even when re-runnning · affce7f6
      Rob Swindell authored
      The '-l' (loop) option would cause the JS runtime to be destroyed and
      recreated for each new execution of the script, which resulted in memory
      leaks in Windows builds (see issue #672 for details). So instead, just
      use a single JS runtime here when the -l option is used to prevent that
      from happening, though truth be told, that's likely not a normal/common
      occurrence. Other apparent JS-related memory leaks (e.g. in the web
      server) appear to be of a common concern.
      
      Likely upgrading to a modern libmozjs would also fix this issue, but
      we're far short of being able to do that right now.
      affce7f6
  6. Dec 08, 2023
  7. Dec 05, 2023
  8. Dec 03, 2023
  9. Dec 02, 2023
  10. Nov 26, 2023
  11. Nov 24, 2023
  12. Nov 23, 2023
  13. Nov 22, 2023
Loading