summaryrefslogtreecommitdiff
path: root/crates/tor-socksproto/src
Commit message (Collapse)AuthorAgeFilesLines
* tor-bytes: Rename Truncated to Incomplete, and restore old Truncated as ↵Ian Jackson2024-09-113-3/+9
| | | | | | | | | deprecated Incomplete is a better name. This lets us use Truncated for the old, deprecated, conflation of "Incomplete" with what is now "MissingData".
* tor-bytes: Add a Reader constructor for tor-socksproto's use caseIan Jackson2024-09-112-8/+8
| | | | | | | Here we add the constructor, and document it, and change the call sites. No functional change yet.
* tor-bytes: Add a deficit field to Error::TruncatedIan Jackson2024-09-103-3/+3
| | | | This will allow us to fix #1592, but it doesn't do so yet.
* socksproto: Add a const for suggested buffer length.Nick Mathewson2024-09-091-0/+6
| | | | | Ticket #1509 will probably get rid of this constant, but for now we may as well put it in one place.
* rpclib: Support opening a data stream.Nick Mathewson2024-09-091-1/+2
| | | | | | Requires #1523. Implements #1524.
* Re-run maint/add_warning.Nick Mathewson2024-05-061-2/+2
| | | | This commit is automatically generated.
* Run maint/add_warning.Nick Mathewson2024-03-134-0/+4
|
* deny clippy::unchecked_duration_subtractiontrinity-1686a2024-02-291-0/+1
|
* Run maint/add_warning to add lint block everywhereIan Jackson2023-08-234-0/+4
|
* Run add_warnings on all files.Nick Mathewson2023-08-041-2/+2
|
* Run maint/add_warning to actually apply new lint allowsIan Jackson2023-07-105-0/+5
|
* Run add_warning to remove `missing_panics_doc` deny.Nick Mathewson2023-07-061-1/+0
| | | | Closes #950.
* Merge branch 'socks_errorkinds' into 'main'Nick Mathewson2023-06-221-0/+8
|\ | | | | | | | | | | | | Generate correct-ish socks5 errors for onion service errors. Closes #736 See merge request tpo/core/arti!1279
| * socksproto: Add unspecified but documented socks5 extension codesNick Mathewson2023-06-221-0/+8
| |
* | lints: Run maint/add_warning to actually apply new lintsIan Jackson2023-06-211-0/+2
|/
* s/ProtocolFailed/ProtocolViolation/g where possibleNeel Chauhan2023-04-081-1/+1
|
* Change tor_bytes::Error::BadMessage to a Cow.Nick Mathewson2023-02-092-4/+6
| | | | | | | | | | Actually, to avoid making a breaking change, I'm deprecating BadMessage and creating a new InvalidMessage variant that takes a Cow. This way I don't need to track every crate that re-exposes tor_bytes::Error and call this a breaking change in those. Making this change will allow tor_bytes errors to be much more helpful.
* Allow clippy::unchecked_duration_subtraction in testsNick Mathewson2023-01-274-0/+4
| | | | | This panics on error, and we're fine with a panic on misbehavior in tests.
* Disable clippy::unlinlined-format-argsNick Mathewson2023-01-271-0/+1
| | | | | | | | This warning kind of snuck up on us! (See #748) For now, let's disable it. (I've cleaned it up in a couple of examples, since those are meant to be more idiomatic and user-facing.) Closes #748.
* Prop304: Add extended SOCKS result codes for onion servicesNeel Chauhan2023-01-181-0/+12
|
* test lint blocks: Add many many automaticallyIan Jackson2022-12-122-0/+16
| | | | | This is precisely the result of running the rune in maint/adhoc-add-lint-blocks.
* test lint blocks: Standardise one in tor-socksprotoIan Jackson2022-12-121-2/+2
| | | | | The previous syntax was recognised by the real script, but not by the ad-hoc script I'm about to use to add all the missing ones.
* Run add_warnings.Nick Mathewson2022-11-031-0/+1
|
* socksproto: Make a method conditional.Nick Mathewson2022-10-201-0/+1
|
* socksproto: impl Clone for Error.Nick Mathewson2022-10-201-1/+1
|
* cargo fmt to remove blank linesIan Jackson2022-10-121-1/+0
| | | | | | | Apparently cargo fmt doesn't like these, which my perl rune didn't delete. This commit is precisely the result of `cargo fmt`.
* Replace all README copies in src/lib.rs with includesIan Jackson2022-10-121-57/+1
| | | | | | | | The feature we want is `#[doc = include_str!("README.md")]`, which is stable since 1.54 and our MSRV is now 1.56. This commit is precisely the result of the following Perl rune: perl -i~ -0777 -pe 's{(^//!(?!.*\@\@).*\n)+}{#![doc = include_str!("../README.md")]\n}m' crates/*/src/lib.rs
* Allow "clippy::single_char_pattern" in tests.Ian Jackson2022-10-122-0/+2
| | | | | | | This lint exists for perf reasons, and this is rarely relevant in tests. Using double quoted str is generally cognitively less burdensome.
* Make some things precisely conditionalIan Jackson2022-10-111-1/+6
| | | | | | | I think this is quite an inconvenient way to be carrying on. Maybe we should disable all dead code warnings unless all features are also enabled, and just let the compiler get rid of unused stuff later.
* Move generate_* methods in socks client impl.Nick Mathewson2022-10-031-34/+38
|
* Require no NUL in socks hostname.Nick Mathewson2022-10-031-0/+6
|
* Tweak "handshake" docs.Nick Mathewson2022-10-032-4/+12
| | | | | Per a suggestion from Diziet, clarify that the socks handshake code only wants you to drain your buffers when it tells you to.
* Add a SocksReply type to capture address/port information.Nick Mathewson2022-10-034-24/+87
| | | | | I don't expect us to need this information much, but we may as well hang on to it.
* Make sure that socks4 auth doesn't have any 0 bytes.Nick Mathewson2022-10-031-16/+44
| | | | | Try to do it in constant time, to avoid even the smell of side-channel attacks.
* Tests for socks client handshake.Nick Mathewson2022-10-033-0/+279
| | | | | | These tests include a few reference cases, as well as a little framework to make sure that the client and the proxy implementation will handshake with one another successfully.
* Bug fix: report empty SOCKS4 auth as "no auth".Nick Mathewson2022-10-031-2/+6
| | | | | Previously we would report it as authenticating using the empty string.
* Fuzzer code for socks client implementation.Nick Mathewson2022-10-031-1/+50
|
* Implement client-side SOCKS handshakeNick Mathewson2022-09-286-7/+320
|
* Make "SocksRequest::new" public.Nick Mathewson2022-09-271-1/+17
| | | | Also, have it enforce more correctness properties.
* socksproto: Rename SocksHandshake to SocksProxyHandshake.Nick Mathewson2022-09-273-521/+540
| | | | | | | | Retain "SocksHandshake" as a deprecated synonym. Also, make an (on-by-default) feature for SocksProxyHandshake. (There is about to be a SocksClientHandshake as well.)
* enable doc_auto_cfg feature on every crate when documenting for docs.rstrinity-1686a2022-08-241-0/+1
|
* socksproto: Use fallible writers.Nick Mathewson2022-07-111-16/+19
| | | | Also, make private a function that had formerly been `pub`.
* Convert each write_onto_infallible implementation into write_onto.Nick Mathewson2022-07-111-2/+3
|
* Rename "write" methods on tor-bytes to "write_infallible".Nick Mathewson2022-07-111-7/+7
| | | | | | | | | | | | | | | This comprises four renames: ``` write_onto -> write_onto_infallible write_into -> write_into_infallible write -> write_infallible writer_and_consume -> write_and_consume_infallible. ``` The rest of this branch will be concerned with replacing these `_infallible` methods with ones that return a `Result`. This is part of #513.
* Run maint/add_warning crates/*/src/{lib,main}.rsIan Jackson2022-06-231-0/+3
| | | | Update all lint blocks
* tor-socksproto: Style and info fixes in errors.Nick Mathewson2022-06-223-9/+15
| | | | | (The use of Cow<> in the error message isn't strictly necessary here, but it's a pattern I want to encourage.)
* lints: Add let_unit_value allow to all cratesIan Jackson2022-05-311-0/+1
| | | | | From running add_warning, with manual picking of the right hunks/lines.
* lints: Add lint block delimiters to every crateIan Jackson2022-05-311-0/+2
| | | | | | This was the result of: maint/add_warning crates/*/src/{lib,main}.rs and then manually curating the results.
* Resolve the new `derive_partial_eq_without_eq` lint.Nick Mathewson2022-05-231-1/+1
| | | | It's a little overzealous sometimes, but it's mostly to the good.
* squash! Bump every crate's edition to 2021.Nick Mathewson2022-04-252-3/+0
| | | | | Remove all `use` statements for `TryFrom` and `TryInto`. These are now redundant in Rust 2021.