aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-09-10 20:33:29 +0000
committerGitHub <[email protected]>2023-09-10 20:33:29 +0000
commitceca8b4336d8706a9e767c0d397182d02527d8cc (patch)
tree80f74be39c0036d0c8f9e998a195ab5111569cbb
parente308286f3c5c2a730d2aa78c51d7a768160295e5 (diff)
parentd6a1b567ee1eeaa98f9e8938227c0f3be3559670 (diff)
Merge pull request #1883 from JuliDi/net-socket-bind-error
embassy-net: Improve error when socket is not bound
-rw-r--r--embassy-net/src/udp.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/embassy-net/src/udp.rs b/embassy-net/src/udp.rs
index 0a5a7b8f6..61058c1ba 100644
--- a/embassy-net/src/udp.rs
+++ b/embassy-net/src/udp.rs
@@ -29,6 +29,8 @@ pub enum BindError {
29pub enum Error { 29pub enum Error {
30 /// No route to host. 30 /// No route to host.
31 NoRoute, 31 NoRoute,
32 /// Socket not bound to an outgoing port.
33 SocketNotBound,
32} 34}
33 35
34/// An UDP socket. 36/// An UDP socket.
@@ -155,7 +157,14 @@ impl<'a> UdpSocket<'a> {
155 s.register_send_waker(cx.waker()); 157 s.register_send_waker(cx.waker());
156 Poll::Pending 158 Poll::Pending
157 } 159 }
158 Err(udp::SendError::Unaddressable) => Poll::Ready(Err(Error::NoRoute)), 160 Err(udp::SendError::Unaddressable) => {
161 // If no sender/outgoing port is specified, there is not really "no route"
162 if s.endpoint().port == 0 {
163 Poll::Ready(Err(Error::SocketNotBound))
164 } else {
165 Poll::Ready(Err(Error::NoRoute))
166 }
167 }
159 }) 168 })
160 } 169 }
161 170