From e1a87019f92b5ff05ab743f8c15ac42db9598df2 Mon Sep 17 00:00:00 2001 From: clarinette9 <83874119+clarinette9@users.noreply.github.com> Date: Sun, 19 Jan 2025 21:58:30 +0800 Subject: [PATCH] Merge Release/v1.7.0 into Master (#1211) (#1212) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * typo: fix docs/example markdown lint * typo: code span on function prototype of bfe callback * typo: fix docs/introduction markdown lint and syntax * typo: fix docs/installation markdown lint and syntax * typo: fix docs/faq markdown lint and syntax * typo: fix docs/modules markdown lint * typo: fix docs/operation markdown lint * typo: fix docs/monitor markdown lint and syntax * Add en_us/condition/request/context.md * Add zh_cn/condition/request/context.md * add req_context_value_in() to condition_primitive_index.md and adjust sequence (#1010) * ci: add markdown lint action * typo: fix docs/condition markdown lints * Revert "chore: add typos in pre-commit" * typo: fix bfe_balance spelling * typo: fix bfe_basic BOM * typo: fix bfe_config spelling * typo: fix bfe_fcgi spelling * typo: fix bfe_http bfe_server spelling * typo: fix bfe_http2 spelling * typo: fix bfe_module spelling * typo: format bfe_modules/mod_userid * typo: fix bfe_route spelling * typo: fix bfe_spdy spelling * typo: fix bfe_tls spelling * typo: format bfe_util/socket_util * chore: ignore log rotate files * typo: remove dot at the end * Fix typo in mod_geo (#1029) * Add staticcheck pre-commit hook (#1019) * Add precommit hook for markdownlint (#1038) * Evict the oldest conn when the conn pool exceeds its limit (#1044) * import code-lint workflow job (#1037) * fix go.yaml dependency * fix arm build error in golang1.18 * refactor: replace strings.Replace with strings.ReplaceAll strings.ReplaceAll(s, old, new) is a wrapper function for strings.Replace(s, old, new, -1). But strings.ReplaceAll is more readable and removes the hardcoded -1. * Create some slices with enough capacity (#1054) * Update ci.yml (#1061) * fix build failed on macos (#1067) * Make some optimization for leastConnsBalance (#1062) * Fix some unreachable code in unit tests (#1068) * Support HTTP/2 fingerprint (#1072) * update v1.6.0 changelog * update changelog and version file * Update CHANGELOG.md fix minor typo * Update condition_grammar.md fix typos * Update README.md * update mkdocs yml and download link for v1.5 and v1.6 (#1084) * Resolved #800 support test configuration * Update MAINTAINERS.md * Update MAINTAINERS.md * update maintainers.md * fix some typo (#1113) * Update ci.yml * Update ADOPTERS.md (#1123) * build(deps): bump golang.org/x/sys (#1101) Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.0.0-20211216021012-1d35b9e2eb4e to 0.1.0. - [Release notes](https://github.com/golang/sys/releases) - [Commits](https://github.com/golang/sys/commits/v0.1.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: direct:production ... * remove TestSetKeepAlive * remove TestSetKeepAlive * Resubmit with Signed-off-by line * Resubmit with Signed-off-by line * http2: close connections when receiving too many headers (#1156) Maintaining HPACK state requires that we parse and process all HEADERS and CONTINUATION frames on a connection. When a request's headers exceed MaxHeaderBytes, we don't allocate memory to store the excess headers but we do parse them. This permits an attacker to cause an HTTP/2 endpoint to read arbitrary amounts of header data, all associated with a request which is going to be rejected. These headers can include Huffman-encoded data which is significantly more expensive for the receiver to decode than for an attacker to send. Set a limit on the amount of excess header frames we will process before closing a connection. This is CVE-2023-45288 and Go issue https://go.dev/issue/65051. * Update Dockerfile to support multiarch build (#1120) Replace go compile args to TARGETOS and TARGETARCH to support multiarch compile * Fix format issue in bfe_http/request_test.go (#1163) * Temporarily remove some test cases using legacy test data (#1193) * The experimental `dynamic plugin` is deprecated (#1197) * Update versions of some thirdpaty modules (#1198) Fix broken unit tests * Upgrade third-party modules for security reasons (#1201) Remove duplicated code lint workflow * bfe_wasm * remove v2 * remove redundant codes * fix OnPluginStart * refine codes * fix. * fix nil * rename package & remove some obsolete lines. * refine * fix & refine * docs of mod_wasmplugin * add link in summary.md to mod_wasmplugin * fix "bfe_http : readloop goroutine leak #1209" * update changlog and version file for v1.7.0 --------- Signed-off-by: kwanhur Signed-off-by: Song Jian Signed-off-by: suhang <1099811329@qq.com> Signed-off-by: chenchen.ccqy66 Signed-off-by: Eng Zer Jun Signed-off-by: likepeng Signed-off-by: Abirdcfly Signed-off-by: xqbumu Signed-off-by: clarinette9 Signed-off-by: cui fliter Signed-off-by: Benjamin <72671586+benjx1990@users.noreply.github.com> Signed-off-by: dependabot[bot] Signed-off-by: liangchuan Signed-off-by: Allen Chen Signed-off-by: cuishuang Signed-off-by: Sijie Yang Signed-off-by: xuleiming Co-authored-by: kwanhur Co-authored-by: Sijie Yang Co-authored-by: Miles Zhang Co-authored-by: blinkbean <1099811329@qq.com> Co-authored-by: wolfCoder Co-authored-by: daimg Co-authored-by: Eng Zer Jun Co-authored-by: kezhenxu94 Co-authored-by: supermario1990 <406517780@qq.com> Co-authored-by: cooper-li <963492628@qq.com> Co-authored-by: Abirdcfly Co-authored-by: 卜木 Co-authored-by: cui fliter Co-authored-by: Benjamin <72671586+benjx1990@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: liangchuan Co-authored-by: z8n24 Co-authored-by: watchword Co-authored-by: xuleiming Co-authored-by: Song Jian --- CHANGELOG.md | 40 ++++++++++++++++++++++++++++++++ VERSION | 2 +- bfe_tls/handshake_server_test.go | 1 + 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b29e7f9..647c35ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,46 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.7.0] - 2025-01-19 + +### Added + +- Support building docker images for multiple architectures +- Support WASM to allow dynamic plugin + +### Fixed + +- Upgrade versions of some third-paty modules for security reasons +- Fix format issue in bfe_http/request_test.go +- Temporarily remove some test cases using legacy test data +- mod_tcp_keepalive: fix broken unit tests +- http2: close connections when receiving too many headers +- Fix readloop goroutine leak + +### Removed + +- The previous experimental dynamic plugin is deprecated + +## [v1.6.0] - 2022-10-21 + +### Added + +- Allow user to disable monitor port ([Issue #936](https://github.com/bfenetworks/bfe/issues/936)) +- Support HTTP2 fingerprint ([Issue #1071](https://github.com/bfenetworks/bfe/issues/1071)) +- Documents optimization + +### Changed + +- Optimize idle connection handling ([Pull #1044](https://github.com/bfenetworks/bfe/pull/1044)) +- Performance optimize in smooth least connection balancing algorithm([Pull #1062](https://github.com/bfenetworks/bfe/pull/1062)) +- Miscellaneous golang dependency updates +- Miscellaneous improvements in makefile and other CI tools + +### Fixed + +- mod_trust_clientip: fix incorrect private IP address range ([Issue #856](https://github.com/bfenetworks/bfe/issues/856)) +- arm build error in golang 1.18 + ## [v1.6.0] - 2022-10-21 ### Added diff --git a/VERSION b/VERSION index dc1e644a..9dbb0c00 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.6.0 +1.7.0 \ No newline at end of file diff --git a/bfe_tls/handshake_server_test.go b/bfe_tls/handshake_server_test.go index 90554b70..43bc6711 100644 --- a/bfe_tls/handshake_server_test.go +++ b/bfe_tls/handshake_server_test.go @@ -641,6 +641,7 @@ func TestHandshakeServerSNI(t *testing.T) { runServerTestTLS12(t, test) } + func TestResumption(t *testing.T) { sessionFilePath := tempFile("") defer os.Remove(sessionFilePath)