Skip to content
Snippets Groups Projects
  1. Dec 18, 2023
  2. Dec 17, 2023
  3. Dec 16, 2023
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Fix typo (missing quote) · 7d213a0a
      Rob Swindell authored
      7d213a0a
    • Rob Swindell's avatar
      Fix typo in previous commit · 2e6e3757
      Rob Swindell authored
      2e6e3757
    • Rob Swindell's avatar
      New findstr functions that can search for (up to) two strings in one go · dd37a468
      Rob Swindell authored
      Many searches are done (e.g. in the mail server, QWK import) for either of 2
      strings in single file or list, so let's optimize that to a single iteration
      through the file/list. This should reduce some redundant file I/O.
      
      I do find this API a little confusing with the filename or list at the end
      of the argument list, but kept it consistent with the existing single string
      findstr functions (which are now just wrappers for the new 2-string flavors).
      
      I noticed during this update that findstr() did not share the same behavior
      as findstr_in_list() (feature added in commit f08f2137) whereby if all the
      patterns were negative searches (beginning with '!'), then *all* the
      negative matches would have to be successful (not just the first) for the
      function to return true. So now findstr() behaves like findstr_in_list()
      in this regard.
      
      I also added some optimizations to findstr_in_string().
      dd37a468
  4. Dec 15, 2023
  5. Dec 14, 2023
    • Rob Swindell's avatar
      Add command-line specifier %- for user's chat handle/call-sign · 5f41325a
      Rob Swindell authored
      That's percent minus, to go with percent plus (user's real name).
      
      The string is auto-quoted if it contains a space.
      
      For Keyop's use with rlogin.js, maybe.
      5f41325a
    • Rob Swindell's avatar
      Don't log "symbol 'x' is not defined by script 'y'" error when terminating · 78b2682e
      Rob Swindell authored
      When a JS environment (e.g. server, jsexec) is terminated, it's possible
      that a require() script was being evaluated. But since termination would
      abort that evaluation, it's not unexpected if a symbol ends up not being
      defined before the require() script was terminated, so don't report an
      error in that case.
      
      Fix issue #681
      78b2682e
    • Rob Swindell's avatar
      SMTP mail server wasn't RFC 4954 compliant for "AUTH PLAIN" logins · f45cfd52
      Rob Swindell authored
      The base64-encoded credentials can either be supplied with the AUTH PLAIN
      command or in response to a 334 server-challenge. We only supported the
      former form and logged a warning ("Missing AUTH PLAIN argument") when we
      received the latter. No warning is logged now and the appropriate
      server-challege is sent and the response accepted and base64-decoded and
      parsed as before.
      f45cfd52
    • Rob Swindell's avatar
      Fix extra decrement of active_clients (added in previous commit) · 7a8b8d4e
      Rob Swindell authored
      And fix some use of CRYPT_UNUSED instead of cryptlib session ID.
      7a8b8d4e
    • Rob Swindell's avatar
      Don't export BN_ (cryptlib BigNum functions) from libsbbs.so · 926062ee
      Rob Swindell authored
      Attempt to fix issue #680
      
      This probably will need some llvm or other exceptional handling for
      non GNU build systems.
      926062ee
    • Rob Swindell's avatar
      Change the MQTT broker-connect ... successful log message to DEBUG-level · 0a49e951
      Rob Swindell authored
      Since we're logging at INFO level when the connect is attempted, we can assume
      success when we start logging additional init messages.
      0a49e951
    • 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
Loading