1. 12 Apr, 2020 1 commit
  2. 25 Mar, 2020 1 commit
  3. 01 Mar, 2020 1 commit
    • rswindell's avatar
      Added support for a "list messages module" which is an optional module (Baja or · 56059107
      rswindell authored
      JS) which will be executed when a users uses the the (L)ist msgs command from
      the "Reading" sub or "Reading E-mail" prompt.
      The arguments passed to the module are: <sub-code> [which]  [usernum]  [lm_mode]
      The additional optional arguments are the same values as would be passed to a
      readmail_mod, if one were to be used instead.
  4. 02 Sep, 2019 1 commit
    • rswindell's avatar
      Storing the node file (node.dab) descriptor in the scfg_t was a "bad idea" {tm} · e97522ee
      rswindell authored
      The scfg_t instances are often shared between threads and we can't really share
      file descriptors between threads, so we ended up with file descriptor leaks and
      race conditions.
      Instead, define/allocate/free a new js_system_private_t where the scfg_t* and
      the nodefile (descriptor) are kept - per "system" instance.
  5. 31 Aug, 2019 1 commit
    • 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.
  6. 01 Aug, 2019 1 commit
  7. 26 Jul, 2019 1 commit
  8. 09 May, 2019 1 commit
    • rswindell's avatar
      Support bright background colors: · 48e7520e
      rswindell authored
      - for PETSCII, this is automatic and you don't lose blink, but you do lose
        colored foreground when enabling a bright background ("reverse video")
      - for ANSI, this mode is typically referred to as "iCE colors" and disables
        blinking-text support
      - Ctrl-AE (^AE) is the new attribute code to enable bright-background
        (will have no effect on ANSI terminals that are not iCE color enabled)
        "E" is now valid in the ctrl/attr.cfg file and string values for JS
        console.attributes assignments, as well
      - Ctrl-AI (^AI) - blink - now does nothing for ANSI/ICE color terminals
        (blinking is not supported in combination with bright-background)
      - Using a new/non-standard CGA attribute bit-flag to indicate the selection of
        bright-background colors (BG_BRIGHT, bit 10), separate from BLINK.
        This change required all/most char/uchar attribute representations to be
        converted to int/uint.
      New text.dat strings:
      - PetTerminalDetected (renamed from PetTermDetected)
      - PetTerminalQ
      - TerminalAutoDetect
      - TerminalColumns
      - TerminalRows
      - TerminalMonochrome
      - TerminalColor
      - TerminalIceColor
      - IceColorTerminalQ
      This also moved the MsgCarbonCopyList definition to the end of the file
      for now.
      PETSCII reverse-video attribute fix:
      When a CR is sent to the terminal, the reverse-video attibute is auto-disabled
      so update our "current attribute" (curatr) value to match the remote.
      Support new printfile/putmsg mode flag: P_WRAP to force an ungraceful
      line-wrap (splitting) to the specified column width. If no column width is
      specified (0), then this mode will force an ungraceful wrap before the last
      terminal column where some terminals *may* auto-wrap.
      JS console.printfile() and printtail() methods now support an optional
      "orig_columns" argument, similar to console.putmsg(). Must specify P_WORDWRAP
      or P_WRAP for this argument to have any effect.
      Much improved terminal-type selection/configuration in the user defaults
      menu and abort (^C) at any of the yes/no prompts is now detected/handled much
      better (to answers to the prompted questions are not saved to the user
  9. 29 Apr, 2019 1 commit
    • rswindell's avatar
      Configurable "Soft-CR" (0x8D) character handling on a per message-editor basis: · 0541b5f2
      rswindell authored
      For QuickBBS editors, the default will be the same as previous behavior: to
      convert Soft-CRs to Hard-CRs (CRLFs).
      For non-QuickBBS editors, the default will be to treat Soft-CRs as any other
      valid printable character in the text ("Retain").
      A 3rd option is available to strip Soft-CRs completely from the generated
      message text.
  10. 16 Apr, 2019 1 commit
    • rswindell's avatar
      Add a new quotewrap_cols setting for external editors, default is 0 (current · 127e0b6e
      rswindell authored
      terminal width) - only used when the QUOTEWRAP option is set. Common values:
      0 - current behavior, wrap the quote file to the current terminal width
      80 - wrap 80 columns specifically (actually, 79)
      9999 - unwrap to long lines (one line per paragraph)
      Actually, previously it was wrapping to current terminal width minus 4 when
      QUOTEWRAP was enabled. Now, make that current terminal width minus 1
      (when quotewrap_cols is set to 0).
  11. 21 Feb, 2019 1 commit
  12. 03 Mar, 2018 1 commit
    • deuce's avatar
      Store the certificate context in scfg_t. This allows static services to be · 81de76be
      deuce authored
      TLS servers without all of them needing to separately load the ssl certificate.
      It's destroyed in free_scfg(), and the config *must* be prepped both to
      destroy the certificate and to load it.  This is because the "no cert"
      value is -1, not 0, so the prepped flag is all we really have to indicate
      if it's zero because it's a valid certificate or zero because no certificate
      has been loaded.
  13. 07 Jan, 2018 1 commit
  14. 29 Dec, 2017 1 commit
  15. 23 Oct, 2017 1 commit
    • rswindell's avatar
      * Implemented support for new LIB_DIRS option: · 11e529d4
      rswindell authored
        Automatically detect child sub-directories and make them available as virtual
        directories for users to download from - only useful via FTP currently.
      * Implemented Sorting options for Message Groups and File Libraries:
        Sub-boards within groups and directories within library can now be
        automatically sorted based on the sysop's chosen sort field (long name, short
        name, or internal code)
        - Required that sub-boards are now stored/saved in msgs.cnf based on groups
        - Required QWKnet hub sub-board reference dynamic renumbering
      * Implemented "Template" toggle option for sub-boards and file directories:
        A sub-board or directory marked as "template" will be used for newly created
        (or imported) subs/dirs for that group/lib. Clone Options via SCFG will now
        use the "template" item as the source of the cloned settings, if available.
  16. 23 Nov, 2016 1 commit
    • rswindell's avatar
      New QWKnet hub configuration settings (with defaults): · 40b2188a
      rswindell authored
      - Include Kludge Lines     (Yes)
      - Include VOTING.DAT File   (Yes)
      - Include HEADERS.DAT File   (Yes)
      - Extended (QWKE) Packets    (No)
      - Exported Ctrl-A Codes    (Strip)
      SBBS/QWKnet nodes now have more control over the REP packet files created
      by their systems. If the "uplink" (hub) is complaining about receiving
      unsupported files (e.g. VOTING.DAT) or kluge lines (e.g. @TZ), just turn them
      Also, Ctrl-A codes may now be retained in QWKnetmail. And the @REPLYTO kludge
      line enabled for the first time (!).
  17. 20 Apr, 2016 1 commit
  18. 27 Nov, 2015 1 commit
  19. 26 Nov, 2015 1 commit
    • rswindell's avatar
      New long-sought feature: · 65a68990
      rswindell authored
      Sysop can set the number of days-worth of new messages that new users will
      see in their first new-message scan (the default is 0, no new messages).
      This does lengthen the amount of time that the first "Loading message pointers"
      is displayed (it has to go and open all the message bases), but at least new
      users are no longer bombarded with thousands of very old messages when they
      answer "Yes" to the "Scan for New Messages" prompt. This setting is in
      SCFG->System->New User Values->Days of New Messages. Set it to some really
      high number (maximum of 9999) if you want the old behavior.
  20. 27 Apr, 2015 1 commit
    • rswindell's avatar
      Enhancement at the request of Nightfox: · d57c3830
      rswindell authored
      Optionally, external modules may be executed in place of "built-in" operations
      - reading mail (email or netmail)
      - scanning posts (searching/scanning/reading a single sub-board)
      - scanning sub-boards (all, one, or a group)
      Each of these may be configured (in SCFG->System->Loadable Modules)
      with command-line options for a total length of up to 63 characters.
      Note to module programmers: each module here will be passed additional
      command-line arguments to indicate how or why the user operation was invoked.
      For the Reading Mail module, the 'which' value (in decimal) and the user-number
      is passed (in decimal). Usually the user-number will be the current user logged
      in, but not always (e.g. if the user is a sysop and reading other user's mail).
      The 'which' values (defined in load/sbbsdefs.js) of MAIL_YOUR, MAIL_SENT,
      and MAIL_ALL must be handled (MAIL_ANY won't be used).
      For the Scan Posts module, the sub-board number and scan mode (both in decimal)
      and the 'find' string (text being searched for) are passed as arguments
      (in that order). The scan mode values (defined in sbbsdefs.js) are the same as
      those supported by bbs.scan_posts(). All of the values should be supported
      and they can be combined (e.g. SCAN_CONST|SCAN_NEW
      and SCAN_NEW|SCAN_TOYOU). The 'find' string is only used if the SCAN_FIND mode
      bit is set. It is the responsibilty of the module (if configured) to enforce
      sub-board read access restrictions.
      For the Scan Subs module, the first argument is 1 if "all subs" are being
      scanned, 0 otherwise (normally the user is prompted for the breadth of the
      scan in this case, but that's up to the module author), and the scan 'mode' is
      passed in decimal, in that order. If the SCAN_FIND mode flag is passed in, this
      module should prompt the user for the text string to search for. If this module
      is not configured, the Scan Posts module will be executed for each sub-board
      Recursion protection was added, so it is actually possible for the Read Mail
      module, for example, to call bbs.read_mail() and it'll work, but why would you?
      If any of these user operations are initiated during logon, at the request of
      Baja or JavaScript module, or whatever, and if the module is actually
      configured (and not already executing to handle the operation), the module
      will be executed in-place-of the built-in functionality. Feedback welcome,
  21. 11 Nov, 2009 2 commits
  22. 20 Mar, 2009 1 commit
  23. 07 Mar, 2009 1 commit
  24. 21 Feb, 2009 1 commit
  25. 16 Feb, 2009 1 commit
  26. 14 Feb, 2008 1 commit
  27. 10 Jul, 2007 1 commit
  28. 08 Jul, 2007 1 commit
    • deuce's avatar
      64-bit · c4310885
      deuce authored
      NOTE: time_t issues... do we want an sbbs_time_t?
  29. 24 Sep, 2004 1 commit
  30. 19 Sep, 2003 1 commit
  31. 09 May, 2003 1 commit
  32. 02 Mar, 2003 1 commit
  33. 01 Feb, 2003 1 commit
  34. 31 Jan, 2003 1 commit
  35. 30 Dec, 2002 1 commit
  36. 13 Dec, 2002 1 commit
  37. 07 Dec, 2002 1 commit
  38. 04 Dec, 2002 1 commit
  39. 15 Oct, 2002 1 commit