| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| | |
We're about to make borrow_for_update() take a runtime parameter,
which will be a bit annoying. borrow_for_read() doesn't need one.
Call sites will come on a moment.
|
| | | |
|
| | |
| |
| |
| | |
We're going to want to reuse this.
|
| | |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| | |
We're about to need to arrange to have the same runtime earlier, so
run_test needs to accept one from the caller.
|
| | | |
|
| | |
| |
| |
| | |
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.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
tor-hsservice: Measure last_uploaded from when the upload was initiated.
Closes #1142, #1130, and #1132
See merge request tpo/core/arti!1787
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Fixes #1132
|
| | | |
| | |
| | |
| | | |
This promotes some logs to `debug!` and adds some new trace-level logs.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
I don't think we need to do this (rate-limiting/debouncing the uploads
in upload_all should be sufficient).
Closes #1130
|
| | | |
| | |
| | |
| | |
| | | |
We're about to use this for retrying failed uploads too (so let's give
it a more generic name).
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This also fixes an incorrect duration calculation (it should be
`now.duration_since(last_uploaded)` rather than
`last_uploaded.duration_since(now)`).
Fixes #1142
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Cleanup and clarification re cache_dir and state_dir (rename in tor_dirmgr)
See merge request tpo/core/arti!1789
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Currently some components do this one way, and some the other. This
is confusing. We should do it one way. This way is slightly better
because it makes navigation with `grep` easier.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This variable contains precisely the value of cache_dir from
arti_client::config::StorageConfig and it should therefore have the
same name.
|
| | | | | |
|
| | | | | |
|
| | |/ /
| | |
| | |
| | | |
tor-ptmgr uses it, and the key manager too.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Two minor fixes relating to file handling in tor-hsservice
See merge request tpo/core/arti!1792
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
The existing callers all use create_dir_all but new callers shouldn't
ahve to, eg if they just want a single file.
|
| | |/ / |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
These crates both depend on tor-error. Since tor-error got a
patchlevel bump, they now depend on the new version, which means by
our rules that _they_ get a patchlevel bump themselves.
tor-geoip
tor-rpcbase
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This crate is new, and gets a bump to 0.1.0.
tor-log-ratelim
This crate had a breaking change:
tor-persist
tor-llcrypto had a breaking change. These crates _are_
tor-llcrypto, or (transitively) depend on it. I am assuming that
they all re-expose something from it in a way that matters:
tor-llcrypto
tor-bytes
tor-hscrypto
tor-socksproto
tor-checkable
tor-cert
tor-linkspec
tor-cell
tor-proto
tor-netdoc
tor-consdiff
tor-netdir
tor-chanmgr
tor-ptmgr
tor-guardmgr
tor-circmgr
tor-dirclient
tor-dirmgr
tor-keymgr
tor-hsclient
tor-hsservice
tor-hsrproxy
arti-client
arti-rpcserver
arti-hyper
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
These crates had backward-compatible changes, and get a patchlevel
bump only:
fs-mistrust
tor-error
tor-config
tor-rtcompat
tor-rtmock
This crate exposes no non-CLI APIs, and gets a patchlevel bump only:
arti
|
| | | | |
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is a TODO HSS for this. Fixes cargo check --workspace --all-targets
producing
warning: unused variable: `result`
--> crates/arti/src/cfg.rs:1060:13
|
1060 | let result = file.resolve::<(TorClientConfig, ArtiConfig)>();
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
|
= note: `#[warn(unused_variables)]` on by default
|
| |/
|
|
|
|
| |
This is not a change of ownership but just rebranding.
Signed-off-by: Andrew <[email protected]>
|
| |\
| |
| |
| |
| | |
hssvc-ipt-algorithms.md: Move and fix up some text
See merge request tpo/core/arti!1777
|
| | |
| |
| |
| |
| |
| | |
This rune
RUSTDOCFLAGS="-Dwarnings --cfg docsrs" nailing-cargo +nightly doc --all-features --document-private-items --no-deps
is clean now.
|
| | |
| |
| |
| |
| | |
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.
|