aboutsummaryrefslogtreecommitdiff
path: root/embassy-net/src/lib.rs
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-05-15 00:38:58 +0200
committerDario Nieuwenhuis <[email protected]>2023-05-15 00:53:30 +0200
commit26d7610554f262c2c25f99fb441e6dbd6abec61f (patch)
treeac3c3f548960824a5dbc603b58225132859f03ba /embassy-net/src/lib.rs
parent6e93d193cfdd2982410e106c383ecc1f066fccfb (diff)
net: do not use smoltcp Instant/Duration in public API.
Diffstat (limited to 'embassy-net/src/lib.rs')
-rw-r--r--embassy-net/src/lib.rs18
1 files changed, 4 insertions, 14 deletions
diff --git a/embassy-net/src/lib.rs b/embassy-net/src/lib.rs
index b80784c2b..64f558756 100644
--- a/embassy-net/src/lib.rs
+++ b/embassy-net/src/lib.rs
@@ -12,6 +12,7 @@ mod device;
12pub mod dns; 12pub mod dns;
13#[cfg(feature = "tcp")] 13#[cfg(feature = "tcp")]
14pub mod tcp; 14pub mod tcp;
15mod time;
15#[cfg(feature = "udp")] 16#[cfg(feature = "udp")]
16pub mod udp; 17pub mod udp;
17 18
@@ -27,10 +28,6 @@ use heapless::Vec;
27use smoltcp::iface::{Interface, SocketHandle, SocketSet, SocketStorage}; 28use smoltcp::iface::{Interface, SocketHandle, SocketSet, SocketStorage};
28#[cfg(feature = "dhcpv4")] 29#[cfg(feature = "dhcpv4")]
29use smoltcp::socket::dhcpv4::{self, RetryConfig}; 30use smoltcp::socket::dhcpv4::{self, RetryConfig};
30#[cfg(feature = "dhcpv4")]
31use smoltcp::time::Duration;
32// smoltcp reexports
33pub use smoltcp::time::{Duration as SmolDuration, Instant as SmolInstant};
34#[cfg(feature = "medium-ethernet")] 31#[cfg(feature = "medium-ethernet")]
35pub use smoltcp::wire::{EthernetAddress, HardwareAddress}; 32pub use smoltcp::wire::{EthernetAddress, HardwareAddress};
36pub use smoltcp::wire::{IpAddress, IpCidr, Ipv4Address, Ipv4Cidr}; 33pub use smoltcp::wire::{IpAddress, IpCidr, Ipv4Address, Ipv4Cidr};
@@ -40,6 +37,7 @@ pub use smoltcp::wire::{Ipv6Address, Ipv6Cidr};
40pub use smoltcp::{socket::udp::PacketMetadata, wire::IpListenEndpoint}; 37pub use smoltcp::{socket::udp::PacketMetadata, wire::IpListenEndpoint};
41 38
42use crate::device::DriverAdapter; 39use crate::device::DriverAdapter;
40use crate::time::{instant_from_smoltcp, instant_to_smoltcp};
43 41
44const LOCAL_PORT_MIN: u16 = 1025; 42const LOCAL_PORT_MIN: u16 = 1025;
45const LOCAL_PORT_MAX: u16 = 65535; 43const LOCAL_PORT_MAX: u16 = 65535;
@@ -74,7 +72,7 @@ pub struct StaticConfig {
74#[cfg(feature = "dhcpv4")] 72#[cfg(feature = "dhcpv4")]
75#[derive(Debug, Clone, PartialEq, Eq)] 73#[derive(Debug, Clone, PartialEq, Eq)]
76pub struct DhcpConfig { 74pub struct DhcpConfig {
77 pub max_lease_duration: Option<Duration>, 75 pub max_lease_duration: Option<embassy_time::Duration>,
78 pub retry_config: RetryConfig, 76 pub retry_config: RetryConfig,
79 /// Ignore NAKs. 77 /// Ignore NAKs.
80 pub ignore_naks: bool, 78 pub ignore_naks: bool,
@@ -384,7 +382,7 @@ impl<D: Driver + 'static> Inner<D> {
384 #[cfg(feature = "dhcpv4")] 382 #[cfg(feature = "dhcpv4")]
385 fn apply_dhcp_config(&self, socket: &mut smoltcp::socket::dhcpv4::Socket, config: DhcpConfig) { 383 fn apply_dhcp_config(&self, socket: &mut smoltcp::socket::dhcpv4::Socket, config: DhcpConfig) {
386 socket.set_ignore_naks(config.ignore_naks); 384 socket.set_ignore_naks(config.ignore_naks);
387 socket.set_max_lease_duration(config.max_lease_duration); 385 socket.set_max_lease_duration(config.max_lease_duration.map(crate::time::duration_to_smoltcp));
388 socket.set_ports(config.server_port, config.client_port); 386 socket.set_ports(config.server_port, config.client_port);
389 socket.set_retry_config(config.retry_config); 387 socket.set_retry_config(config.retry_config);
390 } 388 }
@@ -465,11 +463,3 @@ impl<D: Driver + 'static> Inner<D> {
465 } 463 }
466 } 464 }
467} 465}
468
469fn instant_to_smoltcp(instant: Instant) -> SmolInstant {
470 SmolInstant::from_millis(instant.as_millis() as i64)
471}
472
473fn instant_from_smoltcp(instant: SmolInstant) -> Instant {
474 Instant::from_millis(instant.total_millis() as u64)
475}