Skip to content
Snippets Groups Projects
  1. May 05, 2020
  2. 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
  3. Apr 28, 2020
  4. Apr 24, 2020
  5. Apr 12, 2020
  6. 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
  7. Mar 31, 2020
  8. 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
  9. Mar 15, 2020
  10. Oct 05, 2019
  11. Sep 24, 2019
  12. Sep 09, 2019
  13. Sep 04, 2019
  14. Sep 01, 2019
  15. Aug 31, 2019
    • rswindell's avatar
      Update the C getnodedat/putnodedat API to not require that the node file · 4c8482c9
      rswindell authored
      (ctrl/node.dab) is constantly closed and re-opened for every non-locking read.
      This is really slow across network file systems and unnecessary, so use a
      similar optimization as the C++ sbbs_t class where the file can (and normally
      is) left open across multiple consecutive reads.
      Create/use opennodedat() function.
      Uses the new CLOSE_OPEN_FILE() macro from xpdev/filewrap.h.
      4c8482c9
  16. Aug 09, 2019
  17. Aug 03, 2019
  18. Aug 02, 2019
    • rswindell's avatar
      Resolve GCC warnings: · 2c84e156
      rswindell authored
      pointer type mismatch in conditional expression
      format '%s' expects argument of type 'char *', but argument 5 has type 'void *'
      2c84e156
    • rswindell's avatar
      Use the RFC822* header fields, only when the actual header fields are · 1da741bb
      rswindell authored
      MIME-encoded.
      If any RFC822* header field is a MIME-encoded UTF-8 string, then set the
      (new) auxattr MSG_HFIELDS_UTF8 flag. This will be used (soon, hopefully) to
      display UTF-8 encoded header fields to users. There's a gotchas here:
      - MIME-encoded header fields with other non-ASCII/8-bit charsets (e.g. CP437,
        ISO-8859) are still stored "as decoded", though the MSG_HFIELDS_UTF8 flag
        may be set *later* (which would be weird), resulting in a mixture of valid
        and invalid UTF-8 header fields. One solution would be to UTF-8-transcode all
        the non-UTF-8 header fields if *any* of them are UTF-8, but we wouldn't
        know which charset to translate *from*. Assuming CP437 isn't going to be
        correct 100% of the time - so punt for now and deal with it at display
        time. e.g. if the MSG_HFIELD_UTF8 auxattr flag is set, but an hfield contains
        invalid UTF-8 data, don't display as UTF-8 (e.g. treat as CP437). We don't
        have translations for other charsets (e.g. ISO-8859) setup yet anyway.
      1da741bb
  19. Jul 25, 2019
  20. Jul 08, 2019
    • rswindell's avatar
      Moved cp437_unicode_tbl and unicode_is_zerowidth() to (new file) unicode.c. · 1340f563
      rswindell authored
      New function (derived from sbbs_t::utf8_to_cp437()): unicode_to_cp437()
      New utf8 functions: utf8_replace_chars(), utf8_str_is_valid().
      utf8_getc() enhancement: val arg may be NULL (for length/validation uses).
      
      Convert quoted UTF-8 message text to CP437 when terminal is not UTF8.
      
      Set Fido CHRS: UTF-8 header field when posted message is UTF-8.
      1340f563
  21. Jul 06, 2019
  22. Jun 28, 2019
  23. Jun 22, 2019
    • rswindell's avatar
      Fix warnings from GCC. · 8db2caa4
      rswindell authored
      8db2caa4
    • rswindell's avatar
      MIME-encoded headers (header field values with RFC 2047 "encoded-words") are · d96bb5d0
      rswindell authored
      getting kind of crazy common now and being employed even when totally
      unnecessary (e.g. encoding strings that contain just plain ASCII):
      - normalize message header fields, when possible
      - normalize UTF-8 encoded characters, when possible (e.g. special punctuation
        chars)
      
      This allows text filters (e.g. subject.can, name.can) to work on MIME-encoded
      header fields and notifications about received e-mails are legible to humans.
      
      Encoded-words that contain actual non-ASCII/CP437 chars (e.g. foreign symbols,
      emojis) are left as encoded-words to be dealt with by whatever displays the
      message header.
      
      Special handling of folded normalized field values was necessary because
      "White space between adjacent 'encoded-word's is not displayed." (per RFC 2047)
      d96bb5d0
  24. Jun 20, 2019
  25. May 24, 2019
    • rswindell's avatar
      Don't read the spamblock.cfg unnecessarily: · 2f2c9ac9
      rswindell authored
      We don't store (findable) hostnames in the file, so don't search for them.
      Don't search file if the host is listed in the spamblock_exempt.cfg file.
      If you have a really large spamblock.cfg file, this could result in the
      unnecessary reading of potential many megabytes of data for each inbound
      SMTP connection. We might want to read this file even less frequently and
      store the list in a searchable str_list_t or something.
      2f2c9ac9
  26. May 11, 2019
    • rswindell's avatar
      Fix most likely cause of new crashes seen in mailsrvr, calls to · 4ca5fc1c
      rswindell authored
      smb_freemsgmem():
      bounce() is using a strange method of copying a message header in memory
      (not using smb_copymsgmem) and when it frees the message, ends up with a
      double-free of the 2 new smbmsg_t members (not header fields): text_subtype
      and text_charset.
      4ca5fc1c
  27. May 03, 2019
  28. May 01, 2019
  29. Apr 29, 2019
  30. Apr 23, 2019
    • rswindell's avatar
      Clean up the hostname look-up stuff: · 60f996f9
      rswindell authored
      - getnameinfo() was being called with NI_NUMERICHOST in the mail server and
        web server (but nowhere else)
      - use a singly-defined macro (STR_NO_HOSTNAME) for the "<no name>" string
        rather than copying it about
      - the webserver apparently assumes that session->host_name will always have
        *some* unique value (e.g. the IP address when no hostname is available) - so
        account for that special need <grumble>
      60f996f9
  31. Apr 11, 2019
Loading