Skip to content
Snippets Groups Projects
  1. Apr 04, 2021
    • Rob Swindell's avatar
      A poll() failure with EINTR does not mean a socket is closed. · 925e3b0a
      Rob Swindell authored
      This won't impact Synchronet as it has a separate signal handling
      thread, but we still need to behave properly for processes that
      don't.  I'm also saying that ENOMEM does not indicate a disconnection,
      though it may be better to pretend it was disconnected...
      925e3b0a
  2. Feb 15, 2021
  3. Sep 12, 2020
    • Rob Swindell's avatar
      Don't allow invalid netmail-forwarding addresses · 3eb83ec5
      Rob Swindell authored
      Don't prompt a new user to forward email to their netmail address if they
      provided an invalid netmail address (not supported by the system).
      
      If a sysop has an invalid netmail address setup for forwarding, don't try to
      forward email (or new user feedback) to that address.
      
      Re-ordered the new user terminal questions a little bit (ask for the backspace
      key first, to get earlier manual PETSCII detection). I'm not sure why I was
      enabling AUTOTERM along with PETSCII before. Removed that as PETSCII cannot
      be auto-detected.
      3eb83ec5
  4. 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
  5. Aug 16, 2020
  6. Apr 15, 2020
  7. Aug 02, 2019
  8. Aug 01, 2019
  9. Jul 08, 2019
  10. Apr 12, 2019
    • rswindell's avatar
      Define and use a new external message editor option: SAVECOLUMNS · ee00b5f8
      rswindell authored
      (default: off) - when enabled, the current terminal width (columns) will be
      saved in the msg header.
      When using the internal msg editor or raw intput mode, the columns are always
      saved in the message editor. fseditor.js should have this option enabled.
      ee00b5f8
  11. Feb 20, 2019
    • rswindell's avatar
      Reversed course on the WM_QUOTE mode handling in sbbs_t::postmsg() · 57424543
      rswindell authored
      (JS bbs.post_msg()): If the WM_QUOTE mode flag is *not* set, then it will auto-
      create the quote file (quotes.txt) and add the WM_QUOTE mode bit before calling
      sbbs_t::writemsg(). So if existing JS scripts call bbs.post_msg(..., WM_QUOTE)
      with a custom-created quote file (e.g. with msg tails), that'll still work as
      before (e.g. DDMsgReader.js).
      
      bbs.email() and bbs.netmail() now support an optional reply_header_object
      argument which works like bbs.post_msg(). These methods (and the underlying
      C++ methods: sbbs_t::email(), netmail(), inetmail(), all auto-create the
      quote file now, when the WM_QUOTE mode flag is *not* set.
      
      The auto-created quotes.txt now includes the plain-text version of MIME-encoded
      messages.
      
      the bbs.post_msg(), email(), and netmail() methods now all support reply
      header objects that came directly from bbs.get_msg_header() *or* copies of
      such header objects (but the auto-quoting feature won't work when supplied
      this type of header object). So if passed a header object returned from
      bbs.get_msg_header(), we can now use the message base (for auto-quoting) and
      the underlying msg storage directly (no JS parsing necessary). This is what
      the new js_GetMsgHeaderObjectPrivates() function is used for.
      
      js_ParseMsgHeaderObject() (and the underlying parse_header_object() function)
      now supports either an actual internally-generated msg header object (e.g.
      returned from bbs.get_msg_header()) or one that is a copy or hand-constructed.
      
      quotemsg() no longer tries to get a copy of the msg index/header. It shouldn't
      have to since we can now get to underlying msg storage in the js_msgbase.c
      via js_GetMsgHeaderObjectPrivates().
      
      quotemsg() now reads only the plain-text portion of MIME-encoded messages.
      
      As part of this effort, I modernized the method prototypes using default
      argument values (e.g. WM_NONE for wm_mode arguments) and removed some
      extraneous WM_EMAIL and WM_NETMAIL specifications (these wm_mode flags are
      automatically added by the sbbs_t::email() and *netmail() functions).
      
      savemsg() now *does* support reply-IDs/thread-linkage via the additional
      'remsg' argument (when non-NULL).
      
      Replaced some use of nulstr with NULL.
      
      Replaced more boilerplate SMB open code with calls to smb_open_sub().
      57424543
  12. Feb 17, 2019
    • rswindell's avatar
      Eliminted unused variable (pid). · 0d77cdbf
      rswindell authored
      0d77cdbf
    • rswindell's avatar
      QWK-reply-posted email/netmail messages did not contain a Message-ID. Really? · 7446c395
      rswindell authored
      So I created a single add_msg_ids() function (mostly migrated from postmsg.cpp)
      to make this incredibly easy so any/everywhere that adds a message to a message
      base should be able to call it. This function also creates reply-IDs (when
      relevant) and program ID (Fido-PID) header fields:
      - FIDOPID (always)
      - FIDOMSGID (if an echomail post)
      - FIDOREPLYID (if an echomail reply-post)
      - RFC822MSGID (always)
      - RFC822REPLYID (if a reply)
      7446c395
  13. Oct 30, 2018
  14. Aug 03, 2018
  15. Jun 10, 2018
  16. Apr 17, 2018
  17. Feb 20, 2018
  18. Nov 24, 2017
  19. Dec 02, 2016
  20. Dec 06, 2015
  21. Nov 26, 2015
    • rswindell's avatar
      Don't add .sig file to messages posted or emailed anonymously (duh!). · f78ff5f9
      rswindell authored
      writemsg() now handles the anonymous name in the drop files (using WM_ANON
      for the first time?).
      A little mixed-case NETMAIL.MSG paranoia (for case-sensitive file systems).
      More use of SAFEPRINTF().
      More use of removecase().
      More attribute flags represented (with a single character) in the 'A' column
      of mail and sub-board message listings.
      f78ff5f9
  22. Nov 25, 2015
    • rswindell's avatar
      Bug-fix: pass the 'from' name to writemsg() and editor_inf() so that the drop · 6b39f6f3
      rswindell authored
      files and editors have the correct sender name in all situations (not just
      when posting on "real name only" sub-boards).
      "ANONYMOUS" postings work too, but mainly Internet & FidoNet Netmail were fixed.
      Use removecase() for NETMAIL.MSG (in case there's a lowercase version).
      Use subj in place of title and to in place of dest in argument names.
      Some constification of argument types.
      6b39f6f3
  23. Sep 20, 2015
  24. Apr 28, 2015
    • rswindell's avatar
      Bug-fix: From the text.dat Yes/No/Quit/Password entry (YNQP), the 'Q' character · aa709e2a
      rswindell authored
      was never used. This was intended to be a method for internationalization,
      letting the sysop change which key is used as the uiniversal "quit" key.
      This commit replaces most of the uses of the hard-coded 'Q' for quit wtih the
      3rd charcter in the text.dat YNQP string. Some hard-coded menus still have the
      'Q' key hard-coded and will need to be addressed later. The text.h YN index
      macro was changed to YNQP and the JS text index variable name will change
      as well.
      aa709e2a
  25. Dec 19, 2012
  26. Jun 15, 2012
  27. Oct 19, 2011
  28. Aug 30, 2011
  29. Aug 25, 2011
  30. Jul 21, 2011
    • rswindell's avatar
      Enhancement: most question-type text.dat entries are now optional. · 77a2cda0
      rswindell authored
      That is, if any of the following text.dat entries are set to a blank/emtpy
      string (by editing ctrl/text.dat or via run-time script modification), the
      question will not be asked of the user allowing greater sysop-customization
      of hard-coded processes (e.g. new user application):
      ClearUploadQueueQ
      ClearDownloadQueueQ
      HangUpAfterXferQ
      ChatWithGuruInsteadQ
      ForwardMailQ
      DownloadBatchQ
      LogOffQ
      DeleteErrorLogQ
      ClearErrCounter
      DeleteGuruLogQ
      AutoTerminalQ
      AnsiTerminalQ
      ColorTerminalQ
      ExAsciiTerminalQ
      CallingFromNorthAmericaQ
      ReadYourMailNowQ
      NScanAllGrpsQ
      SScanAllGrpsQ
      NewPasswordQ
      ContinueQ
      EnterYourPhoneNumber
      UserInfoCorrectQ
      UseExternalEditorQ
      DownloadAttachedFileQ
      AddSubToNewScanQ (new)
      RemoveFromNewScanQ
      DisplaySubjectsOnlyQ
      Post
      SearchExtendedQ
      ViewSysInfoFileQ
      ViewLogonMsgQ
      WithLineNumbersQ
      77a2cda0
  31. Mar 06, 2010
  32. Oct 25, 2009
  33. Oct 18, 2009
    • rswindell's avatar
      Don't allow replies to messages with the "NoReply" attribute set. · 5aadeb4d
      rswindell authored
      Don't prompt for "delete mail from everyone" when there is only one e-mail
      waiting for the user.
      Use some existing text.dat entries (some old and some recently added) where
      identical static strings were still being used for no apparent reason.
      Added several text.dat entries for the QWK settings menu, node status, and
      some other single-line messages (replacing static strings).
      5aadeb4d
Loading