| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
| |
These lints force us to declare our exported enums and
exhaustive-looking structs as non-exhaustive (so that we can add to
them in the future without breaking our API) or to explicitly
disable the warning for a given enum/struct (to say that we _intend_
for additions to be a breaking change).
|
| |
|
|
|
| |
To be valid, a lifetime must have valid_after < fresh_until <
valid_until.
|
| |
|
|
|
|
| |
I am about 99% sure this is safe: the pointer that this type
contains is never dereferenced, and is only compared to the bounds
of a string later on.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously our "read a bunch of this kind of document" functions had
a common problem, where they could get into an infinite loop if the
underlying "read this kind of document" function failed without
consuming any tokens.
I _think_ that this error case was unreachable (or else fuzzing
would have found it, right?), but proving that it was unreachable
was a bit fiddly, and I couldn't follow my own arguments about it.
Instead, we just store the position of the reader before we start
reading, and make sure that it has consumed at least some data. If
it hasn't, then we consume and drop a token before advancing to the
next document.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
This change just gives them a more logical breakdown into parsing,
documents, and misc other types.
|
| | |
|
| |
|
|
|
| |
Now these types are parsed and returned wrapped inside a checkable
object.
|
| |
|
|
|
| |
There's more to do here, and things to refactor, but this ought to
be enough to get a rudimentary client working.
|
| |
|
|
|
| |
Additionally, move and refactor related types to reduce friction for
microdescriptor parsing implementation.
|
| | |
|
| |
|
|
|
| |
Having byte-level positions means we don't need to complain about
particular arguments.
|
| | |
|
| |
|
|
| |
We use this type a lot, so let's give it a short name.
|
| |
|
|
|
| |
Astonishingly, this is safe, though I wish that it were impossible
to use mismatched strings.
|
| | |
|
| | |
|
| | |
|
| | |
|
|
|
Arti is a rust tor implementation. It's project I've been working
on for a few months now, in weekends and in spare time. It doesn't
speak the tor protocol yet, and it doesn't connect to the network at
all.
It needs much more documentation and testing, but I'm just about
ready to show it to others. See the README.md for a description of
what is there and what isn't.
|