Skip to content

Commit ba1d4db

Browse files
committed
Changes egress functions to pass up Err(Exhausted)
1 parent c127421 commit ba1d4db

File tree

1 file changed

+21
-28
lines changed

1 file changed

+21
-28
lines changed

src/iface/interface.rs

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,14 +1027,20 @@ impl<'a> Interface<'a> {
10271027
#[cfg(feature = "proto-ipv4-fragmentation")]
10281028
match self.ipv4_egress(device) {
10291029
Ok(true) => return Ok(true),
1030-
Err(e) => return Err(e),
1030+
Err(e) => {
1031+
net_debug!("failed to transmit: {}", e);
1032+
return Err(e);
1033+
}
10311034
_ => (),
10321035
}
10331036

10341037
#[cfg(feature = "proto-sixlowpan-fragmentation")]
10351038
match self.sixlowpan_egress(device) {
10361039
Ok(true) => return Ok(true),
1037-
Err(e) => return Err(e),
1040+
Err(e) => {
1041+
net_debug!("failed to transmit: {}", e);
1042+
return Err(e);
1043+
}
10381044
_ => (),
10391045
}
10401046

@@ -1354,20 +1360,13 @@ impl<'a> Interface<'a> {
13541360
} = &self.out_packets.ipv4_out_packet;
13551361

13561362
if *packet_len > *sent_bytes {
1357-
match device.transmit().ok_or(Error::Exhausted) {
1358-
Ok(tx_token) => {
1359-
if let Err(e) = self
1360-
.inner
1361-
.dispatch_ipv4_out_packet(tx_token, &mut self.out_packets.ipv4_out_packet)
1362-
{
1363-
net_debug!("failed to transmit: {}", e);
1364-
}
1365-
}
1366-
Err(e) => {
1367-
net_debug!("failed to transmit: {}", e);
1368-
}
1363+
match device.transmit() {
1364+
Some(tx_token) => self
1365+
.inner
1366+
.dispatch_ipv4_out_packet(tx_token, &mut self.out_packets.ipv4_out_packet),
1367+
None => Err(Error::Exhausted),
13691368
}
1370-
Ok(true)
1369+
.map(|_| true)
13711370
} else {
13721371
Ok(false)
13731372
}
@@ -1398,20 +1397,14 @@ impl<'a> Interface<'a> {
13981397
}
13991398

14001399
if *packet_len > *sent_bytes {
1401-
match device.transmit().ok_or(Error::Exhausted) {
1402-
Ok(tx_token) => {
1403-
if let Err(e) = self.inner.dispatch_ieee802154_out_packet(
1404-
tx_token,
1405-
&mut self.out_packets.sixlowpan_out_packet,
1406-
) {
1407-
net_debug!("failed to transmit: {}", e);
1408-
}
1409-
}
1410-
Err(e) => {
1411-
net_debug!("failed to transmit: {}", e);
1412-
}
1400+
match device.transmit() {
1401+
Some(tx_token) => self.inner.dispatch_ieee802154_out_packet(
1402+
tx_token,
1403+
&mut self.out_packets.sixlowpan_out_packet,
1404+
),
1405+
None => Err(Error::Exhausted),
14131406
}
1414-
Ok(true)
1407+
.map(|_| true)
14151408
} else {
14161409
Ok(false)
14171410
}

0 commit comments

Comments
 (0)