]>
git.proxmox.com Git - pxar.git/log
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Wolfgang Bumiller [Fri, 5 Jun 2020 10:35:11 +0000 (12:35 +0200)]
hardlinks also contain the offset
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 5 Jun 2020 10:21:08 +0000 (12:21 +0200)]
bump version to 0.1.2-1
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 5 Jun 2020 09:52:40 +0000 (11:52 +0200)]
fix hardlink format
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 4 Jun 2020 13:07:54 +0000 (15:07 +0200)]
silence encoder warning
As it is normal for this to happen when bailing out with an
error.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 4 Jun 2020 09:29:58 +0000 (11:29 +0200)]
fixup clean target in Makefile
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 4 Jun 2020 09:27:04 +0000 (11:27 +0200)]
bump version to 0.1.1-1
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 4 Jun 2020 09:20:38 +0000 (11:20 +0200)]
turn Permissions into just an u64
So we don't need to deal with `from_bits_truncate` and can
just use it as it is...
An alternative would be an enum which is either NoMask or a
bitfield, but that seems too tedious right now.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 3 Jun 2020 11:26:58 +0000 (13:26 +0200)]
remove rust-toolchain file
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 3 Jun 2020 10:40:45 +0000 (12:40 +0200)]
add debian build files
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 2 Jun 2020 10:58:29 +0000 (12:58 +0200)]
accessor: use aio Decoder in aio Accessor
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 2 Jun 2020 10:57:27 +0000 (12:57 +0200)]
Entry: add is_blockdev, is_chardev next to is_device
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 2 Jun 2020 10:57:12 +0000 (12:57 +0200)]
derive Clone for FileEntry
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 20 May 2020 07:59:47 +0000 (09:59 +0200)]
add Entry::into_metadata
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 18 May 2020 13:25:05 +0000 (15:25 +0200)]
accessr: add convenience read_at to FileContents
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 18 May 2020 08:38:54 +0000 (10:38 +0200)]
add .cargo/config to use local repos
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 13 May 2020 12:56:16 +0000 (14:56 +0200)]
drop more trait objects for auto-trait reasons
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 13 May 2020 12:52:41 +0000 (14:52 +0200)]
Get rid of dyn SeqRead use
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 13 May 2020 12:06:09 +0000 (14:06 +0200)]
Get rid of dyn SeqWrite
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 13 May 2020 11:53:37 +0000 (13:53 +0200)]
Get rid of dyn ReadAt usage
It causes auto traits to be lost across await points.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 13 May 2020 07:12:46 +0000 (09:12 +0200)]
implement ReadAt for Arcs
`Arc<dyn ReadAt + Send + Sync + 'static>` is the most
convenience type for a monomorphized random access
`Accessor`, so let's add this for convenience.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 12 May 2020 11:36:40 +0000 (13:36 +0200)]
implement accessor::aio
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 6 May 2020 09:35:46 +0000 (11:35 +0200)]
accessor: add size method
to get the size the accessor was initially created with
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 6 May 2020 07:41:01 +0000 (09:41 +0200)]
accessor: expose lookup_self
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 6 May 2020 07:36:30 +0000 (09:36 +0200)]
accessor: open_file_at_range, open_contents_at_range unsafe helpers
for our fuse code
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 5 May 2020 12:21:11 +0000 (14:21 +0200)]
sync accessor: remove 'async' from open_dir_at_end
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 5 May 2020 12:20:55 +0000 (14:20 +0200)]
Entry: add file_size() convenience helper
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 5 May 2020 11:51:33 +0000 (13:51 +0200)]
expose full entry ranges for unsafe access
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 5 May 2020 09:52:39 +0000 (11:52 +0200)]
cleanup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 29 Apr 2020 11:37:57 +0000 (13:37 +0200)]
add: interface to set goodbye table cache
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 29 Apr 2020 11:20:45 +0000 (13:20 +0200)]
add missing file
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 28 Apr 2020 14:59:59 +0000 (16:59 +0200)]
Add a Cache interface and internal gbt cache usage
This allows the users to implement whatever kind of caching
they want to use for the goodbye table level.
In the future there may be caches for metadata, or path
based goodbye table lookups etc.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 24 Apr 2020 12:40:17 +0000 (14:40 +0200)]
add Device::from_dev_t
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 24 Apr 2020 10:26:26 +0000 (12:26 +0200)]
Entry, Metaedata: file_type() and file_mode() getters
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 24 Apr 2020 08:41:49 +0000 (10:41 +0200)]
cleanup + failure -> anyhow transition
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 24 Apr 2020 08:41:39 +0000 (10:41 +0200)]
use CStr for XAttr names
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 23 Apr 2020 10:21:34 +0000 (12:21 +0200)]
Make QuotaProjectId Copy
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 23 Apr 2020 10:15:15 +0000 (12:15 +0200)]
shorten Permissions name, add NO_MASK entry
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 22 Apr 2020 09:08:16 +0000 (11:08 +0200)]
encoder: add fifo and socket support
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 22 Apr 2020 09:01:23 +0000 (11:01 +0200)]
decoder: handle fifos and sockets properly
These are the only items which don't get "finalized" by a
dedicated packet (like a PAYLOAD or DEVICE), so for these we
need to check at the next FILENAME or GOODBYE entry.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 21 Apr 2020 12:58:41 +0000 (14:58 +0200)]
give goodbye tables an empty path
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 21 Apr 2020 12:57:18 +0000 (14:57 +0200)]
fix EOF condition in goodbye tables
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 21 Apr 2020 12:56:39 +0000 (14:56 +0200)]
fix seq_read_exact_or_eof
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 21 Apr 2020 12:14:12 +0000 (14:14 +0200)]
use a separate state for InGoodbyeTable
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 21 Apr 2020 09:14:26 +0000 (11:14 +0200)]
add Entry::{get_file_bits,get_permission_bits}
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 20 Apr 2020 13:24:34 +0000 (15:24 +0200)]
add Device::to_dev_t
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 20 Apr 2020 13:24:28 +0000 (15:24 +0200)]
add 'full' meta-feature
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 24 Mar 2020 10:04:08 +0000 (11:04 +0100)]
decoder: less confusing generic type letters
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 24 Mar 2020 10:02:13 +0000 (11:02 +0100)]
decoder: fix size check in read_simple_entry
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 24 Mar 2020 08:57:07 +0000 (09:57 +0100)]
cleanup: merge incomplete_*_error variables
This could be bitflags or a string, but we only use
std::io:Error and end up with a textual ErrorKind::Other
anyway. (An enum still seemed more efficient at runtime than
a String, given that this is normally a rather exceptional
case caused by the crate user...)
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 24 Mar 2020 08:33:53 +0000 (09:33 +0100)]
cleanup: remove PxarStruct trait
We ended up using only twice, and it's just a tiny shortcut.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 14:00:15 +0000 (15:00 +0100)]
Symlink/Hardlink::as_os_str convenience helpers
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 13:58:35 +0000 (14:58 +0100)]
Symlink/Hardlink: AsRef<[u8]> and update AsRef<OsStr>
Don't include the terminating nul byte in AsRef<OsStr>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 13:48:28 +0000 (14:48 +0100)]
Metadata::mtime_as_duration shortcut
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 13:42:23 +0000 (14:42 +0100)]
AsRef<OsStr> for Symlink and Hardlink
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 13:34:31 +0000 (14:34 +0100)]
add Entry::kind
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 13:32:53 +0000 (14:32 +0100)]
decoder: add content_size method
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 13:26:21 +0000 (14:26 +0100)]
convenience method to get mtime as std Duration
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 13:11:58 +0000 (14:11 +0100)]
formatting fixup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 13:11:46 +0000 (14:11 +0100)]
add Acl::is_empty
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 12:52:01 +0000 (13:52 +0100)]
expose format::mode at the top level
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 12:42:50 +0000 (13:42 +0100)]
content reader for sequential decoder
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 12:16:02 +0000 (13:16 +0100)]
expose 'with_goodbye_tables' decoder options
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 09:17:40 +0000 (10:17 +0100)]
add Decoder::open
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 09:17:30 +0000 (10:17 +0100)]
fix async Encoder::create
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 19 Mar 2020 10:07:25 +0000 (11:07 +0100)]
formatting fixups
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 19 Mar 2020 10:06:45 +0000 (11:06 +0100)]
encoder: expose add_symlink/hardlink/device
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 19 Mar 2020 10:06:29 +0000 (11:06 +0100)]
buildsys: we work with stable 1.42 atm
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 18 Mar 2020 15:10:28 +0000 (16:10 +0100)]
add aio Encoder
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 10 Mar 2020 11:58:59 +0000 (12:58 +0100)]
add AsyncWrite interface to encoder::FileImpl
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 5 Mar 2020 10:19:10 +0000 (11:19 +0100)]
encoder: add_device
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 5 Mar 2020 10:12:17 +0000 (11:12 +0100)]
encoder: add_hardlink
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 5 Mar 2020 10:10:52 +0000 (11:10 +0100)]
encoder: add_symlink
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 5 Mar 2020 09:46:32 +0000 (10:46 +0100)]
encoder: encode remaining metadata
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 5 Mar 2020 09:46:18 +0000 (10:46 +0100)]
ignore testdir
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 4 Mar 2020 15:39:07 +0000 (16:39 +0100)]
examples/pxarcmd: acreate archives recursively
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 4 Mar 2020 15:38:14 +0000 (16:38 +0100)]
encoder: actually create the binary search tree array
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 4 Mar 2020 15:37:25 +0000 (16:37 +0100)]
encoder: lifetime fixup
for some reason using these functions otherwise creates
leaves the lifetime borrowed throughout the entire
scope making it impossible to use this in a loop?
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 4 Mar 2020 15:28:00 +0000 (16:28 +0100)]
add From<&std::fs::Metadata> for Metadata
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 4 Mar 2020 15:27:38 +0000 (16:27 +0100)]
remove now-unused BST search function
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 4 Mar 2020 15:26:40 +0000 (16:26 +0100)]
import binary search tree code from proxmox-backup
and fix accessor's hash collision handling
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 20 Feb 2020 11:44:21 +0000 (12:44 +0100)]
start with the encoder state machine
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 3 Mar 2020 12:31:06 +0000 (13:31 +0100)]
don't use size_of_val for possibly empty array elements
While it is generally nicer to use something that already
contains the type (to avoid duplicate type names),
size_of_val doesn't get optimized out and the array access
will happen with all its checks, causing panics...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 20 Feb 2020 11:21:18 +0000 (12:21 +0100)]
documentation
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 20 Feb 2020 10:19:24 +0000 (11:19 +0100)]
api update
reexport the main accessor::sync types in accessor::
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 20 Feb 2020 10:17:40 +0000 (11:17 +0100)]
hide accessor::aio for now
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 20 Feb 2020 10:16:35 +0000 (11:16 +0100)]
cleanup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 19 Feb 2020 15:10:18 +0000 (16:10 +0100)]
pxarcmd example: implement 'cat'
and fix FileContentImpl offsets
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 19 Feb 2020 15:03:42 +0000 (16:03 +0100)]
implement lookup over multiple components
add a pxarcmd test example
make 'failure' an optional dependency as we only use it in
examples right now.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 19 Feb 2020 10:02:56 +0000 (11:02 +0100)]
accessor: efficient iterator method alternatives
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 19 Feb 2020 09:54:14 +0000 (10:54 +0100)]
huge accessor refactoring
Turn <'a> into <T: Clone + ReadAt>. We can still use `&'a
dyn ReadAt` in its place, but we can now also support using
an `Arc<File>` to create an Accessor of a 'static lifetime
for more convenient storage and reuse. This way the Accessor
can be thrown away after calling `open_root`.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 18 Feb 2020 13:19:23 +0000 (14:19 +0100)]
let FileEntry deref to Entry
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 23 Jan 2020 10:18:04 +0000 (11:18 +0100)]
import
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>