1. 21 Mar, 2022 3 commits
    • Rob Swindell's avatar
      File's meta-object's "size" and "time" properties reflect current values · 623c49e4
      Rob Swindell authored
      Query the disk for file's current "size" and "time" values when get_list() or get() method is used with a "detail" level of >= DETAIL.NORMAL and the "check file existence" toggle option is enabled for this directory in SCFG.
      
      I pondered and contemplated whether this configuration setting should be checked/applied here or in the various JS scripts (e.g. filelist.js) and decided here was best to provide the most uniform/expected behavior, even though there is a performance impact. If a script doesn't need/use these properties, they should probably be specifying the DETAIL.MIN (minimal) detail level in their queries anyway, which will then bypass these performance-impacting disk queries.
      623c49e4
    • Rob Swindell's avatar
      Create some convenience functions for validating lib/dir/grp/sub nums · a466152f
      Rob Swindell authored
      There are lot of places in the code where subnums and dirnums (especially) are compared against total_subs and/or total_dirs or >= 0 without a ton of consistency. We should migrate to use these functions for validity-checking going forward.
      a466152f
    • Rob Swindell's avatar
      Update the help text for the "file existence check" option · 13c520ef
      Rob Swindell authored
      This option actually controls whether the disk will be queried for the current file size and modification date/time (when listing) too.
      13c520ef
  2. 20 Mar, 2022 5 commits
    • Rob Swindell's avatar
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Linux needs strlcpy() defined in xpdev · 2951994b
      Rob Swindell authored
      2951994b
    • Rob Swindell's avatar
      Add dynamic file area/base indexing to web server · 23a82123
      Rob Swindell authored
      By setting sbbs.ini [web] FileIndexScript to an SSJS or XJS script filename, that script (by default, from your exec directory) will be executed when a file area/base listing has been http[s]-requested. File area/base requests are of the form <vpath_prefix> (for the list of libraries), <vpath_prefix>/<lib-name>/ (for list of directories of a library) or <vpath_prefix>/<lib-name>/<dir-code-suffix>/ (for a list of files in a directory). The new http_request "lib" and "dir" properties indicate that a library or directory listing was requested (if neither are defined, that's a request for the root / list of libs). The same configured script is executed to handle all 3 types of index/list requests.
      
      A sample script (webfileindex.ssj) will be committed soon.
      
      Authentication (via HTTP-AUTH) will be required if user #0 does not have access to all libraries or all directories within a required library.
      
      file_area.lib[].link has been changed from "/<vdir>/" to just "<vdir>" (no slashes) and renamed to "vdir".
      
      file_area.dir[].link has been changed from "/<vpath>/" to "<vpath>/" (no leading slash) and renamed to "vpath".
      
      Added file_area.dir[].vdir property that contains just the directory's virtual directory name.
      
      I don't think anyone was using these "link" properties since the dynamic FTP HTML index scripting feature is no longer supported.
      
      Added can_user_access_lib() to insure that the user has access to at least one directory of a library before allowing access to the library (e.g. via JS). Something similar should be created for message groups.
      23a82123
    • Rob Swindell's avatar
      Use JS_ValueToECMAUint32 for full 32-bit time_t values · cf5b2141
      Rob Swindell authored
      Resolves issue with filelist.js trying to pass 4294967295 (-1) to system.datestr() resulting in:
      !JavaScript  /sbbs/exec/filelist.js line 13: Error: can't convert t to an integer
      cf5b2141
  3. 19 Mar, 2022 2 commits
  4. 18 Mar, 2022 1 commit
  5. 17 Mar, 2022 3 commits
  6. 16 Mar, 2022 1 commit
    • Rob Swindell's avatar
      Optional channel list per server configured in modopts.ini · ed2444f5
      Rob Swindell authored
      So you have multiple IRC servers configured in modopts.ini and
      you want different channel list per server? Just add more
      keys to the modopts.ini [chat_sec] section of the form:
      <server>=<channel_list>
      
      Where <server> is the IRC server's host name (e.g. irc.synchro.net)
      and <channel_list> is a comma-separated list of channels to override
      the default list of channels (set with the "irc_channel" key).
      
      For DesotoFireflite (VALHALLA)
      ed2444f5
  7. 15 Mar, 2022 8 commits
  8. 14 Mar, 2022 15 commits
  9. 13 Mar, 2022 2 commits