Commit Graph

1609 Commits

Author SHA1 Message Date
yusing
678cf4b3c6 fix(idlewatcher): incorrect "dependency has positive idle timeout" error 2025-12-18 23:18:11 +08:00
yusing
4299c78067 refactor(http): enhance health check error logic by treating all 5xx as unhealthy 2025-12-18 10:13:59 +08:00
yusing
b49d565213 feat(reverse_proxy): add scheme mismatch handling for retry logic in reverse proxy 2025-12-18 10:13:53 +08:00
yusing
85b93be277 fix(docker): nil panic reading container names 2025-12-18 10:13:51 +08:00
yusing
a754a2ed9f refactor(http): consolidate User-Agent header in health monitor 2025-12-18 10:08:51 +08:00
yusing
7547de6077 fix(idlewatcher): directly serve the request on ready instead of redirecting 2025-12-17 11:47:53 +08:00
yusing
f7340015b5 fix(access_log): fix slice out-of-bound panic on log rotation 2025-12-17 10:29:27 +08:00
yusing
ba8d23fada fix(config): nil panic introduced in ff934a4bb2911f5fa3c23d8fe6fea252d881fdc3; remove duplicated log 2025-12-17 10:29:26 +08:00
yusing
0a3332bd10 refactor: simplify and optimize deserialization 2025-12-17 10:29:26 +08:00
yusing
106f5b0ce2 refactor(pool): simplify and optimize SizedPool; remove sync pool 2025-12-17 10:29:25 +08:00
yusing
da1e666a72 refactor(config): remove unused ActiveConfig 2025-12-17 10:29:25 +08:00
yusing
3873e2860b fix(config): fix default values not applied 2025-12-17 10:29:24 +08:00
yusing
57d229f94b refactor(config): remove unnecessary indirection 2025-12-17 10:29:24 +08:00
yusing
7705402360 feat(rules): add protocol matching functionality
- Introduced a new checker for HTTP protocols (http, https, h3) in the routing rules.
- Added corresponding test cases to validate protocol matching behavior in requests.
2025-12-17 10:29:24 +08:00
yusing
6614783450 fix(icons): add handling for dark icons for walkxcode 2025-12-17 10:29:23 +08:00
yusing
c50fe0ee4a refactor(favicon): enhance FindIcon function to support icon variants
- Updated FindIcon to accept an additional variant parameter for improved icon fetching.
- Adjusted FavIcon and GetFavIconFromAlias functions to utilize the new variant handling logic.
2025-12-17 10:29:23 +08:00
yusing
8ba8726bc2 refactor(icon): improve handling in WithVariant 2025-12-17 10:29:22 +08:00
yusing
e9eba5a892 fix(favicon): enhance variant handling in GetFavIconFromAlias function
- Added fallback logic to handle cases where the requested icon variant is unavailable.
- If variant not provided, do not call WithVariant.
2025-12-17 10:29:22 +08:00
yusing
2d73dde9ff fix(favicon): correct icon cache key in FindIcon method 2025-12-17 10:29:21 +08:00
yusing
da13b3b66d refactor(icon): add variant handling for absolute/relative icons in WithVariant method 2025-12-17 10:29:21 +08:00
yusing
80c122b3b7 chore: update api swagger 2025-12-17 10:29:20 +08:00
yusing
6fec81deb9 feat(favicon): add variant support for favicons
- Introduced a new Variant field in GetFavIconRequest to specify icon variants (light/dark).
- Updated GetFavIconFromAlias function to handle the variant when fetching favicons.
- Added WithVariant method in IconURL to manage icon variants effectively.
2025-12-17 10:29:20 +08:00
yusing
30f1617d13 fix(socket-proxy): update golang version. fix Dockerfile 2025-12-17 10:29:19 +08:00
yusing
e9612ce6ae fix(ci): correct socket-proxy github workflow 2025-12-17 10:29:19 +08:00
yusing
48db8930cc refactor(docker): streamline idlewatcher label handling
- Introduced a map for idlewatcher labels to simplify the loading of configuration values.
- Simplify logic to check for the presence of an idle timeout and handle dependencies.
2025-12-17 10:27:01 +08:00
yusing
a54f6942ba feat(idlewatcher): add option to disable loading page 2025-12-17 10:22:09 +08:00
yusing
37e72cda57 fix(idlewatcher): improve container readiness handling in wakeFromHTTP
- Updated the wakeFromHTTP method to send a 100 Continue response to prevent client wait-header timeout.
- Implemented logic for non-HTML requests to wait for the container to become ready, returning an error message if it times out, or redirecting if successful.
- Adjusted the waitForReady method to return true upon receiving a ready notification.
2025-12-17 10:15:31 +08:00
yusing
b783ded2e7 chore(deps): upgrade dependencies 2025-12-10 17:35:27 +08:00
yusing
7d91c3548e fix(http): 'runtime error: comparing uncomparable type httputils.UnwrittenBody' 2025-12-10 17:31:59 +08:00
yusing
fde5a304e8 chore(deps): upgrade dependencies in submodules 2025-12-09 10:51:56 +08:00
yusing
21e26e2a14 fix(http): correct Unwrap method and enhance error handling in Hijack method
- Updated the Hijack method in LazyResponseModifier and ResponseModifier to return a wrapped error for unsupported hijacking.
- Added a nil check in LazyResponseModifier's Unwrap method to ensure safe access to the underlying ResponseWriter.
2025-12-09 10:51:52 +08:00
yusing
06233759d9 fix(middleware): enhance response modification handling in ServeHTTP
- Replaced ResponseModifier with new LazyResponseModifier.
- Added logic to skip modification for non-HTML content.
2025-12-09 10:51:50 +08:00
yusing
9e0c189abe fix(io): limit buffer size to 16KB to avoid high memory usage and improve context propagation 2025-12-09 10:51:48 +08:00
yusing
33180878d9 refactor(route): simplify context handling in RouteContext
- Removed unnecessary requestInternal struct and directly accessed the context field of http.Request.
- Simplified the initialization of ctxFieldOffset.
2025-12-09 10:51:46 +08:00
yusing
074b420848 refactor(config): update config structures to use strutils.Redacted for sensitive fields
- Modified Config structs in various packages to replace string fields with strutils.Redacted to prevent logging sensitive information.
- Updated serialization methods to accommodate new data types.
- Adjusted API token handling in Proxmox configuration.
2025-12-09 10:51:30 +08:00
yusing
5dfdd0c058 chore: go mod tidy 2025-12-05 16:36:18 +08:00
yusing
f2352975f5 chore: go mod tidy 2025-12-05 16:27:05 +08:00
yusing
f0e7c22216 chore(Makefile): add socket-proxy to docker build test and update build command syntax 2025-12-05 16:27:05 +08:00
yusing
e7c87bae77 refactor(http,rules): move SharedData and ResponseModifier to httputils
- implemented dependency injection for rule auth handler
2025-12-05 16:27:04 +08:00
yusing
f8b1c05a35 fix(Dockerfile): exclude goutils in mod caching stage 2025-12-05 16:27:04 +08:00
yusing
f561362530 fix(middleware): skip modify response for websocket and event-stream requests in ServeHTTP 2025-12-05 16:27:03 +08:00
yusing
0420315db6 ci: Add workflow to automatically merge main into compat on tag push 2025-12-05 16:27:00 +08:00
yusing
ecd151d1ea fix(route): nil panic when used as an idlewatcher dependency 2025-12-05 16:26:46 +08:00
yusing
716f0adc95 refactor(healthcheck): agent health check 2025-12-05 16:26:45 +08:00
yusing
4a17245e6e refactor(deps): upgrade go to 1.25.5; isolate dependencies for reverseproxy, websocket and server modules 2025-12-05 16:26:43 +08:00
yusing
682264db13 chore(example): introduce health check configuration defaults in example config 2025-12-05 16:24:44 +08:00
yusing
6e40f53a16 fix(http): handle 0 content length properly in some cases 2025-12-05 16:24:43 +08:00
yusing
714826213f fix(middleware): skip modification for HEAD requests in ModifyHTML middleware 2025-12-05 16:24:43 +08:00
yusing
429b0d9ce8 fix(http): enhance Content-Length handling in ResponseModifier
- Introduced origContentLength and bodyModified fields to track original content length and body modification status.
- Updated ContentLength and ContentLengthStr methods to return accurate content length based on body modification state.
- Adjusted Write and FlushRelease methods to ensure proper handling of Content-Length header.
- Modified middleware to use the new ContentLengthStr method.
2025-12-05 16:24:42 +08:00
yusing
a9adf79551 fix(tests): correct test expectations for middleware bypass and rules 2025-12-05 16:24:42 +08:00