Skip to content
Snippets Groups Projects
  1. Nov 05, 2020
    • Rob Swindell's avatar
      Detect and reject forged "from" fields in submitted msg headers · 2aafd333
      Rob Swindell authored
      For non-authenticated SMTP clients, if the "From:" header field contains a "name" which appears to be an email address (i.e. it has an '@' in it), and that address does not match the *actual* address in the "From:" field, reject the mail with an error message about the forged/mismatched address.
      2aafd333
  2. Oct 26, 2020
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Use a mutex to serial message saving among multiple clients/threads · 3f3f6c26
      Rob Swindell authored
      This work-around shouldn't be necessary, but at least on my Linux/Samba setup, when GitLab sends out notification emails to subscribers and creates 4+ simultaneous SMTP connections and sends email messages, sometimes (often) it ends up with a lock-timeout on the mail base. The file locking should handle the contention fine, but somehow I end up in scenarios where savemsg() takes 30 seconds to complete (the configured SMB lock-timeout is 30 seconds, likely not a coincidence) - and this causes other clients to timeout trying to lock the base. Just use a sharead-mutex here instead as a work-around. The wait time is indefinite, might want to consider using a timed-wait instead.
      3f3f6c26
  3. Oct 25, 2020
  4. Oct 24, 2020
    • Rob Swindell's avatar
      More log message overhaul. POP3 CAPA cmd support in transaction state. · b4582ecf
      Rob Swindell authored
      Log the IP address first in most log messages.
      Condense white-space in log messages to a single space.
      Log the server IP address of incoming connections.
      (more) Intelligent email address enclosure in angle-brackets.
      Better duplicate address comparison (just for log message).
      Fix wrong order of lprintf arguments in !UNKNOWN USER log message (new bug).
      
      b4582ecf
  5. Oct 23, 2020
  6. Oct 22, 2020
  7. Oct 21, 2020
  8. Sep 13, 2020
  9. Sep 07, 2020
    • Rob Swindell's avatar
      Fix observed race-condition resulting in the HOSTNAME @-code being blank. · dee21ed6
      Rob Swindell authored
      Eliminate the hack in each server where it will over-write startup host_name
      (with the configured Internet email address), if it's blank. This hack was
      subject to a race condition where the parent app (e.g. sbbsctrl.exe) would
      clear or re-initialize the host_name after the sever threads had initialized.
      Instead, just use a function which will return either the startup->host_name
      or (fallback to) scfg.inet_addr.
      dee21ed6
  10. Aug 30, 2020
    • Rob Swindell's avatar
      Only over-ride (lower the severity) of the cryptlib log msg for a single case · 20393557
      Rob Swindell authored
      Add another "get cryptlib error string" (at least, that's what I assume GCES
      stands for) that allows the log level to be specified, rather than derived
      from Cryptlib thinks the log level should be. Do this rather than adding one
      (lowering the severity) of every cryptlib log message as I did in the previous
      commit to this file.
      20393557
  11. Aug 29, 2020
  12. Aug 16, 2020
  13. Aug 08, 2020
    • rswindell's avatar
      The problem: the sysop (me) is not notified of critical errors (e.g.... · 5899a303
      rswindell authored
      The problem: the sysop (me) is not notified of critical errors (e.g. synchro.net zone file problems) in a timely manner.
      Part of the solution: notify a configured user (e.g. user #1) via short-message/telegram and email/netmail logged-errors when messages of a configured severity (e.g. "Critical") are logged.
      The second part of the solution (coming next) will be allowing timed events to log a message of a configurable severity logged when the event fails (returns a non-zero error level to sbbs).
      
      I'm saving the error-notification-user-number and log-severity as part of the node.cnf file because:
      - that's where the validation user number is already set
      - I can conceive of a large system were certain node ranges (different instances of sbbs) might want different operators to be notified of logged-errors
      
      This also means I eliminated all the legacy com port/modem stuff from the end of the node.cnf file. None of that is used in sbbs v3.
      
      Also included in this commit are improvements around logging:
      - reduce the severity of UDP recvfrom failures in services
      - a more detailed log message when the mail server successfully delivers an email (via SMTP) - easier to answer the question: was that email you/they sent delivered successfully?
      5899a303
  14. Jul 20, 2020
  15. Jun 02, 2020
  16. Jun 01, 2020
  17. May 14, 2020
    • rswindell's avatar
      No longer dynamically allocate compiled access requirment (AR) strings for configuration items. · 110cc8ac
      rswindell authored
      SCFG for Win32 is linked against a load_cfg lib that builds withOUT SCFG defined, so these compiled AR elements were allocated and then many SCFG operations (e.g. copy/paste, create new) would copy the allocated ARs to another configuration and then be subjected to double-free upon exit/clean-up (resulting in exception or crash).
      Just get rid of this cruft and some other related RAM-byte-saving hold-overs from the MS-DOS days.
      110cc8ac
  18. May 05, 2020
  19. May 01, 2020
    • rswindell's avatar
      Set the KILLSENT network attribute for created Internet email messages when... · 53068c01
      rswindell authored
      Set the KILLSENT network attribute for created Internet email messages when enabled in SCFG->Networks->Internet (new option).
      Do the same for FidoNet NetMail messages routed via SMTP.
      Only auto-delete sent Internet mail messges when either the KILLSENT
      network attribute flag is set or there was no SENDEREXT (from_ext) on the sent message.
      53068c01
  20. Apr 28, 2020
  21. Apr 24, 2020
  22. Apr 12, 2020
  23. Apr 09, 2020
    • rswindell's avatar
      Fix bug introduced in previous commit of this file (8 months ago): · 8412ed06
      rswindell authored
      If the RECIPIENTTOLIST header fields exists and the RFC822 header field
      does not exist, that means the original RFC822 "To" field was not MIME-encoded,
      which is the majority of email. The routine that converted an smbmsg_t to an
      RFC822 header did not use this new field however (ignored it). Whoops. So
      multiple recipients were reflect in the To field and the original destination
      address(es) in the To field weren't passed on either. Thanks, Frank!
      8412ed06
  24. Mar 31, 2020
  25. Mar 19, 2020
    • rswindell's avatar
      Added usernum member to client_t which tracks if the client_t.user (name) · 570a9466
      rswindell authored
      is actually an authenticated local user (when usernum != 0).
      
      msg_client_hfields() no longer saves the client->user as the SMB SENDERUSERID
      hfield when the client hasn't been authenticated (as is the case with normal
      SMTP). The SENDUSERIDs were redundant and misleading for unauthenticated
      SMTP-received mail messages, so that's now fixed.
      570a9466
  26. Mar 15, 2020
  27. Oct 05, 2019
  28. Sep 24, 2019
Loading