aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/fuse_versionscript5
-rw-r--r--lib/helper.c18
-rw-r--r--lib/meson.build2
3 files changed, 24 insertions, 1 deletions
diff --git a/lib/fuse_versionscript b/lib/fuse_versionscript
index e52dd86..2802bb4 100644
--- a/lib/fuse_versionscript
+++ b/lib/fuse_versionscript
@@ -148,6 +148,11 @@ FUSE_3.2 {
fuse_loop_mt_31;
} FUSE_3.1;
+FUSE_3.3 {
+ global:
+ fuse_open_channel;
+} FUSE_3.2;
+
# Local Variables:
# indent-tabs-mode: t
# End:
diff --git a/lib/helper.c b/lib/helper.c
index e1de362..5b80c6e 100644
--- a/lib/helper.c
+++ b/lib/helper.c
@@ -420,3 +420,21 @@ struct fuse_conn_info_opts* fuse_parse_conn_info_opts(struct fuse_args *args)
}
return opts;
}
+
+int fuse_open_channel(const char *mountpoint, const char* options)
+{
+ struct mount_opts *opts = NULL;
+ int fd = -1;
+ const char *argv[] = { "", "-o", options };
+ int argc = sizeof(argv) / sizeof(argv[0]);
+ struct fuse_args args = FUSE_ARGS_INIT(argc, (char**) argv);
+
+ opts = parse_mount_opts(&args);
+ if (opts == NULL)
+ return -1;
+
+ fd = fuse_kern_mount(mountpoint, opts);
+ destroy_mount_opts(opts);
+
+ return fd;
+}
diff --git a/lib/meson.build b/lib/meson.build
index 5dd8450..492abf7 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -32,7 +32,7 @@ libfuse = library('fuse3', libfuse_sources, version: meson.project_version(),
soversion: '3', include_directories: include_dirs,
dependencies: deps, install: true,
link_depends: 'fuse_versionscript',
- c_args: [ '-DFUSE_USE_VERSION=32',
+ c_args: [ '-DFUSE_USE_VERSION=33',
'-DFUSERMOUNT_DIR="@0@"'.format(fusermount_path) ],
link_args: ['-Wl,--version-script,' + meson.current_source_dir()
+ '/fuse_versionscript' ])