| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
rpc: Document what is actually going on with stream optimism.
Closes #1583
See merge request tpo/core/arti!2753
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Our documentation had dated to an older version of our RPC stream
code, where all streams were automatically optimistic.
But as explained, our use of "optimistic"ness in RPC stream code is
now purely internal, to make it possible to get an DataStreamCtrl.
This isn't user-visible in our rpc_conn_open_stream code.
Closes #1583
|
| |/ |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
I hope that this limitation is acceptable;
the alternative involves some significant refactoring to give
Request a Weak reference to RpcConn -- but RpcConn isn't currently
kept in an Arc<> at all, and so we'd need some fairly heavy hacking.
|
| | |
|
| |
|
|
|
|
|
| |
This will help us keep track of whether we are using the pinned-to
version of cbindgen.
Closes #1772.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Expose ArtiRpcConnBuilder and appropriate C wrapper functions in
our FFI code, and wrap those functions in our python wrapper.
This breaks the old C API, but that's allowed since the API
is still experimental.
Some design decisions:
* I've wrapped the builder in a Mutex, so that we can continue
our FFI rule that we do not require non-Rust code to wrap `&mut`.
* I've removed the non-builder connect() function from the C API
as extraneous.
* I've made a single function to prepend elements to the search
path.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Now that prop351 is what Arti speaks, it's what the rpclib
needs to provide.
Note one change in particular: the `isolation` string
is no longer an optional argument when opening a stream.
(With prop351, there is no longer such a thing as an "absent"
isolation string, and we don't want to imply that there is a
difference between None and "".)
|
| | |
|
| | |
|
| |
|
|
|
| |
There's a blocking TODO here about exposing socks error codes that
I still need to solve.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
(This function manipulates an ArtiRpcStatus;
and we try to have all of the ffi functions in this library
begin with "arti_rpc_".)
|
| | |
|
| |
|
|
|
| |
This API allows the caller to launch a request and then watch for
updates on it.
|
| | |
|
| |
|
|
| |
(This is kind of thing that the CI script should remind us to do.)
|
| | |
|
| | |
|
| |
|
|
| |
In brief: Everything now starts with ARTI_RPC, arti_rpc, or ArtiRpc.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These documents are no longer called "safety". They are now mostly
collected as a big list of "correctness requirements" at the start
of the cbindgen header. Because of these requirements, most
functions no longer need their own "safety" sections.
I am explicitly using `#[allow(clippy::missing_safety_doc)]` on each
function, rather than adding a blanket exception:
- There are other unsafe functions in this code, to which we
wouldn't want an exception to apply.
- Documenting the safety^W correctness requirements of a function
is important enough to make sure that we aren't skipping out on
it unintentionally.
|
| |
|
|
|
|
|
|
| |
Per discussion, we'd rather have an optional output parameter for error
objects rather than mess with thread-local variables.
This is possibly less convenient for direct usage from C,
but likely more convenient for wrapper functions in other languages.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
In this API, borrowed strings are `const char *`, and owned strings
are `ArtiRpcStr *`. You can get the former from the latter with
`arti_rpc_str_get()`, which returns a `const char *` in hopes that
you will neither modify nor free() that `const char *`
(Note that there are no places where string ownership needs to be
passed into this library; and at present, there is only one case
where it is passed out. I do not anticipate that we will need to do
intake of owned strings. We will probably need to return these in a
few more cases as we add more API surface.)
|
| | |
|
| | |
|
| | |
|
| | |
|
|
|
This is a bit complicated since:
- Using cbindgen with macro expansion requires a nightly rust:
so, we have to look for one.
- There are some cbindgen warnings which I cannot find any way to
suppress, so instead of giving all warnings, it seems better to
give a diff from the old list of warnings to the new list.
|