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>
If the domain has a DNS-Link, we want to use it even if it points to, e.g., an
IPNS address that doesn't resolve.
fixes#4973
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
Remove ~50 lines of code, some casting, and a superfluous map (when go starts
looking like python, something's wrong).
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
The current convention is to return the concrete type instead of an interface so
let's go with that and have one constructor.
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>