Skip to content
Snippets Groups Projects
  1. Jan 23, 2022
    • Rob Swindell's avatar
      create_archive() will skip directories in supplied file_list · dc5896a0
      Rob Swindell authored
      The file_list[] parameter was expected to contain only files, but the directory() function (used to create that file_list[]) returns a list of all directory entries, including sub-directories. I could (and maybe will) add an option to directory() to only include files or dirs, but this seemed the more direct fix for the problem reported by DesotoFireflite (VALHALLA):
      
      TickIT's nodelist_handler.js appears to be creating and leaving behind a sub-directory of the temp directory, triggering this error:
       1/23  11:36:56a  QNET libarchive error -1 (13 opening c:\SBBS\temp\event\nodelist_handler/) creating c:\SBBS\data\VERT.REP 
      
      Why isn't the temp directory fully cleaned up after/between events? That's another thing to look into.
      dc5896a0
    • Rob Swindell's avatar
      Fix comment for GLOB_MARK · e153c007
      Rob Swindell authored
      e153c007
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Add case fall-through comment · ce691cc0
      Rob Swindell authored
      To address CID 345626
      ce691cc0
    • Rob Swindell's avatar
      Re-parse the "TCP" section before sending (optional) Prompt · 7e7eca6f
      Rob Swindell authored
      We need to re-parse the default sexpots.ini [TCP] section for every new session (when using the Prompt feature) or else there's no way to connect to the default host.
      
      Also, telnet to be enabled or disabled (e.g. by setting Telnet=false) in any [TCP] or [TCP:x] section to support a mix of Telnet and non-Telnet hosts.
      7e7eca6f
    • Rob Swindell's avatar
      Change default PromptTimeout to 60 (seconds) · 5c30305c
      Rob Swindell authored
      Also log a warning if a control character is received in response to the prompt, or log a notice if there's a timeout waiting for a response to the prompt. Change the non-control character response value to a debug-level log message.
      5c30305c
    • Rob Swindell's avatar
      Optional clear-screen before sending banner · ddcc7403
      Rob Swindell authored
      Set CLS=true in the root section of sexpots.ini to enable. Sends a ^L ASCII 12 0x0c FF CS whatever you want to call it to the remote terminal before sending the carriage return and copyright banner. For Nelgin.
      ddcc7403
    • Rob Swindell's avatar
      Make PromptTimeout configurable (default to 0/infinite) · 1510f6f9
      Rob Swindell authored
      Set to number of seconds to timeout, if desired.
      Log the received character in response to the prompt.
      1510f6f9
    • Rob Swindell's avatar
      e39fa5ca
    • Rob Swindell's avatar
      Optionally send a prompt to connected user · 50e38ac8
      Rob Swindell authored
      Wait up to 10 seconds for a single-char reply to the prompt and if a non-control character was received, use the [TCP:x] (x is the character sent by the user) from the sexpots.ini for the Host and Port values to connect to.
      
      An experimental feature for Nelgin.
      50e38ac8
    • Rob Swindell's avatar
      Basic PETSCII output column/line counting in putmsg() · e716ec46
      Rob Swindell authored
      When printing a PETSCII Sequence (.seq) file, count the lines/rows and columns similar to how we would if we were using outchar() (but we don't, we use the lower-level outcom() to bypass any translations).
      
      This is related to issue #325:
      PETSCII seq files seem to display just fine, the problem I saw was with the auto-pausing (e.g. before a screen-clear) after displaying them.
      e716ec46
  2. Jan 22, 2022
    • Rob Swindell's avatar
      Add the 'O' (post using real name) restriction flag. · 81d46715
      Rob Swindell authored
      Oh, QWKnet nodes ('Q' restricted accounts) are impacted by this restriction
      since the poster's name isn't taken from the user account anyway.
      81d46715
    • Rob Swindell's avatar
      Handle duplicate names and aliases better · 0026d313
      Rob Swindell authored
      So some cute user (mine@demon.com) created a new user account on Vertrauen with the alias and real name of "Rob Swindell". Funny.
      
      Now, duplicate user aliases are already and always forbidden (even those that just vaguely match an existing alias) - everyone expects those to be unique. And we already forbid new user real names to match an existing user alias (check_name() enforces this and we use that when checking new user real names too), however, nothing prevented a new user account's alias from matching another existing user's real name. And this is a problem:
      
      1. This new/fake user could post a message or send an email/netmail and it would appear to possibly come from the other/original user (we do have options to send mail and post messages using real names)
      
      2. Received email for real names is supported and if enabled, this second account could be used to intercept mail for the original/first account if it was receiving mail for the original/real user's real name.
      
      So disallowing a new user's real name to match an existing alias fixes one problem. 
      However, systems *can* be configured to allow duplicate real names (which is convenient for QWKnet accounts, for example) and so we needed another solution for that problem: meet the 'O' restriction. This restriction flag will prevent a user account from posting messages no sub-boards that require real names. New user accounts that have a duplicate real name (the same as another user account's real name), will automatically be assigned the 'O' restriction flag. Systems that don't allow duplicate real names wouldn't have this issue in the first place.
      
      Scripts that allow the creation of new user accounts might need some updating to match this security logic.
      0026d313
    • Rob Swindell's avatar
      Call can_user_post() rather than manual checks · 5609326f
      Rob Swindell authored
      Eliminate some redundant code. Use the userdat lib function provided for this purpose.
      5609326f
    • Rob Swindell's avatar
      Remove some commented-out code · 5614de95
      Rob Swindell authored
      Posting restrictions are handled one QWK-message at a time (and have been for a long time). No actual change here.
      5614de95
    • Rob Swindell's avatar
      Fix "Username already taken." validation error (could not happen) · 41426176
      Rob Swindell authored
      The system.check_name() check *also* verifies that the username is not
      already taken, so we must perform the matchuser() check first in order
      to get the appropriate error message here when trying to use an alias
      (username) that's already taken.
      41426176
    • Rob Swindell's avatar
      Fix issue that prevent "-syslog" option from being used (on *nix) · 0abcf980
      Rob Swindell authored
      Fixed a couple sprintf() buffer overflow warnings/issues.
      0abcf980
    • Rob Swindell's avatar
      fbf61445
  3. Jan 20, 2022
  4. Jan 19, 2022
  5. Jan 18, 2022
    • Rob Swindell's avatar
      Don't display "blank" extended description in listings · 3d1827ad
      Rob Swindell authored
      If an extended description contains nothing but Ctrl-A codes and white-space, don't display it in a file listing (in place of the normal short description).
      3d1827ad
    • Rob Swindell's avatar
      UTF-8 encode/decode support, from martylake · bafe9e60
      Rob Swindell authored
      Based largley on martylake's provided patch set. By default, assumes
      all IRC messages are UTF-8 encoded and will translate to CP-437 if
      appropriate or send as UTF-8 if the user's terminal supports it.
      Set utf8_support=false in the [irc] section of your ctrl/modopts.ini
      file if you wish to disable this behavior.
      bafe9e60
    • Rob Swindell's avatar
      A bit of re-sync with actual keys · 0d822725
      Rob Swindell authored
      Remove JavaScriptContextStack (no longer used).
      Add *Sound keys to the [Global] section.
      0d822725
    • Rob Swindell's avatar
      Fix problem saving HangupSound setting in sbbs.ini · d42803ca
      Rob Swindell authored
      Apparent copy/paste error in sbbs_set_sound_settings() - I was wondering why the HangupSound key wasn't saving to the sbbs.ini file from SBBSCTRL.
      d42803ca
    • Rob Swindell's avatar
      Provide more help for the "Access to Sub-directories" feature · df580ac0
      Rob Swindell authored
      This is an experimental feature that's been in the code for quite a while without any supporting help/docs (there was the original commit message, I'm sure). I'm not sure how much value this feature is without providing automatic access to the *files* within the sub-directories, but there you have it.
      df580ac0
  6. Jan 17, 2022
  7. Jan 16, 2022
    • Rob Swindell's avatar
      335acfd6
    • Rob Swindell's avatar
      cd588ff0
    • Rob Swindell's avatar
      Add JS properties to assist with web-access to filebase · db0607ca
      Rob Swindell authored
      file_area.web_vpath_prefix
      file-metadata-object (return value of FileBase.get()).vpath
      db0607ca
    • Rob Swindell's avatar
      Correct JSDOCS for get_path, get_size, and get_time methods · 546fabe4
      Rob Swindell authored
      These methods also (optionally) accept a file-meta-object as an argument.
      546fabe4
    • Rob Swindell's avatar
      Add support for web request path aliases (defined in web_alias.ini) · 96e1bedc
      Rob Swindell authored
      Similar to the ctrl/ftpalias.cfg file, the new ctrl/web_alias.ini file (optional) can be used to map a portion (the first portion, only) of a web request path to a different physical or virtual path. For example, I'm using it to map:
      /Synchronet/ = /files/main/sbbs/
      for filebase access to my main->sbbs directory of Vertrauen's filebase using a /Synchronet/* web request (i.e. for slightly prettier or shorter custom URLs, if desired).
      96e1bedc
    • Rob Swindell's avatar
      Merge branch 'dd_area_choosers_name_collapsing' into 'master' · 37e828e1
      Rob Swindell authored
      Now supports message sub-board & file directory name collapsing
      
      See merge request !134
      37e828e1
    • Rob Swindell's avatar
      Add direct filebase access from the web server (optional) · b035257e
      Rob Swindell authored
      By setting SCFG->File Options->Web File Virtual Path Prefix to something (e.g. "/files/"), all HTTP or HTTPS requests to the Synchronet Web Server with request paths beginning with this prefix will be interpreted as filebase access requests (with full access control enforcement). This is configured here (in SCFG) rather than, say, the [web] section of sbbs.ini, because I have plans for the terminal server to use this prefix to generate Web-URLs for files to display or email to users.
      
      Currently, only requests to *files* (for download) are supported (no index generation, file information, etc. and definitely no upload support). Full access control (using HTTP auth, not cookies) is used for libraries and directories with controlled access. Credits are deducted and awarded and uploaders are notified of downloads, as one would expect. Requests to any dynamic-web-content files (e.g. .SSJS, .XJS, etc.) will be treated as static file download requests (no script will be executed).
      
      I'm reusing the same virtual path parsing logic from the FTP server (moved to the userdat lib), so the virtual path to a file for download would be, for example, http://yourdomain/files/lib/dir-code/filename.ext
      
      The main motivation for this feature is: FTP-links in email and web pages are just not useful to many users these days and I don't think that sysops should have to rely on a SSJS web UI (e.g. ecWebv4, cool as it is), to provide web-access to the filebases. Using this feature, you can share simpler/shorter web links to your files that will be more enduring.
      b035257e
    • Eric Oulashin's avatar
      Now supports message sub-board & file directory name collapsing, allowing simplified · 9722f091
      Eric Oulashin authored
      file directory and message sub-board lists for ones with common groups, adding a 3rd
      tier of options.  For example, if you have the following file directory structure:
      BBS files
        DOS: BBS software
        DOS: BBS doors
        DOS: BBS utilities
        Windows: BBS software
        Windows: BBS doors
        Windows: BBS utilities
      
      With directory name collapsing, the selection will be come 3 tiers, as follows:
      BBS files
        DOS
          BBS software
          BBS doors
          BBS utilities
        Windows
          BBS software
          BBS doors
          BBS utilities
      9722f091
Loading