Skip to content

v0.3.0

Compare
Choose a tag to compare
@github-actions github-actions released this 18 Mar 02:30
· 29 commits to master since this release

This release introduced a few new features, some bug fixes, and one breaking change. Performance, tests, and error handling has been signaficantly improved.

Notable changes listed below.

Breaking Change

In commit 78b2ab0, variable fingerproxy.DefaultReverseProxyHTTPHandler has been renamed to fingerproxy.GetReverseProxyHTTPHandler. Now fingerproxy.DefaultReverseProxyHTTPHandler is a function instead of a variable. The default value of GetReverseProxyHTTPHandler is DefaultReverseProxyHTTPHandler.

Kubernetes Liveness Probe

Commit 480707b introduced support of Kubernetes Readiness and Liveness probes. Example:

apiVersion: v1
kind: Pod
metadata:
  name: fingerproxy
spec:
  containers:
  - name: fingerproxy
    image: fingerproxy
    livenessProbe:
      httpGet:
        path: /
        port: 443
        scheme: https

It is possible to use your prober as well. Check out HTTPHandler.IsProbeRequest.

Debug Server (pprof)

Build with tag debug to enable the debug server.

Handle Plain HTTP Requests

Fingerproxy now returns a HTTP 400 Bad Request if clients send plain HTTP requests before closing the connection.

TLS Handshake Timeout

TLS handshakes now has a default timeout of 10 seconds.

JA4 Fixes

89a31de Fixed non-ascii ALPN.
f095b8d Fixed "extension data should not be empty" while parsing pre_shard_key extension.

CI tests

Many tests have been added in CI to improve observability and prevent possible memory leak. Check out GitHub Actions.

Full Change Log

390ff19 (HEAD, tag: v0.3.0, origin/master) Add tests for reverseproxy.
480707b Add support for Kubernetes liveness/readiness probes.
4c307fa Improve e2e memtest.
a047cc8 Fix CI build-test-deps.
7a5a318 Add /fingerproxy to .gitignore.
1ff645f Add e2e memtest.
05f964d Improve CI tests.
25160f9 Add todo customize transport.
78b2ab0 Breaking change: rename DefaultReverseProxyHTTPHandler to GetReverseProxyHTTPHandler.
2809a6c Move verbose print client hello data to proxyserver.
a3cd1f2 Run e2e test with fingerproxy, not echo server.
3504cc0 Add JA4 benchmark.
2d8c796 Add CI load test. (#4)
7dca465 Fix echo server didn't return after error.
b243ddb Improve hijack error handling.
633573e Do not return incomplete ClientHello.
d061743 Refactor capture ClientHello to reduce memcopy and support TLSHandshakeTimeout.
3e45a0b Update vlogf.
2c33d47 Cleanup TODO.
38a0a0b Verbose log client hello in header injector.
bcf6363 Print raw ClientHello record in echo server.
5e21a19 Improve HTTP/1.1 server error handling.
df09abd Separate CI "release" workflow.
a1831f9 Add e2e test. (#3)
08b4ce3 Improve channel listener.
a1266ef Improve JA4 tests.
89a31de Fix non-ascii ALPN.
b05eecb Fix CI test. (#2)
a22cdda CI test.
f095b8d Fix "extension data should not be empty" while parsing pre_shard_key extension.