| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This simplifies the publisher code in preparation for #1241
This replaces the overly complicated task-based approach to
rate-limiting with a simpler one, where the publisher has:
* a separate `RateLimited` state that indicates it is rate-limited,
and for how long
* an additional arm in its `run_once()` `select_biased!`, which
checks if the rate-limit has expired
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
We _do_ schedule the rate-limited upload at `now +
UPLOAD_RATE_LIM_THRESHOLD`, see `schedule_rate_lim_upload()`.
|
| |/
|
|
|
| |
This shouldn't be a warning (it's logged when the reactor is shutting
down, not when it crashes).
|
| |\
| |
| |
| |
| |
| |
| | |
Make the OnionServiceState type crate-private.
Closes #1228 and #1261
See merge request tpo/core/arti!1946
|
| |/
|
|
| |
Closes #1261.
|
| |\
| |
| |
| |
| |
| |
| | |
Add some higher-level documentation for tor-hsservice.
Closes #1228
See merge request tpo/core/arti!1945
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
Closes #1228.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
tor-hsservice: Rename the service keystore dir to "hss".
Closes #1260
See merge request tpo/core/arti!1949
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The onion service keys now live in the `hss/<nickname>` subdirectory
within the keystore.
This layout change is **not** backwards-compatible, so if you want to
use your existing hidden service keys, you will need to manually move
them to `<keystore_root>/hss`.
Closes #1260
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
tor-hsservice: Switch to state_dir for non-key state
Closes #1183
See merge request tpo/core/arti!1941
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Mandatory use line shuffling.
|
| | | |
| | |
| | |
| | | |
This is now tor_persist::Error containing ErrorSource::AlreadyLocked.
|
| | | |
| | |
| | |
| | | |
We're just using fslock-guard now.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We no longer do replay log locking in IptManager::new. Instead, we
rely on the acquire_instance call in OnionService::launch, which ends
up with ipt_mgr getting an InstanceHandle (which contains a lock
guard).
OnionServiceStateMgr is abolished; it existed to deal with the
generics in the tor_persist::StateMgr API. state_dir has no
generics (other than the T being loaded/stored).
Many places (structs and argument lists) now have state_dir types
which embody a path (or a CheckeDir) along with a lock, rather than
separate path+lock+mistrust.
The creation/startup code uses the new calls from state_dir.
Other more minor changes:
- StartupError::StateDirectoryInaccessible contains tor_persist::Error
- test::create_storage_handles_from_state_dir changed and renamed,
from _from_state_mgr.
- replay::PersistFile's (separate) file lock is now fslock_guard's
|
| | | |
| | |
| | |
| | |
| | |
| | | |
We're going to change the payload of StateDirectoryInaccessible to
tor_persist::Error, since that's what tor_persist::state_dir gives us,
but then we can't use it here.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
state_dir doesn't have the in-memory dummy implementation,
so there will have to be a real directory here.
Do that now, as prep.
|
| | | |
| | |
| | |
| | |
| | | |
The new state_dir types require &mut for storing, which is correct,
but that means we can't have it in Immutable.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
These are here because that's what you get from the tor_persist
singleton StageMgr API (for type erasure reasons). We're going to
change these to tor_persist::state_dir types and those don't involve
Arcs.
|
| | | |
| | |
| | |
| | |
| | | |
Only people who can mutate the state ought to be saving it. Otherwise
there might be concurrent overwrites.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This doesn't actually change the behaviour with current Rust. But it
avoids bugs and future changes. Relying on drop order for temporary
directory lifetime seems bad.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
And export the type, so callers don't need to depend directly on
fslock_guard; many callers will need to own the returned value, not do
anything else with it.
|
| |/ / |
|
| |\ \
| | |
| | |
| | |
| | | |
Fix nightly clippy warnings
See merge request tpo/core/arti!1942
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Without this we might end up with a mixture of new file and previous
wreckage.
If this were released code I would think about treating this as a
security issue.
Prompted by clippy.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Prompted by clippy.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
Prompted by clippy complaining that the content wasn't ever read other
than by the autogenerated Debug impl.
|
| |\ \ \
| |_|/
|/| |
| | |
| | | |
CI: Run coverage test on bigger runners
See merge request tpo/core/arti!1944
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is starting to get SIGKILL during linking. Lack of memory,
presumably.
@anarcat suggests we should run this on bigger runners, and that this
could be achieved by applying the `tpa` tag.
CC @trinity-1686a
See also !1943.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Clean up, tune, and correct various parameters related to introduction points.
Closes #1210
See merge request tpo/core/arti!1924
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
(Also, correct the comments that describe them.)
We may as well match the spec names when they aren't completely
bogus.
We are already renaming these parameters for this release, so it
isn't an additional breaking change.
|
| | | |
| | |
| | |
| | | |
See #1210 "question 4".
|
| | | |
| | |
| | |
| | | |
See discussion at #1210, "question 5".
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
Part of #1210.
These values are not necessarily the cleverest possible, but they
match the C implementation. We can tune them if we need to.
|