Skip to content
Snippets Groups Projects
  1. Oct 23, 2024
    • Rob Swindell's avatar
      Rename sbbs_t::ansi_getlines() to ansi_getdims(), add sbbs_t::getdimensions() · e4cdd4ac
      Rob Swindell authored
      Add JS console.ansi_getdims()
      
      Use sbbs_t::getdimensions() or JS console.getdimensions() to move user
      cols/rows values to run-time console values (querying ANSI terminal if
      appropriate/supported).
      
      JS console.pushxy(), popxy(), and gotoxy() all return Boolean now.
      
      sbbs_t::getdimensions() and its JS wrapper is now the proper way to propagate
      user's cols/rows settings to the run-time console values. This was done
      (post-login) only via use of the TERMROWS and TERMCOLS @-codes in
      user_settings.js. Weird.
      e4cdd4ac
  2. Oct 22, 2024
  3. Oct 20, 2024
  4. Oct 18, 2024
  5. Oct 17, 2024
    • Rob Swindell's avatar
      Add 21 extra blank lines to the end of the 31-line DOOR.SYS file · ba8fdb5a
      Rob Swindell authored
      Some doors/door kits actually require all 52 lines, but since they
      (may) have problems with the values we populate on those additional
      21 lines, just write them as blank when a program is configured for
      the GAP (original) 31 line DOOR.SYS drop file. I doubt (and hope)
      that no programs will care if their are more lines than they expect.
      ba8fdb5a
  6. Oct 16, 2024
  7. Oct 15, 2024
    • Rob Swindell's avatar
      Add support for 31-line DOOR.SYS file format (alternative to 52-line version) · b2601ca8
      Rob Swindell authored
      Removed UTIDOOR.TXT file format: nobody uses this drop file format and we
      removed the UTI driver long ago, so this was just an artifact.
      
      If you previously had an external program (door) configured in SCFG to use
      the "GAP DOOR.SYS" file format, SBBS will create the same (52 line) format
      as before (no change).
      
      But for doors that have compatibilty issues with the 52-line DOOR.SYS file
      created by Synchronet (e.g. Thunder cat V3.30), a sysop can now choose "GAP
      (original)" for the drop file type and Synchronet will create a 31-line
      DOOR.SYS file instead.
      b2601ca8
    • Rob Swindell's avatar
      Add missing file to commit 095368c0 · 47eb42e6
      Rob Swindell authored
      Not sure how I missed this one, but this file was needed to complete the
      'bbs' object changes mentioned in that commit message.
      47eb42e6
    • Rob Swindell's avatar
      Add configurable "LoginRequirements" (ARS format) per-service in services.ini · ad7de570
      Rob Swindell authored
      In response to Reddit inquiry in /r/bbs by wts42:
      "is there a possibility in sbbs to restrict access to services like IMAP by
      level or flag?"
      
      ... now there is.
      
      This only works for services that use the JS login() method to authenticate
      the user.
      
      If the services server's LoginRequirements are set in the sbbs.ini file, then
      *both* sets of requirements must be met to successfully login to a service.
      ad7de570
    • Rob Swindell's avatar
      New user properties: batch_upload_list and batch_download_list · c780c203
      Rob Swindell authored
      For exposing the list path/file for a user's batch up/download lists
      c780c203
  8. Oct 13, 2024
  9. Oct 12, 2024
    • Rob Swindell's avatar
      File/batch upload decomp for scripting, unique-password-check fix, Ctrl-AX fix · 095368c0
      Rob Swindell authored
      Created sbbs_t::batch_upload() and JS bbs.batch_upload()
      returns true if one or more blind-uploads were received and all files in
      the batch upload queue (if any) were received
      
      The Rainbow Ctrl-A codes (x|X) are not valid for message (there's no universal
      ANSI equivalent) - so treat as "invalid Ctrl-A codes" for most (message) uses.
      e.g. they're stripped when entered into text with the internal message editor.
      
      sbbs_t::chkpass() and JS bbs.good_password() now default to *not* requiring
      the password to be substantially different from the user's current password.
      This fixes weird issues where a user that just wanted to add more characters
      to their current password woudl not be allowed by cause the new password was
      "too obvious"
      JS bbs.good_password() now accepts an optional second argumnet: forced_unique
      which defaults to false.
      sbbs_t::chkpass() (JS bbs.good_password()) would always return false if the
      provided password was the same as the user's current password, regardless of
      the 'unique' parameter value. Now, only reject unchanged password when unique
      is true.
      
      sbbs_t::upload() and JS bbs.upload_file() now accept an optional second
      argument: 'filename' which when specified, the function won't prmopt for the
      user-supplied filename.
      
      New JS property: file_area.max_filename_length
      
      file_area.min_diskspace, settings, and web_vpath_prefix are now read-only.
      These properties should not have been writable.
      095368c0
    • Rob Swindell's avatar
      Update online help (F1 key displayed help text) for directory "Short name" · a894f176
      Rob Swindell authored
      This text/terminology was pretty out of date.
      a894f176
    • Rob Swindell's avatar
      Rename sbbs_t::batch_upload() to process_batch_upload_queue() · fcf7ace4
      Rob Swindell authored
      That was a badly named function.
      fcf7ace4
  10. Oct 11, 2024
    • Rob Swindell's avatar
      Report error when menu() can't find a display file and P_NOERROR not used · b656e19f
      Rob Swindell authored
      This issue was introduced in commit d02fc1a2 (3 years ago), where menu() would
      silenty fail (just return false) if no display file matching the supported
      menu/display file types/extensions could be found.
      
      Previous to commit d02fc1a2, we would log a NOTICE-level message and display
      a "File not found" message to the user (what sbbs_t::printfile() does), but
      since d02fc1a2, we no longer even call printfile() when the file doesn't
      exist, so no error was logged or message displayed to the user.
      
      Of course, when using the P_NOERROR mode flag, silent failure is expected and
      that's still what happens in that case.
      b656e19f
  11. Oct 10, 2024
    • Rob Swindell's avatar
      Always reload the edited user record from disk after executing a "usercfg_mod" · 583ab919
      Rob Swindell authored
      Normally, when modifying user fields via JS, the "user modified" node.dab
      flag would be set for that user (on all node's that user is logged-into) and
      the user record automatically re-read (soon after). But this doesn't work
      during newuser registration because the user is not yet "logged-into" a node.
      
      This fixes the issue reported by Nelgin (and observed on amessyroom's BBS)
      whereby if a new user resets/changes their external message editor, it would
      not take effect for their new user validation email to the sysop (they would
      still be using the default new user message editor as configured by the
      sysop).
      
      It's possible other new user default changes made (e.g. language) would also
      not have taken immediate effect as a result of this bug (now fixed).
      583ab919
  12. Oct 03, 2024
  13. Oct 01, 2024
  14. Sep 28, 2024
    • Rob Swindell's avatar
      MIME-encode words that contain non-ASCII values in text header fields · 5564eb67
      Rob Swindell authored
      (e.g. to, from, subject) ... when transmitting to other hosts (e.g. POP3
      clients or other SMTP hosts).
      
      For messages that contain CP437 or UTF-8 chars in these fields and were *not*
      imported into the BBS via SMTP or POP3, these header fields would be
      transmitted to other hosts with the raw CP437 or UTF-8 chars, thus violating
      POP3 and SMTP protocols and likely resulting in garbage displayed in message
      readers.
      
      The fix is to encode (using MIME "encoded words", per RFC 2407) where
      necessary.
      
      Since moderm mail clients (e.g. Thunderbird) don't see to support CP437
      charset in MIME encoded header fields, always translate to UTF-8 first.
      
      We probably should be translating message body text to UTF-8 as well, for
      maximum compatibilty with modern mail readers, but this commit doesn't address
      body text issues with CP437-encoded content. That'll come later.
      5564eb67
  15. Sep 25, 2024
  16. Sep 23, 2024
  17. Sep 22, 2024
  18. Sep 21, 2024
Loading