Skip to content
This repository has been archived by the owner on Jan 5, 2024. It is now read-only.

Implement proxy v2 architecture, in Rust #127

Closed
wants to merge 12 commits into from
Closed

Implement proxy v2 architecture, in Rust #127

wants to merge 12 commits into from

Commits on Nov 16, 2023

  1. Configuration menu
    Copy the full SHA
    dca4722 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2023

  1. docs: fix heading hierarchy

    cfm committed Nov 17, 2023
    Configuration menu
    Copy the full SHA
    2e1a7a9 View commit details
    Browse the repository at this point in the history
  2. docs: make security properties explicit

    Co-authored-by: Kunal Mehta <[email protected]>
    cfm and legoktm committed Nov 17, 2023
    Configuration menu
    Copy the full SHA
    61305c1 View commit details
    Browse the repository at this point in the history
  3. WIP: Rewrite in Rust, with proxy v2 behavior

    Co-authored-by: Kunal Mehta <[email protected]>
    cfm and legoktm committed Nov 17, 2023
    Configuration menu
    Copy the full SHA
    c38a2da View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5daad51 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2023

  1. Configuration menu
    Copy the full SHA
    3455544 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8fcc5ac View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2023

  1. [WIP] feat: explicitly check origin after parsing

    We care about the preservation of the entire configured origin tuple
    (scheme, host, port), not just the hostname.[1]  However, there is a
    tension in considering whether this check is valuable:
    
    1. On the one hand, as @legoktm has pointed out, if Url::parse() is
       compromised, why should we trust the result of Url::Url.origin()?
    
    2. On the other hand, as Daniel Stenberg has documented, "mixing parsers
       is considered a security risk".[2]
    
    [1]: https://url.spec.whatwg.org/#origin
    
    [2]: https://daniel.haxx.se/blog/2022/01/10/dont-mix-url-parsers/
    cfm committed Nov 27, 2023
    Configuration menu
    Copy the full SHA
    0dbd91d View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2023

  1. Return ExitCode instead of using process::exit()

    `process::exit()` immediately terminates with the given exit code,
    meaning that no destructors are run. For our purposes it shouldn't
    matter much, but let's exit the graceful way.
    legoktm committed Dec 4, 2023
    Configuration menu
    Copy the full SHA
    cfafa90 View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2023

  1. Test Rust proxy

    Rewrite the existing tests to be integration tests against a compiled
    Rust binary. We use the httpbin library to start up a Python webserver
    and instruct the proxy to connect to it. This allows to test connection
    properties that aren't recordable in the VCR format, like timeouts or
    streamed responses.
    
    The tests are reorganized to be split into proxy handling and error
    handling.
    legoktm committed Dec 5, 2023
    Configuration menu
    Copy the full SHA
    10c80ac View commit details
    Browse the repository at this point in the history
  2. WIP: Add Rust CI

    And remove the Python CI. We still need to set up cargo-audit and
    cargo-vet jobs.
    legoktm committed Dec 5, 2023
    Configuration menu
    Copy the full SHA
    b2279fd View commit details
    Browse the repository at this point in the history

Commits on Dec 11, 2023

  1. Configuration menu
    Copy the full SHA
    6ad5296 View commit details
    Browse the repository at this point in the history