Good: If a previous read is canceled, we cancel the preloads that the read
triggered.
Bad: Future reads at that point will fail.
This fixes that issue.
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
We can't currently put binary values due to API limitations. This worked before
because the DHT wasn't checking values on local put.
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
We need it to parse the dnsaddr addresses. While we import it elsewhere, we
should really be importing it every where we need it so that other users can
import our packages directly.
fixes#5143
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
Adds a --data-encoding flag to `ipfs object get` to let the user
specify base64 encoding for object data.
License: MIT
Signed-off-by: Alex Potsides <alex@achingbrain.net>
retry publishing with a longer EOL if the first attempt fails due to a timeout.
fixes#5099
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
They've never really been enabled but they:
1. Are causing the tests to fail for various reasons (e.g., out of space).
2. Take time.
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
To avoid duplicating fields and making the code easier to follow.
Remove all of `FSNode` previous fields in favor on a single `pb.Data` structure
that is not exported. Accessor methods are added only for the necessary internal
fields. This takes up more memory, `pb.Data` is always created inside `FSNode`
and it stays there instead of just being created and destroyed during the
(un)marshal operations.
The removed fields `Data`, `blocksizes` and `Type` had a direct counterpart in
the embedded `pb.Data` structure, in contrast (only) the `subtotal` field
doesn't have one, it was used as a temporary accumulator to track the
`Filesize`, which is now being kept updated on every modification (to ensure the
entire `FSNode` is always at a valid state), so `subtotal` could just be removed
without the addition of any other field (this temporary accumulator was
obscuring how `Filesize` was computed).
To keep `Filesize` up to date a method was added (`UpdateFilesize()`) to adjust
its value in the two places where the file size could be modified, when changing
its data (in `SetData()`, accessor method added) and when adding or removing
child nodes (in `AddBlockSize()` and `RemoveBlockSize()`).
A constructor method was added (`NewFSNode()`) to initialize the required
fields, like `Type` which is explicitly set, this deprecates the previous
methodology of just calling `new(FSNode)` and relying in the default value of
`pb.Data_DataType` (`Data_Raw`) to avoid an explicit assignment. Also,
`Filesize` is initialized to avoid being left with a `nil` value before
marshaling empty nodes, which would result in a different hash from previous
versions, to be backwards compatible. Previous versions of `GetBytes()` always
set the `Filesize` value, even though it is reflected as an `optional` field in
the `.proto` file (this may be an inaccurate field rule).
Without the duplicated fields the functions `GetBytes()` and `FSNodeFromBytes()`
are now reduced to simple `Marshal()` and `Unmarshal()` operations respectively.
License: MIT
Signed-off-by: Lucas Molas <schomatis@gmail.com>
This is almost never an error, it just means we don't have any connections. We
could leave this at Warning but we'd like to be able to turn those on by
default at some point.
fixes#5029
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>