Commit graph

66 commits

Author SHA1 Message Date
Antonio SJ Musumeci
b78f70a884 Auto-commit fuse_signals.cpp 2026-04-14 22:23:09 -05:00
Antonio SJ Musumeci
1f61c37163 Auto-commit fuse_signals.cpp 2026-04-14 22:22:53 -05:00
Antonio SJ Musumeci
34ce80ac23 Auto-commit fuse_signals.cpp 2026-04-14 22:22:44 -05:00
Antonio SJ Musumeci
db301acc29 Auto-commit fuse_signals.cpp 2026-04-14 22:21:51 -05:00
Antonio SJ Musumeci
3ecc597c44 Auto-commit fuse_signals.cpp 2026-04-14 22:21:50 -05:00
Antonio SJ Musumeci
5d2ceb92e4 Auto-commit fuse_signals.cpp 2026-04-14 22:18:19 -05:00
Antonio SJ Musumeci
ca73262828 Auto-commit fuse_signals.cpp 2026-04-14 22:17:15 -05:00
Antonio SJ Musumeci
b8f8e9ddc9 Auto-commit fuse.cpp 2026-04-14 21:22:10 -05:00
Antonio SJ Musumeci
d15e67ce71 Auto-commit fuse.cpp 2026-04-14 21:22:03 -05:00
Antonio SJ Musumeci
cf292bfec1 Auto-commit fuse.cpp 2026-04-14 21:20:51 -05:00
Antonio SJ Musumeci
33d5bd8985 Auto-commit fuse_lowlevel.cpp 2026-04-14 21:18:17 -05:00
Antonio SJ Musumeci
a26143df63 Auto-commit fuse_lowlevel.cpp 2026-04-14 21:18:09 -05:00
Antonio SJ Musumeci
8557fce2e8 Auto-commit fuse_lowlevel.cpp 2026-04-14 21:18:05 -05:00
Antonio SJ Musumeci
c320691870 Auto-commit fuse_lowlevel.cpp 2026-04-14 21:18:00 -05:00
Antonio SJ Musumeci
bb99cbccd7 Auto-commit fuse_lowlevel.cpp 2026-04-14 21:17:55 -05:00
Antonio SJ Musumeci
96a59c47a8 Auto-commit fuse_lowlevel.cpp 2026-04-14 21:17:33 -05:00
Antonio SJ Musumeci
cb069cfcd0 Auto-commit fuse_lowlevel.cpp 2026-04-14 21:17:28 -05:00
Antonio SJ Musumeci
2e973ecc0d Auto-commit fuse_lowlevel.cpp 2026-04-14 21:17:07 -05:00
Antonio SJ Musumeci
615b292b13 Auto-commit fuse_i.hpp 2026-04-14 21:16:27 -05:00
Antonio SJ Musumeci
7363b1c617 Auto-commit fuse_lowlevel.cpp 2026-04-14 21:15:00 -05:00
Antonio SJ Musumeci
7f98de9c6b Auto-commit fuse.cpp 2026-04-14 21:14:02 -05:00
Antonio SJ Musumeci
5a94eebc16 Auto-commit fuse.cpp 2026-04-14 21:10:28 -05:00
Antonio SJ Musumeci
fa82d2af8e Auto-commit fuse.cpp 2026-04-14 21:09:57 -05:00
Antonio SJ Musumeci
eedbd9d4d3 Auto-commit fuse.cpp 2026-04-14 21:09:25 -05:00
Antonio SJ Musumeci
fbf5bfac06 Auto-commit fuse.cpp 2026-04-14 21:04:03 -05:00
Antonio SJ Musumeci
eaca01ae98 Auto-commit fuse.cpp 2026-04-14 21:03:54 -05:00
Antonio SJ Musumeci
4ae1ada004 Auto-commit fuse.cpp 2026-04-14 21:03:47 -05:00
Antonio SJ Musumeci
50f7afa832 Auto-commit fuse.cpp 2026-04-14 21:03:41 -05:00
Antonio SJ Musumeci
f9f46e68ef Auto-commit fuse.cpp 2026-04-14 21:02:20 -05:00
Antonio SJ Musumeci
0ee8533d3e Auto-commit fuse.cpp 2026-04-14 21:01:38 -05:00
Antonio SJ Musumeci
58ffa7659b Auto-commit fuse.cpp 2026-04-14 21:01:30 -05:00
Antonio SJ Musumeci
0266dc899a Auto-commit fuse.cpp 2026-04-14 21:01:24 -05:00
Antonio SJ Musumeci
117afaa898 Auto-commit fuse.cpp 2026-04-14 20:57:22 -05:00
Antonio SJ Musumeci
df109c066e Auto-commit fuse.cpp 2026-04-14 20:56:38 -05:00
Antonio SJ Musumeci
319a67f5fe Auto-commit fuse.cpp 2026-04-14 20:56:33 -05:00
Antonio SJ Musumeci
ab98baabd9 Auto-commit fuse.cpp 2026-04-14 20:56:21 -05:00
Antonio SJ Musumeci
7a0f294206 Auto-commit fuse.cpp 2026-04-14 20:55:40 -05:00
Antonio SJ Musumeci
43593caf6b Auto-commit fuse.cpp 2026-04-14 20:50:12 -05:00
Antonio SJ Musumeci
bd2f51e34a Auto-commit fuse.cpp 2026-04-14 20:49:36 -05:00
Antonio SJ Musumeci
01bfdf3bdd Auto-commit fuse.cpp 2026-04-14 18:26:58 -05:00
Antonio SJ Musumeci
e59abd78f0 Auto-commit fuse_opt.cpp 2026-04-14 18:26:46 -05:00
Antonio SJ Musumeci
74ddfe5786 Auto-commit fuse.cpp 2026-04-14 18:24:29 -05:00
Antonio SJ Musumeci
f2c8e5d9eb Add FUSE request_timeout
Some checks failed
mkdocs / deploy (push) Has been cancelled
Not yet hooked up to config parser to set as need to evaluate usage.
2026-04-01 23:20:05 -05:00
Antonio SJ Musumeci
b581c5d5e7 Add support for FUSE_COPY_FILE_RANGE_64 2026-04-01 23:20:05 -05:00
Antonio SJ Musumeci
7fc20457ca Rework open file resource management 2026-03-31 19:53:17 -04:00
Antonio SJ Musumeci
06433a0548 Fallback to fusermount3 where available
Some checks failed
mkdocs / deploy (push) Has been cancelled
Also general cleanup of mount_generic.
2026-03-24 21:13:34 -04:00
Antonio SJ Musumeci
a78aef36e0 Additional check for ENOTCONN on mount 2026-03-24 21:13:34 -04:00
Antonio SJ Musumeci
0d05523dfd Move maintainence thread func take u64 rather than int
signed rollover is UB
2026-03-24 21:13:34 -04:00
Antonio SJ Musumeci
0cfab60f37 replace raw C-strings with std::string in converted libfuse files
util/mount.mergerfs.cpp:
- Remove xstrdup/xrealloc wrappers entirely
- Convert type, source, options, command, setuid to std::string
- Replace add_arg() pointer-rewriting with shell_quote() returning std::string
- Replace add_option() with simple std::string += concatenation
- Fix const_cast UB on string literal assignment

