Avoid panics returning error instead#509
Conversation
|
lgtm. @dimartiro where these the only places in the webrtc implementation that use |
Thanks for the review! |
lexnv
left a comment
There was a problem hiding this comment.
Looks good to me! I would keep the issues open until we sort out all the places we might panic 🙏
## [0.13.0] - 2026-01-21 This release brings multiple fixes to both the transport and application-level protocols. Specifically, it enhances WebSocket stability by resolving AsyncWrite errors and ensuring that partial writes during the negotiation phase no longer trigger connection failures. At the same time, Bitswap client functionality is introduced, which makes this release semver breaking. ### Added - Add Bitswap client ([#501](#501)) ### Fixed - notif/fix: Avoid CPU busy loops on litep2p full shutdown ([#521](#521)) - protocol: Ensure transport manager knows about closed connections ([#515](#515)) - substream: Decrement the bytes counter to avoid excessive flushing ([#511](#511)) - crypto/noise: Improve stability of websockets by fixing AsyncWrite implementation ([#518](#518)) - bitswap: Split block responses into batches under 2 MiB ([#516](#516)) - crypto/noise: Fix connection negotiation logic on partial writes ([#519](#519)) - substream/fix: Fix partial reads for ProtocolCodec::Identity ([#512](#512)) - webrtc: Avoid panics returning error instead ([#509](#509)) - bitswap: e2e test & max payload fix ([#508](#508)) - tcp: Exit connections when events fail to propagate to protocols ([#506](#506)) - webrtc: Avoid future being dropped when channel is full ([#483](#483)) --------- Co-authored-by: Alexandru Vasile <[email protected]>
Description
Improve robustness by replacing
.expect()calls with proper error handling inopening.rs.Instead of panicking when
on_noise_channel_open()oron_noise_channel_data()fail, the errors are now logged and the connection is gracefully closed by returningWebRtcEvent::ConnectionClosedCloses #350
Closes ChainSafe/gossamer-parity#77