Skip to content

Releases: saucelabs/forwarder

v1.4.0

06 Dec 15:26
Compare
Choose a tag to compare

What's Changed

  • net: change dial t/o to 25s by @mmatczuk in #881
  • martian: fix link name by @mmatczuk in #884
  • tls: if TLSClientConfig.Insecure is set use all cipher suites by @mmatczuk in #892
  • linkname: remove usage of net.lookupStaticHost by @mmatczuk in #899
  • log: run test only in unix by @mmatczuk in #893
  • Refactor osdns to avoid using custom linker flags in common situations by @mmatczuk in #903
  • net: fix addr2Host for backwards compatibility with isLocalhost() by @mmatczuk in #906
  • Add --connect-to flag that allows to change dial target by @mmatczuk in #905
  • martian: extract common code of proxyConn.handleConnectRequest() and proxyHandler.handleConnectRequest() to a function by @mmatczuk in #908
  • log/stdlog: allow to pass options when creating a sublogger by @budziam in #913
  • http_proxy_errors: improve tls errors handling by @Choraden in #910
  • Support for PROXY protocol v1 and v2 by @mmatczuk in #920
  • chore(proxyproto) add v2 tests by @mmatczuk in #922
  • chore(proxyproto/testdata): fix import path by @mmatczuk in #923
  • bind: fix passing default value for --dns-server flag by @Choraden in #929
  • martian: log with request ctx in h2writer by @Choraden in #934
  • bind: rename proxy-protocol-enabled to proxy-protocol-listener flag by @mmatczuk in #935
  • martian(test): implement testHelper pattern by @Choraden in #939
  • martian: move TLS handshake from forwarder.Listener by @Choraden in #941
  • e2e: enable goleak check by @Choraden in #909
  • conntrack: add connection tracker wrapper based on connfu by @mmatczuk in #943
  • net: conntrack improvements by @mmatczuk in #946
  • net: add TrackTraffic knob to Listener by @mmatczuk in #947
  • chore: extract listener config by @mmatczuk in #948
  • http proxy: allow multiple listeners by @mmatczuk in #949
  • Fix connect response that prevented proper working of websockets in FireFox by @mmatczuk in
  • http proxy: make isLocalhost() case insensitive by @mmatczuk in #961
  • chore: bump go version by @mmatczuk in #962
  • Do not close client connection after returning HTTP status code 304 by @mmatczuk in #963
  • net: use KeepAliveConfig from standard net package by @Choraden in #965
  • martian(mitm): fix connect error response propagation by @mmatczuk in #966
  • On shutdown try to drain connections for 30s and close them by @mmatczuk in #967
  • Fix local/browser and add mk targets for profiling by @mmatczuk in #968
  • docs: move website to opensource.saucelabs.com/forwarder/ by @mmatczuk in #969
  • mitm: LRU cache for certificates by @mmatczuk in #971
  • metrics: connections use active instead of closed by @mmatczuk in #972
  • martian: enable gosec, errcheck and bodyclose linters by @mmatczuk in #973
  • martian/header: optimized ViaModifier implementation by @mmatczuk in #974
  • middleware(prometheus): use summaries instead of histograms by @mmatczuk in #975
  • bench/gnet: scripts to run wrk against gnet http server over proxy by @mmatczuk in #980
  • net: dial retries by @mmatczuk in #981

New Contributors

Full Changelog: v1.3.2...v1.4.0

v1.3.2

05 Aug 10:56
Compare
Choose a tag to compare

What's Changed

  • log: reopen disk files on SIGHUP by @mmatczuk in #848
  • log: add reopen to API by @mmatczuk in #849
  • build(deps): bump github.com/prometheus/common from 0.54.0 to 0.55.0 by @dependabot in #850
  • build(deps): bump golang.org/x/sys from 0.21.0 to 0.22.0 by @dependabot in #853
  • build(deps): bump google.golang.org/grpc from 1.64.0 to 1.65.0 by @dependabot in #852
  • Add support for SSLKEYLOGFILE by @mmatczuk in #855
  • build(deps): bump golang.org/x/net from 0.26.0 to 0.27.0 by @dependabot in #858
  • bind: refactor osFileFlag to FileFlag by @mmatczuk in #859
  • docs: document SSLKEYLOGFILE by @mmatczuk in #857
  • Fix file flag handling by @mmatczuk in #860
  • utils/cobrautil: add functional options to BindAll() to allow Viper customization by @mmatczuk in #861
  • chore(bind): make log-file flag redact function permanent by @mmatczuk in #862
  • utils/compose: initial support for data containers by @mmatczuk in #863
  • utils/cobrautil: FlagsDescriber change field ShowNotChanged to ShowChangedOnly by @mmatczuk in #864
  • Fix content length in CONNECT requests and responses by @mmatczuk in #866
  • chore(utils/httpbin): make delay return 200 on contex cancel explicit by @mmatczuk in #867
  • martian: add not nil header in newConnectResponse() by @mmatczuk in #868
  • martian: fix half-close propagation downstream when using http2 handler by @mmatczuk in #870
  • martian(mitm): use newConnectResponse() by @mmatczuk in #871
  • Fix reading api-address from config file in container by @mmatczuk in #874

