1. 21 Mar, 2022 7 commits
    • Rob Swindell's avatar
      SMB items (messages or files) can now have 32-bit or 64-bit cost value · 9db7a614
      Rob Swindell authored
      To fully support files > 4GB in size in file bases, credit values larger than 32-bits must be supported too.
      
      There's a couple of todo comments/items included in this commit, but that's mainly to do with messages (which don't really have costs anyway).
      
      The main thing to deal with now is the fact that users can't have more than 4GB in credits in the first place! That's got to be fixed next.
      9db7a614
    • Rob Swindell's avatar
      Support files > 4MB in SMB filebase indexes · b72813e8
      Rob Swindell authored
      Used the reserved 16-bits in the file index record to extend the supported index-file-size from 4294967295 (4GB) to 281474976710655 (281TB). I think that's big enough for the foreseeable future. :-)
      b72813e8
    • Rob Swindell's avatar
      Add options to sort directories by file size (ascending or descending) · 939d7e6e
      Rob Swindell authored
      Size is indexed, so might as well sort by it. This does have an issue with files >= 4GB in length however, so I'm looking at that next.
      939d7e6e
    • Rob Swindell's avatar
      8fe69227
    • 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 13 commits