| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | |
| | | |
| | | |
| | | | |
Fixes: tpo/core/arti#1507.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
osxcross tries in various ways to detect which version of the compiler
we have, which version of the OS, which C++ standard library we use, and
many other things. With this variable set, osxcross seems able to detect
the environment provided by the SDK that we use.
The error messages from osxcross is as follows:
osxcross: error: cannot find libc++ headers
osxcross: error: while detecting target
This origins from its internal target detection code in target.cpp of
osxcross. This file contains a signficant amount of the detection for
paths of different versions of the macOS SDK's and macOS versions. All
of this is truly cursed.
In osxcross's main.cpp, the variable is read in:
if (char *p = getenv("MACOSX_DEPLOYMENT_TARGET")) {
target.OSNum = parseOSVersion(p);
unsetenv("MACOSX_DEPLOYMENT_TARGET");
}
and setting it thus forces the OS version to be parsed from the variable
instead of its (in our case failed) attempt at detecting the version
itself.
Fixes: tpo/core/arti#1394
|
| |\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | | |
Move stream_peek into tor-async-utils
See merge request tpo/core/arti!2357
|
| |/ / / |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
arti-client: Add an InertTorClient for accessing client state.
Closes #1496
See merge request tpo/core/arti!2370
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This sets `COLUMNS` to a large value to prevent line wrapping.
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2370#note_3067346
Closes #1574
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2370#note_3066621
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These file paths occupy more than 2 lines on some platforms.
See also the motivation behind 2b8a7a196b3ea5cd8350dd77f5e5120fed8521e0
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This allows us to reenable the `arti hsc` tests, which were previously
disabled due to flakiness (see #1496).
The `help` test bit rotted a bit, so I had to tweak its expected output.
Closes #1496
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Implements the `TorClientThatIsntRunning` mentioned in !2314 (see also
`doc/dev/notes/keymgr-porcelain.md`), except `TorClientThatIsntRunning`
is called `InertTorClient`.
This commit is mostly code motion: I've moved the `create_keymgr`
function and the impls of `generate_service_discovery_key` and
`get_service_discovery_key` from `TorClient` to `InertTorClient`.
The `InertTorClient` advertises itself as a handle for accessing the
keystores and other persistent state, but it currently only has 2
functions (`generate_service_discovery_key` and
`get_service_discovery_key`). I expect it will grow additional
functionality in the future.
|
| |/ / /
| | |
| | |
| | |
| | | |
I am about to use `state_dir()` outside of `TorClient`, so I am
preemptively moving it to `TorClientConfig`.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
extract tor_async_utils::oneshot into ::oneshot-fused-workaround
See merge request tpo/core/arti!2371
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Now that `oneshot-fused-workaround` is its own crate, `tor-rtmock` doesn't need
`tor-async-utils`.
|
| |/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Having this in the `tor-async-utils` crate prevents us from doing both
of the following without introducing a circular dependency:
* using it in `tor-rtmock` (which we currently do, particularly in
tests).
* using `tor-rtmock` to test things in `tor-async-utils`. We don't do
this yet, but it is generally sensible to do so. In particular we
want to move the `stream_peak` module there, which is currently tested
with `tor-rtmock`.
Moving this into its own crate avoids this circular dependency.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
RPC: Add experimental method to list SOCKS proxy addresses.
Closes #1523
See merge request tpo/core/arti!2359
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
(This is a bit trickier than I would like, but it ensures that we
never return a "not initialized yet" code.)
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We'll need this for our rpc-library code to meaningfully open SOCKS
connections.
Closes #1523.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This type exists in the `arti` crate. It wraps and delegates to
`arti_rpcserver::RpcSession`. Subsequent commits will use it to
expose information from the `arti` crate to the RPC system; right
now it does nothing.
|
| | | | | |
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-hsservice: Fix publisher config watching bug
See merge request tpo/core/arti!2369
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This ensures that if a directory used as a `key_dir` is moved (e.g.
renamed), and then moved back to its original location (the one
specified in `key_dirs`), our watcher continues watching the `key_dirs`
contents.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
`FileWatcher::watch_file` can be used with arbitrary paths.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This ensures that if a `key_dir` is created after we start watching it
(or if it's moved), we are still able to detect changes.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
While this means we will be recreating the watcher slightly more often
than necessary, this new approach is less error-prone than what we had
before.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Discourage use of `tor_rtmock_test_with_*` macros
See merge request tpo/core/arti!2372
|
| | | |/ / /
| |/| | |
| | | | |
| | | | | |
New tests should usually use tor_rtmock::MockRuntime.
|
| |\ \ \ \ \
| |/ / / /
|/| | | |
| | | | |
| | | | | |
tor-proto::circuit: remove some obsolete "limitations" comments
See merge request tpo/core/arti!2366
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
There is now (sendme-style) flow control, and some fairness
(via round robin scheduling of streams).
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
There is a mutex for some of the "mutable state", but the reactor only
needs to lock it when adding a hop. It's not needed "to process a cell"
or when streams send. Probably not worth calling out here.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
rpclib, ffi: Allow simultaneous calls to `arti_rpc_handle_wait()`
Closes #1532
See merge request tpo/core/arti!2360
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Its underlying function previously took `&mut RpcHandle`,
which was an accident waiting to happen. Now it takes `&RpcHandle`
and includes a Mutex to prevent multiple threads from waiting for
updates on the same request ID at once.
As an alternative, we *could* try to update connimpl::Receiver to
allow multiple simultaneous listeners on the same request ID.
But that would (I think) require a lot more bookkeeping, and thus
would be a bit more error-prone.
Closes #1532.
|
| |\ \ \ \ \ \
| |/ / / / /
|/| | | | |
| | | | | |
| | | | | | |
Preliminaries for moving stream-peek into tor-async-utils
See merge request tpo/core/arti!2362
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| |/ / / / / |
|
| |\ \ \ \ \
| |_|/ / /
|/| | | |
| | | | |
| | | | | |
Move Qty to tor-basic-utils as ByteQty and significantly improve it
See merge request tpo/core/arti!2363
|