Full Changelog: v1.3.1...v1.3.2

v1.3.1

18 Jun 10:38
Compare
Choose a tag to compare

What's Changed

  • build(deps): bump google.golang.org/protobuf from 1.34.1 to 1.34.2 by @dependabot in #843
  • e2e: fix invalid ip range by @Choraden in #846
  • build(deps): bump github.com/spf13/cobra from 1.8.0 to 1.8.1 by @dependabot in #845
  • build(deps): bump github.com/gorilla/websocket from 1.5.2 to 1.5.3 by @dependabot in #844
  • log: revert log level to int by @Choraden in #847

Full Changelog: v1.3.0...v1.3.1

v1.3.0

11 Jun 10:02
Compare
Choose a tag to compare

What's Changed

  • docs(monitoring): remove info about --prom-namespace flag by @Choraden in #760
  • chore: bump Go version to 1.22.2 by @mmatczuk in #771
  • build(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 by @dependabot in #769
  • build(deps): bump github.com/prometheus/client_model from 0.6.0 to 0.6.1 by @dependabot in #768
  • Parallel e2e tests by @mmatczuk in #765
  • build(deps): bump github.com/prometheus/common from 0.51.1 to 0.52.2 by @dependabot in #766
  • build(deps): bump golang.org/x/net from 0.23.0 to 0.24.0 by @dependabot in #774
  • build(deps): bump golang.org/x/sync from 0.6.0 to 0.7.0 by @dependabot in #776
  • local/linux: migrate to makefile by @Choraden in #773
  • utils/cobrautil/templates: print help and usage to stdout by @Choraden in #777
  • systemd: restrict permissions by @Choraden in #778
  • fix e2e DNS issues and increase parallelism level by default by @mmatczuk in #772
  • build(deps): bump google.golang.org/grpc from 1.62.1 to 1.63.2 by @dependabot in #779
  • build(deps): bump github.com/prometheus/common from 0.52.2 to 0.52.3 by @dependabot in #780
  • ratelimit: invert read and write limits by @Choraden in #783
  • dialvia(socks5): support context dialing by @Choraden in #784
  • build(deps): bump github.com/prometheus/common from 0.52.3 to 0.53.0 by @dependabot in #785
  • bind: fix --proxy flag usage by @Choraden in #786
  • e2e: podman-compose compatibility by @mmatczuk in #788
  • http_proxy: remove ambiguity in connect headers configuration by @Choraden in #787
  • local/monitoring: add http req res size graphs by @Choraden in #790
  • dialvia: add connect timeout by @Choraden in #789
  • martian/header(via): close looped request by @Choraden in #792
  • e2e: cpuset per service by @mmatczuk in #791
  • build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.0 by @dependabot in #793
  • martian: strip X-Martian-Terminate-TLS before connecting by @Choraden in #794
  • martian(header): do not add X-Forwarded headers for CONNECT requests by @mmatczuk in #795
  • e2e: change static IPs in dns test by @Choraden in #799
  • build(deps): bump golang.org/x/text from 0.14.0 to 0.15.0 by @dependabot in #798
  • build(deps): bump golang.org/x/sys from 0.19.0 to 0.20.0 by @dependabot in #797
  • build(deps): bump golang.org/x/net from 0.24.0 to 0.25.0 by @dependabot in #801
  • build(deps): bump google.golang.org/protobuf from 1.34.0 to 1.34.1 by @dependabot in #802
  • chore: bump go version to 1.22.3 by @mmatczuk in #803
  • build(deps): bump github.com/prometheus/client_golang from 1.19.0 to 1.19.1 by @dependabot in #804
  • e2e(mk): export compose project name in all targets by @Choraden in #805
  • docs: extend log-http flag docs and better explain syntax of flags supporting multiple data sources by @mmatczuk in #807
  • martian: fix CONNECTs content length by @Choraden in #808
  • golangci: silence grpc.Dial deprecated error by @Choraden in #809
  • build(deps): bump google.golang.org/grpc from 1.63.2 to 1.64.0 by @dependabot in #806
  • chore: simplify generating metrics docs by @mmatczuk in #810
  • martian: support server sent events without chunked encoding by @Choraden in #812
  • chord: fix code block rendering in help and yaml help by @mmatczuk in #815
  • utils/cobrautil/templates: change
    to

    for new paragraph by @mmatczuk in #816

  • chore: fix rendering code-block in markdown by @mmatczuk in #817
  • martian(mitm): support CONNECT over HTTP 1.0 by @mmatczuk in #814
  • bind: improve header flag usage with tags by @Choraden in #822
  • build(deps): bump github.com/spf13/viper from 1.18.2 to 1.19.0 by @dependabot in #823
  • martian: support iterating over not interfaceable fields in asCloseWriter() by @mmatczuk in #824
  • build(deps): bump github.com/prometheus/common from 0.53.0 to 0.54.0 by @dependabot in #826
  • chore: bump Go version to 1.22.4 by @mmatczuk in #827
  • build(deps): bump golang.org/x/text from 0.15.0 to 0.16.0 by @dependabot in #829
  • build(deps): bump golang.org/x/sys from 0.20.0 to 0.21.0 by @dependabot in #831
  • build(deps): bump golang.org/x/net from 0.25.0 to 0.26.0 by @dependabot in #830
  • goreleaser: add winget by @mmatczuk in #825
  • martian: extend round trip error log by @mmatczuk in #828
  • contribution: cleanse the doc from false statements by @Choraden in #839
  • build(deps): bump github.com/gorilla/websocket from 1.5.0 to 1.5.2 by @dependabot in #840
  • bind: fix httplogFlag default value in help by @Choraden in #837
  • log: change level type to string by @Choraden in #838
  • martian: refactor copySync() for easier bidirectional copying by @mmatczuk in #841
  • middleware(prom): add customizable label for http metrics by @Choraden in #747

Full Changelog: v1.2.1...v1.3.0

v1.2.1

27 Mar 09:57
Compare
Choose a tag to compare

What's Changed

  • chore: Fix typo in MITM flag doc by @alexh-sauce in #735
  • chore(gh): release update deprecated dependencies by @mmatczuk in #734
  • dial: increase dial t/o to 30s by @mmatczuk in #736
  • build(deps): bump golang.org/x/net from 0.21.0 to 0.22.0 by @dependabot in #737
  • build(deps): bump golang.org/x/sys from 0.17.0 to 0.18.0 by @dependabot in #738
  • build(deps): bump google.golang.org/grpc from 1.62.0 to 1.62.1 by @dependabot in #739
  • build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 by @dependabot in #740
  • build(deps): bump github.com/prometheus/common from 0.47.0 to 0.50.0 by @dependabot in #741
  • Add matcher interface for domains filtering by @Choraden in #742
  • docsgen: move WriteCommand and WriteDefaultConfig to utils by @Choraden in #743
  • bind: change data URI scheme format in pac flag usage by @Choraden in #744
  • chore: update docs by @Choraden in #745
  • docsgen: add ID in the footer for cli by @Choraden in #746
  • utils/docsgen: export FlagGroups and EnvPrefix variables to allow specifying them by @Choraden in #749
  • Document Prometheus metics by @mmatczuk in #750
  • cobrautil/templates: support custom formats in usages by @Choraden in #752
  • build(deps): bump github.com/prometheus/common from 0.50.0 to 0.51.0 by @dependabot in #753
  • build(deps): bump github.com/prometheus/common from 0.51.0 to 0.51.1 by @dependabot in #754
  • docs(mk): add clean target by @mmatczuk in #756
  • cobrautil/templates(yaml_flag_printer): support
    , and by @Choraden in #755
  • Use docker or podman compose instead of docker-compose by @mmatczuk in #757

Full Changelog: v1.2.0...v1.2.1

v1.2.0

04 Mar 13:40
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.1.2...v1.2.0

v1.1.2

12 Jan 10:29
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.1.1...v1.1.2

v1.1.1

02 Jan 11:04
Compare
Choose a tag to compare

Relevant Changes

What's Changed

Full Changelog: v1.1.0...v1.1.1

v1.1.0

30 Nov 10:02
9f29f09
Compare
Choose a tag to compare

New Features

  • Man-In-The-Middle (MITM) support #335
  • Rate limiting #411
  • Direct domains #428
  • Upstream proxy headers modification #403
  • Proxy errors are written in response body (and headers) #502
  • Default config files contain all field description and can be generated from command line #517

Relevant changes

  • Our Google Martian fork has been internalized and largely modernized #350
  • On Windows End-Of-File is properly handled #471

What's Changed

Read more

v1.1-rc1

17 Oct 12:47
Compare
Choose a tag to compare
v1.1-rc1 Pre-release
Pre-release

Changelog

  • a9e5d1c bind: rephrase --log-http usage
  • 1bdbc3b cmd/forwarder/run: initialize runctx.Group with a function
  • 5fce40a cmd/forwarder/run: register process metrics
  • af5d444 http_proxy: add proxy errors metric
  • 8088def http_proxy: make errorResponse func a proxy method
  • f11b5b5 martian: add TestReadHeaderConnectionReset
  • 8455fb6 martian: add isClosedConnError from http2
  • 01e4130 martian: always close connection on readRequest error
  • 4474a8d martian: modernize isClosedConnError
  • 888aa15 martian: move readRequest error logging to handle
  • 6da7936 martian: refactor isCloseable
  • 2dece1d martian: use isClosedConnError instead of isCloseable outside of handleLoop
  • 180744c runctx: allow to start group without notify signals
  • 26a961f utlis/httpx: add RoundTripperFunc