Synchronet now requires the libarchive development package (e.g. libarchive-dev on Debian-based Linux distros, libarchive.org for more info) to build successfully.

  1. 16 Nov, 2021 1 commit
  2. 10 Jun, 2021 1 commit
    • Rob Swindell's avatar
      Standardize on "metadata" as the description of a file's "tail" dfield · 3549be9f
      Rob Swindell authored
      It's anticipated that this will be used for JS-populated file metadata in JSON format in the future (and not just "archive contents" in .ini format).
      
      Also, fix the double-free issue that was occurring when moving files with extended file descriptions (sbbs_t::movefile()). This was actually the primary problem I was fixing here, but noticed the metadata issue: metadata would not have been moved along with the other file info between bases.
      3549be9f
  3. 09 Jun, 2021 2 commits
  4. 06 Jun, 2021 2 commits
    • Rob Swindell's avatar
      Give sysop more control over characters allowed in uploaded filenames · 755452d7
      Rob Swindell authored
      5 options:
      - Safest Subset
      - Most ASCII, Excluding Spaces (the default)
      - Most ASCII, Including Spaces
      - Most CP437, Excluding Spaces
      - Most CP437, Including Spaces
      755452d7
    • Rob Swindell's avatar
      More uniform safe/illegal/allowed filename (for upload) determination · 06fff14d
      Rob Swindell authored
      sbbs_t::checkfname() now checks the file.can too.
      new filedat.c functions:
      - safest_filename() - not currently used
      - illegal_filename() - returns true for a highly-suspicious (e.g. hack attempt) filename
      - allowed_filename() - returns true if the filename is good for upload (assumed to be already checked to be legal as well).
      
      Importantly, filenames beginning or ending in a '.' are now unallowed:
      - 'dot files' are hidden (by default) on *nix
      - files ending in a '.' are problematic on Windows
      06fff14d
  5. 23 May, 2021 1 commit
    • Rob Swindell's avatar
      Use int64_t instead of la_int64_t · 92fa411c
      Rob Swindell authored
      Resolve error reported on irc with Ubuntu (don't know what version):
      <rjwboys> ok now i get filedat.c:896:3: error: unknown type name ‘la_int64_t’
      92fa411c
  6. 16 May, 2021 2 commits
  7. 13 May, 2021 3 commits
  8. 05 May, 2021 1 commit
  9. 04 May, 2021 1 commit
  10. 03 May, 2021 1 commit
  11. 02 May, 2021 1 commit
    • Rob Swindell's avatar
      Store contents (list) of archive files in filebase (in the "msg tail") · 5374a113
      Rob Swindell authored
      This will allow fast/easy display of archive contents without actually reading the archive files.
      
      Introduces some new functions:
      - list_archive_contents()
      - smb_adddfile_withlist()
      
      A new SMB convenience variable ("tail", aliased as "content" for a file).
      A new file detail level ("file_detail_content", exposed in JS as FileBase.DETAIL.CONTENTS) which adds a "content" array property to file metadata objects for JS FileBase.get().
      
      Files already added to the new filebases won't have this archive content automatically - I'm looking into that now (likely a new or updated JS script to run).
      5374a113
  12. 25 Apr, 2021 1 commit
  13. 24 Apr, 2021 1 commit
    • Rob Swindell's avatar
      DIZ enhancements: Read/use SAUCE data, support ANSI, increase max 1->4K · 2a8e1c11
      Rob Swindell authored
      Inspired by Blocktronics (and other ANSI art group) packs' FILE_ID.DIZ/ANS files:
      * Support (and prioritize) FILE_ID.ANS
      * Convert ANSI color/attribute sequences in DIZ files to Ctrl-A equivalent (uses SAUCE width and ICE color, if specified)
      * Don't treat DIZ as a series of lines, they're not always nowadays.
      * New putmsg() mode: P_INDENT to print files indented by current column
      * Display full (up to 64-char) filenames in lists when using 132+ column terminal.
      * Use the Author, Group, and Title fields from the SAUCE if present/non-blank
      * 2 new text.dat strings: 301 (FiAuthor) and 302 (FiGroup)
      * Also fix bug with repeated Cost header field on bulk-uploaded files.
      
      I know this'll break the *nix build (sauce.c dependency), but I'll fix that next.
      2a8e1c11
  14. 22 Apr, 2021 2 commits
  15. 21 Apr, 2021 1 commit
  16. 17 Apr, 2021 1 commit
    • Rob Swindell's avatar
      Restore the user-to-user file transfer feature · bc883458
      Rob Swindell authored
      I forget who it was that said they were still using this feature in v3.18, but here you go, it's working again (the /D and /U commands). I'm not migrating any file sender/recipient info from v3.18, so only files added after upgrading to this will be downloadable from the "user" directory (if you have one).
      
      Something that I never implemented before but noticed is missing is the removal (or dereferencing) of user-to-user files that were sent from/to a user that is then deleted. So that's still a TODO item.
      bc883458
  17. 08 Apr, 2021 1 commit
    • Rob Swindell's avatar
      Sorted loadfiles() results were corrupted when detail was < normal · 4391ca75
      Rob Swindell authored
      When only reading the index (detail = file_detail_index), smb_getfile() just sets the file->name convenience pointer to point to the name in the index. Then when loadfiles() would sort the list, these pointers would not be adjusted (so they would point to the wrong names) resulting in a corrupted file list (e.g. name/size mismatches and no logical sort order).
      
      The solution is to call smb_getfile() on each file *after* the read index records have been sorted.
      
      This also means that the sort-by-name routines needed to always sort using the index name and not the convenience pointer (which is NULL in this case).
      
      While fixing this, I noticed there was no bounds checking in the loadfiles() and loadfilenames() read-loops, so if the indexes happened to be longer than the total_files value from the status header, a buffer under-alloc/overflow would occur and a likely crash as a result. So stop reading the index when the expected maximum number of index records have been read.
      4391ca75
  18. 04 Apr, 2021 2 commits
  19. 23 Nov, 2020 1 commit
    • Rob Swindell's avatar
      The great C function dependency refactor of 2020 · c6808b3f
      Rob Swindell authored
      The goal of this commit is that: only modules that either are part-of sbbs.dll/libsbbs.so or need to link with/use that library, will #include "sbbs.h" and thus be dependent on its subsequent includes (e.g. cryptlib.h, jsapi.h). This should mean extdeps.mk can be trimmed way down.
      
      I also removed CVS keyword/comments and trimmed up the boilerplate copyright notice in modified and added source/header files in this commit.
      
      There is no functional change in behavior in this comment.
      c6808b3f
  20. 01 Nov, 2020 1 commit
  21. 16 Aug, 2020 1 commit
  22. 12 Jan, 2019 1 commit
    • rswindell's avatar
      Optimized getfiledat(): · 09f5e87e
      rswindell authored
      rather than calling both flength() and fdate() (which both call stat()), just
      call stat() once and use the result for both file size and date/time.
      09f5e87e
  23. 17 Mar, 2018 1 commit
  24. 20 Feb, 2018 1 commit
  25. 03 Jun, 2017 1 commit
  26. 19 Oct, 2011 1 commit
  27. 06 Aug, 2011 1 commit
  28. 06 Mar, 2010 1 commit
  29. 11 Jun, 2009 1 commit
  30. 20 Mar, 2009 1 commit
  31. 04 Jun, 2008 1 commit
  32. 27 Jan, 2008 1 commit
  33. 25 Aug, 2007 1 commit