lib/helper.cpp:
- Convert add_default_subtype local subtype_opt: malloc+snprintf+free -> std::string construction

lib/mount_generic.h:
- Convert fuse_mount_sys locals source/type: malloc+strcpy+strcat -> std::string
- Remove 4 unnecessary free() calls (RAII cleanup)
- .c_str() at mount() and fuse_mnt_add_mount() boundaries

lib/mount_util.h:
- Rewrite fuse_mnt_resolve_path internals using std::string: rfind/substr
  instead of manual pointer arithmetic, strrchr, strlen chains
2026-03-24 21:13:34 -04:00
Antonio SJ Musumeci
21966ade97 Convert vendored/libfuse C sources to C++17
Convert all C source files in vendored/libfuse/ to C++17:
- lib/crc32b.c    -> crc32b.cpp  (const void* cast)
- lib/fuse_opt.c -> fuse_opt.cpp (designated init, void* arithmetic)
- lib/fuse_signals.c -> fuse_signals.cpp
- lib/helper.c   -> helper.cpp  (void* data cast)
- lib/mount.c    -> mount.cpp  (thin wrapper)
- lib/mount_generic.c -> mount_generic.h (static inline, #pragma once)
- lib/mount_bsd.c -> mount_bsd.h    (static inline, #pragma once)
- lib/mount_util.c -> mount_util.h   (static inline, #pragma once)
- util/fusermount.c -> fusermount.cpp
- util/mount.mergerfs.c -> mount.mergerfs.cpp

Key changes:
- Replace C99 designated initializer in fuse_opt_parse with field-by-field init
- Fix void* pointer arithmetic via char* base + offset pattern
- All C-style (T*)voidptr casts replaced with static_cast/reinterpret_cast
- Remove redundant #define _GNU_SOURCE (already in FUSE_FLAGS)
- Wrap __clone2 declaration in extern "C" for ia64 path
- Update Makefile: empty SRC_C, build utils with $(CXX) instead of $(CC)
- Remove stale .c files now replaced by .cpp/.h counterparts

All binaries build cleanly: mergerfs, mergerfs-fusermount, mount.mergerfs
2026-03-24 21:13:34 -04:00