Skip to content

Releases: wi1dcard/fingerproxy

v0.3.0

18 Mar 02:30
Compare
Choose a tag to compare

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.

v0.2.0

22 Feb 08:46
Compare
Choose a tag to compare

dd7909d (HEAD, tag: v0.2.0, origin/master) Organize global vars.
61a6455 Move a few vars to const.
27c481d Refactor DefaultReverseProxyHTTPHandler to allow customization (#1)
8f51e92 Return user-agent in echo-server.
36c6ec9 Support JSON output in echo-server.
3f1f249 Keep -x shell option only in gencert.sh for older bash.
6fc41e5 Use bash for gencert.sh.
9f94498 Add example/echo-server.
4abe4a8 Update sync script in README.md.

v0.1.0

17 Feb 11:35
Compare
Choose a tag to compare

3d65e76 (HEAD, tag: v0.1.0, origin/master) Update license.
9fdb895 Implement forked http2.
4c294c7 Sync http2 package from golang x/net.
1be055b Add license.
98fbaeb Init open source.