CAICAIIs opened a new pull request, #3299:
URL: https://github.com/apache/dubbo-go/pull/3299

   ## Summary
   
   This PR implements a minimal MVP for issue #3102 (PR1) by adding the 
server-side HTTP/3 QUIC config infrastructure only.
   
   It extends `global.Http3Config` with 4 core fields and wires them into 
Triple HTTP/3 server startup through a shared helper that maps config into 
`quic.Config`.
   
   This PR intentionally does **not** add support for the deprecated `config` 
package path, in line with the ongoing removal direction discussed in #3204.
   
   ## What changed
   
   ### 1. Extend `global.Http3Config`
   Added these fields to `global.Http3Config`:
   
   - `KeepAlivePeriod string`
   - `MaxIdleTimeout string`
   - `MaxIncomingStreams int64`
   - `MaxIncomingUniStreams int64`
   
   Also updated clone/default tests accordingly.
   
   ### 2. Add shared QUIC config helper
   Added a shared helper under Triple runtime code to map `global.Http3Config` 
into `*quic.Config`.
   
   Behavior:
   - fields only take effect when explicitly configured
   - unset values preserve existing/default behavior
   - invalid duration strings return explicit errors
   
   ### 3. Wire server-side HTTP/3 startup
   Reused the same helper in both server paths:
   
   - `startHttp3`
   - `startHttp2AndHttp3`
   
   This fixes the previous `QUICConfig: &quic.Config{}` empty wiring on the 
server side.
   
   ## Scope intentionally kept out
   
   This PR does **not** change:
   
   - HTTP/3 negotiation semantics
   - client-side HTTP/3 behavior
   - dual transport H2/H3 switching logic
   - extra tuning fields beyond the 4 core fields
   - option APIs
   - deprecated `config` package compatibility for the new fields
   
   ## Why this is still an MVP
   
   The runtime change is limited to:
   
   - `global` config model
   - Triple server-side QUIC helper
   - Triple server startup wiring
   - targeted tests
   
   No client behavior or transport negotiation logic is changed.
   
   ## Tests
   
   Ran targeted tests:
   
   - `go test ./global -run 'TestHttp3ConfigClone|TestDefaultHttp3Config'`
   - `go test ./protocol/triple/triple_protocol -run 
'TestServer_RegisterMuxHandle|TestNewQUICConfig|TestServer_HTTP3PathsUseQUICConfigHelper'`
   - `go test ./protocol/triple -run 
'TestServer_StartWithHttp2AndHttp3|TestServer_ProtocolSelection|TestNewServer'`
   
   ## Notes
   
   - This PR only covers **server-side infrastructure**.
   - The new fields are supported through `global.Http3Config`.
   - Deprecated `config`-package round-trip support for these new fields is 
intentionally not added here, considering the ongoing config package removal 
work in #3204.
   
   ### Checklist
   - [x] I confirm the target branch is `develop`
   - [x] Code has passed local testing
   - [x] I have added tests that prove my fix is effective or that my feature 
works
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to