1
0
mirror of https://github.com/labstack/echo.git synced 2024-12-18 16:20:53 +02:00
echo/middleware
Becir Basic 5b36ce3612
Fixes the concurrency issue of calling the Next() proxy target on RRB (#2409)
* Fixes the concurrency issue of calling the `Next()` proxy target on round robin balancer

- fixed concurrency issue in `AddTarget()`
- moved `rand.New()` to the random balancer initializer func.
- internal code reorganized eliminating unnecessary pointer redirection
- employing `sync.Mutex` instead of `RWMutex` which brings additional overhead of tracking readers and writers. No need for that since the guarded code has no long-running operations, hence no realistic congestion.
- added additional guards without which the code would otherwise panic (e.g., the case where a random value is calculation when targets list is empty)
- added descriptions for func return values, what to expect in which case.
- Improve code test coverage

---------

Co-authored-by: Becir Basic <bb@neotel.at>
2023-02-24 20:32:41 +02:00
..
basic_auth_test.go refactor assertions (#2301) 2022-10-12 21:47:21 +03:00
basic_auth.go fix: basic auth invalid base64 string (#2191) 2022-05-27 19:44:51 +03:00
body_dump_test.go Replace "io/ioutil" 2022-11-21 15:59:14 +02:00
body_dump.go Replace "io/ioutil" 2022-11-21 15:59:14 +02:00
body_limit_test.go Add testcases for some BodyLimit middleware configuration options (#2350) 2022-11-25 13:27:52 +02:00
body_limit.go Introduced Go module support as v4, removed obsolete CloseNotifier() mechanism 2019-01-30 16:11:42 +02:00
compress_test.go Replace "io/ioutil" 2022-11-21 15:59:14 +02:00
compress.go Replace "io/ioutil" 2022-11-21 15:59:14 +02:00
context_timeout_test.go Clean on go1.20 (#2406) 2023-02-22 00:00:52 +02:00
context_timeout.go Add context timeout middleware (#2380) 2023-02-01 22:38:20 +02:00
cors_test.go Add middleware.CORSConfig.UnsafeWildcardOriginWithAllowCredentials to make UNSAFE usages of wildcard origin + allow cretentials less likely. 2023-02-22 00:05:31 +02:00
cors.go Add middleware.CORSConfig.UnsafeWildcardOriginWithAllowCredentials to make UNSAFE usages of wildcard origin + allow cretentials less likely. 2023-02-22 00:05:31 +02:00
csrf_test.go Added ErrorHandler and ErrorHandlerWithContext in CSRF middleware (#2257) 2022-09-01 10:51:55 +03:00
csrf.go use different variable name so returned function would not accidentally be able to use it in future and cause data race 2023-02-22 00:05:31 +02:00
decompress_test.go Replace "io/ioutil" 2022-11-21 15:59:14 +02:00
decompress.go stream decompression instead of buffering (#2018) 2021-12-03 11:03:42 +01:00
extractor_test.go Expose middleware.CreateExtractors function so we can use it from echo-contrib repository 2022-11-12 23:34:04 +02:00
extractor.go Expose middleware.CreateExtractors function so we can use it from echo-contrib repository 2022-11-12 23:34:04 +02:00
jwt_test.go refactor assertions (#2301) 2022-10-12 21:47:21 +03:00
jwt.go use different variable name so returned function would not accidentally be able to use it in future and cause data race 2023-02-22 00:05:31 +02:00
key_auth_test.go JWT, KeyAuth, CSRF multivalue extractors (#2060) 2022-01-24 22:03:45 +02:00
key_auth.go use different variable name so returned function would not accidentally be able to use it in future and cause data race 2023-02-22 00:05:31 +02:00
logger_test.go Add request route with "route" tag to logger middleware (#2162) 2022-12-04 19:38:45 +01:00
logger.go Add request route with "route" tag to logger middleware (#2162) 2022-12-04 19:38:45 +01:00
method_override_test.go Introduced Go module support as v4, removed obsolete CloseNotifier() mechanism 2019-01-30 16:11:42 +02:00
method_override.go Introduced Go module support as v4, removed obsolete CloseNotifier() mechanism 2019-01-30 16:11:42 +02:00
middleware_test.go Allow proxy middleware to use query part in rewrite (fix #1798) (#1802) 2021-03-09 13:22:11 +01:00
middleware.go JWT, KeyAuth, CSRF multivalue extractors (#2060) 2022-01-24 22:03:45 +02:00
proxy_test.go Fixes the concurrency issue of calling the Next() proxy target on RRB (#2409) 2023-02-24 20:32:41 +02:00
proxy.go Fixes the concurrency issue of calling the Next() proxy target on RRB (#2409) 2023-02-24 20:32:41 +02:00
rate_limiter_test.go improve code quality (#1792) 2021-02-26 12:04:34 +02:00
rate_limiter.go Fix rate limiter docs (#2366) 2022-12-17 11:16:00 +02:00
recover_test.go Added a optional config variable to disable centralized error handler in recovery middleware (#2410) 2023-02-24 13:09:40 +02:00
recover.go Added a optional config variable to disable centralized error handler in recovery middleware (#2410) 2023-02-24 13:09:40 +02:00
redirect_test.go Fix panic in redirect middleware on short host name (fix #1811) (#1813) 2021-04-06 09:11:31 +02:00
redirect.go Fix panic in redirect middleware on short host name (fix #1811) (#1813) 2021-04-06 09:11:31 +02:00
request_id_test.go Add support for configurable target header for the request_id middleware 2021-12-07 21:34:16 +02:00
request_id.go Add support for configurable target header for the request_id middleware 2021-12-07 21:34:16 +02:00
request_logger_test.go Additional configuration options for RequestLogger and Logger middleware (#2341) 2022-11-30 15:47:23 +02:00
request_logger.go Additional configuration options for RequestLogger and Logger middleware (#2341) 2022-11-30 15:47:23 +02:00
rewrite_test.go Replace "io/ioutil" 2022-11-21 15:59:14 +02:00
rewrite.go Allow proxy middleware to use query part in rewrite (fix #1798) (#1802) 2021-03-09 13:22:11 +01:00
secure_test.go Add ReferrerPolicy to Secure middleware (#1363) 2019-08-01 15:27:09 -07:00
secure.go Add ReferrerPolicy to Secure middleware (#1363) 2019-08-01 15:27:09 -07:00
slash_test.go Fix open redirect vulnerability with AddTrailingSlashWithConfig and RemoveTrailingSlashWithConfig (#1775,#1771) 2021-02-11 14:53:22 +01:00
slash.go Modify comment syntax error 2022-11-12 23:56:47 +02:00
static_other.go Clean on go1.20 (#2406) 2023-02-22 00:00:52 +02:00
static_test.go Fix #2259 open redirect vulnerability in echo.StaticDirectoryHandler (used by e.Static, e.StaticFs etc) 2022-09-04 22:50:54 +03:00
static_windows.go Clean on go1.20 (#2406) 2023-02-22 00:00:52 +02:00
static.go Clean on go1.20 (#2406) 2023-02-22 00:00:52 +02:00
timeout_test.go remediate flaky timeout tests 2023-02-19 20:26:17 +02:00
timeout.go Timeout middleware write race 2022-03-16 08:09:29 +02:00
util_test.go Set subdomains to AllowOrigins with wildcard (#1301) 2019-03-09 10:32:49 -08:00
util.go Set subdomains to AllowOrigins with wildcard (#1301) 2019-03-09 10:32:49 -08:00