ffi-libfuse 0.4.1 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/README.md +1 -1
- data/lib/ffi/libfuse/adapter/safe.rb +11 -6
- data/lib/ffi/libfuse/filesystem/mapped_dir.rb +1 -1
- data/lib/ffi/libfuse/filesystem/virtual_file.rb +1 -0
- data/lib/ffi/libfuse/filesystem/virtual_node.rb +1 -1
- data/lib/ffi/libfuse/fuse_buf.rb +0 -1
- data/lib/ffi/libfuse/fuse_common.rb +1 -1
- data/lib/ffi/libfuse/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d36608baae92eda701f3753033158652393ed9972a5c4d4bd19486656d17d6da
|
4
|
+
data.tar.gz: 7ce05ab72dc66540af8aec386512eed405c3f47f21940d4fc24dc9fd4889b899
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5fc7a9272a90e28f80f9c603901778a34bf950568381636d64b35d268d25c560b896a8bbe5fb2b779add81f0ca53c1977d647be06f32c28b7d3b06db976e854c
|
7
|
+
data.tar.gz: 1e6e7861a65795a1d2511c1c625e789e0c3d3b8cf068e0f3471ffb6246ed02c8bd71ade75acfa4bcd955690f7ecb328548ff15788fdd5839ff02e915cf2d67de
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [0.4.3](https://github.com/lwoggardner/ffi-libfuse/compare/v0.4.2...v0.4.3) (2024-12-25)
|
4
|
+
|
5
|
+
|
6
|
+
### Miscellaneous Chores
|
7
|
+
|
8
|
+
* release 0.4.3 ([341e2ce](https://github.com/lwoggardner/ffi-libfuse/commit/341e2ce3a2cf362bf2bdc2433ea0d1e1c843775c))
|
9
|
+
|
10
|
+
## [0.4.2](https://github.com/lwoggardner/ffi-libfuse/compare/v0.4.1...v0.4.2) (2024-12-16)
|
11
|
+
|
12
|
+
|
13
|
+
### Bug Fixes
|
14
|
+
|
15
|
+
* bugs in Adapter::Safe and virtual filesystem operations ([decf7ae](https://github.com/lwoggardner/ffi-libfuse/commit/decf7ae024eee4bb565f67abfe493a14e5fa9cca))
|
16
|
+
|
3
17
|
## [0.4.1](https://github.com/lwoggardner/ffi-libfuse/compare/v0.4.0...v0.4.1) (2024-10-26)
|
4
18
|
|
5
19
|
|
data/README.md
CHANGED
@@ -60,17 +60,18 @@ module FFI
|
|
60
60
|
# For void callbacks
|
61
61
|
# @return [Integer]
|
62
62
|
# For path callbacks, either 0 for success or a negative errno value
|
63
|
-
def safe_callback(fuse_method, *args, default_errno: Errno::ENOTRECOVERABLE::Errno)
|
63
|
+
def safe_callback(fuse_method, *args, default_errno: Errno::ENOTRECOVERABLE::Errno, &block)
|
64
64
|
if FuseOperations::MEANINGFUL_RETURN.include?(fuse_method)
|
65
|
-
safe_meaningful_integer_callback(fuse_method, *args, default_errno: default_errno)
|
65
|
+
safe_meaningful_integer_callback(fuse_method, *args, default_errno: default_errno, &block)
|
66
66
|
elsif FuseOperations::VOID_RETURN.include?(fuse_method)
|
67
|
-
safe_void_callback(fuse_method, *args)
|
67
|
+
safe_void_callback(fuse_method, *args, &block)
|
68
68
|
else
|
69
|
-
safe_integer_callback(fuse_method, *args, default_errno: default_errno)
|
69
|
+
safe_integer_callback(fuse_method, *args, default_errno: default_errno, &block)
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
|
-
private
|
73
|
+
# private
|
74
|
+
# @visibility private
|
74
75
|
|
75
76
|
def safe_integer_callback(_, *args, default_errno: Errno::ENOTRECOVERABLE::Errno)
|
76
77
|
safe_errno(default_errno) do
|
@@ -78,20 +79,23 @@ module FFI
|
|
78
79
|
result.is_a?(Integer) && result.negative? ? result : 0
|
79
80
|
end
|
80
81
|
end
|
82
|
+
private_class_method :safe_integer_callback
|
81
83
|
|
82
84
|
def safe_meaningful_integer_callback(_, *args, default_errno: Errno::ENOTRECOVERABLE::Errno)
|
83
85
|
safe_errno(default_errno) do
|
84
86
|
yield(*args).to_i
|
85
87
|
end
|
86
88
|
end
|
89
|
+
private_class_method :safe_meaningful_integer_callback
|
87
90
|
|
88
91
|
def safe_errno(default_errno)
|
89
92
|
yield
|
90
93
|
rescue SystemCallError => e
|
91
94
|
-e.errno
|
92
|
-
rescue StandardError, ScriptError
|
95
|
+
rescue StandardError, ScriptError => _e
|
93
96
|
-default_errno.abs
|
94
97
|
end
|
98
|
+
private_class_method :safe_errno
|
95
99
|
|
96
100
|
# Process callbacks that return void, simply by swallowing unexpected errors
|
97
101
|
def safe_void_callback(_, *args)
|
@@ -101,6 +105,7 @@ module FFI
|
|
101
105
|
# Swallow unexpected exceptions
|
102
106
|
nil
|
103
107
|
end
|
108
|
+
private_class_method :safe_void_callback
|
104
109
|
end
|
105
110
|
end
|
106
111
|
end
|
@@ -28,7 +28,7 @@ module FFI
|
|
28
28
|
def getattr(path, stat = nil, _ffi = nil)
|
29
29
|
return super unless root?(path)
|
30
30
|
|
31
|
-
stat&.directory(
|
31
|
+
stat&.directory(**@root.virtual_stat.merge({ nlink: entries.size + 2 }))
|
32
32
|
|
33
33
|
self
|
34
34
|
end
|
@@ -75,7 +75,7 @@ module FFI
|
|
75
75
|
end
|
76
76
|
|
77
77
|
def listxattr(path, buf = nil, size = nil)
|
78
|
-
return path_method(__method__, path) unless root?(path)
|
78
|
+
return path_method(__method__, path, buf, size) unless root?(path)
|
79
79
|
return virtual_xattr.keys unless buf
|
80
80
|
|
81
81
|
Adapter::Ruby.listxattr(buf, size) { virtual_xattr.keys }
|
data/lib/ffi/libfuse/fuse_buf.rb
CHANGED
data/lib/ffi/libfuse/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-libfuse
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Grant Gardner
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -122,7 +122,7 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
-
description:
|
125
|
+
description:
|
126
126
|
email:
|
127
127
|
- grant@lastweekend.com.au
|
128
128
|
executables: []
|
@@ -200,13 +200,13 @@ files:
|
|
200
200
|
- sample/memory_fs.rb
|
201
201
|
- sample/no_fs.rb
|
202
202
|
- sample/pass_through_fs.rb
|
203
|
-
homepage:
|
203
|
+
homepage:
|
204
204
|
licenses:
|
205
205
|
- MIT
|
206
206
|
metadata:
|
207
207
|
source_code_uri: https://github.com/lwoggardner/ffi-libfuse
|
208
208
|
rubygems_mfa_required: 'true'
|
209
|
-
post_install_message:
|
209
|
+
post_install_message:
|
210
210
|
rdoc_options: []
|
211
211
|
require_paths:
|
212
212
|
- lib
|
@@ -222,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
222
222
|
version: '0'
|
223
223
|
requirements: []
|
224
224
|
rubygems_version: 3.1.6
|
225
|
-
signing_key:
|
225
|
+
signing_key:
|
226
226
|
specification_version: 4
|
227
227
|
summary: FFI Bindings for Libfuse
|
228
228
|
test_files: []
|