| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
| |
The referenced #1198 is a MUST ticket. #1067 relates to
no-longer-configred services and is in the Security milestone.
|
| |
|
|
| |
This is *not* a MUST ticket.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
This is a rather specialised function which we had for a previous data
structure but no longer use.
Just get rid of it.
|
| | |
|
| |
|
|
| |
We have IPT persistence now.
|
| |
|
|
| |
That ticket is *not* MUST.
|
| | |
|
| | |
|
| |
|
|
|
| |
This ticket is a MUST. We might downgrade it, but only after actually
thinking about this question.
|
| |
|
|
| |
When we fix #1074, we should change this code too.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
We're going to reuse this for other kinds of storage error.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
This is needed for the replay logs.
It's a shame that CheckedDir is (i) a bit unergonomic (ii) has an
extra bool in it, or we could pass one of those instead of these two
arguments.
Since HS's might be created after startup, TorClient must have these
fields.
|
| |
|
|
| |
create_storage_handles_from_state_mgr (fmt)
|
| |
|
|
|
| |
This will allow us to more faithfully model the actual Arti state
directory layout.
|
| | |
|
| |
|
|
|
|
|
| |
This will be used by the descriptor publisher soon (we want to abolish
its `ReactorError` altogether, and to do that, we need to get rid of
`ReactorError::ShuttingDown`. `ShuttingDown::Terminate` happens to be a
suitable replacement).
|
| |\
| |
| |
| |
| |
| |
| | |
Improve KeySpecifier, errors, IptKeySpecifier impl, etc.
Closes #1116 and #1148
See merge request tpo/core/arti!1796
|
| | |
| |
| |
| |
| | |
The macro is going to want to be able to do a back-conversion from an
ArtiPath, so there has to be an owned version.
|
| |/ |
|
| | |
|
| |
|
|
|
| |
We will soon need another component to be able to subscribe to the
shutdown signal.
|
| | |
|
| |
|
|
| |
Mandatory formatting degradation.
|
| |
|
|
|
|
| |
Store the IptParameters in the MockEstabState, and provide a function
to list what the IPTs are. Then we can check the IPTs are reloaded
and restored after restart.
|
| |
|
|
|
| |
This is supposed to reload the state. In the next commit we'll check
at least some of the things.
|
| |
|
|
| |
We're going to add another call site in a moment.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Previously IPT creation could only fail due to key generation failures
or other kinds of internal error, which were very unlikely and treated
as fatal.
But with key persistence, IPT creation will be able to fail due to eg
disk full.
|
| |
|
|
|
|
|
|
| |
Store the IPT manager's data structure to the provided storage
manager.
Keys are not persistent yet! And we must save the publication IPT set
since it can have the only record of IPT publication times.
|
| |
|
|
|
|
|
|
| |
Actually, a SleepProvider.
We will need this for timestamp conversion during loading and saving.
channel() needs it to load. note_publication_attempt needs it for
saving, as does borrow_for_update.
|
| |
|
|
| |
Whitespace changes that make the next commit less noisy.
|
| | |
|
| |
|
|
|
|
|
| |
And therefore, break out the IPT manager startup, into a
MockedIptManager::start.
We can have it borrow the TempDir, legitimising the _untracked call.
|
| |
|
|
|
|
| |
IPT persistence tests will need to actually save things.
We'll fix up the `.into_untracked()` wrinkle shortly.
|
| |
|
|
| |
This is going to load the state from disk.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Introduce type aliases for the Arc<dyn >. Add Send and Sync bounds.
* Pass the storage manager to ipt_mgr and the per-key handle to ipt_set.
* Store the handles in ipt_mgr::Immutable and IptPublishSet.
* Change the ipt mgr storage key to "hs_ipts_{nickname}". This avoids use
of "_" as a non-separator, and allows the possibility of other
submodules using other storage keys too - and, here, we introduce one.
* Provide a dummy struct for the IPT set state, which is needed to
define the type alias etc. We'll populate that struct later.
|
| |
|
|
|
|
|
|
|
|
| |
If we can't store IPT details, we mustn't publish the corresponding
IPT. But that's not fatal; maybe we can store later. So introduce a
new IptStoreError type, and change the return value from some
functions that are going to be able to fail that way.
This introduces a new TODO HSS: we need the publisher to be able to
retry after such a failure.
|
| | |
|
| |\
| |
| |
| |
| | |
hssvc-ipt-algorithms.md: Move and fix up some text
See merge request tpo/core/arti!1777
|
| | |
| |
| |
| |
| | |
Fixes a rustdoc warning. This was already wrong in the .md file but
nothing checked it there.
|
| | |
| |
| |
| |
| | |
This is describing the detailed algorithm in
compute_iptsetstatus_publish. Move it there (and add an xref).
|
| | |
| |
| |
| |
| | |
This is describing the detailed algorithm in
idempotently_progress_things_now. Move it there (and add an xref).
|
| | |
| |
| |
| |
| |
| |
| |
| | |
This is describing our data structures and IPT states. But we have
this documented elsewhere, largely.
There are a few sentences here that can usefully be replaced with a
bit of extra text in the data structure docs.
|