ffi-libfuse 0.4.1 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|