diff options
Diffstat (limited to 'embassy-net/src')
| -rw-r--r-- | embassy-net/src/lib.rs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/embassy-net/src/lib.rs b/embassy-net/src/lib.rs index 12f5f30b4..524799a1b 100644 --- a/embassy-net/src/lib.rs +++ b/embassy-net/src/lib.rs | |||
| @@ -34,6 +34,8 @@ use embassy_sync::waitqueue::WakerRegistration; | |||
| 34 | use embassy_time::{Instant, Timer}; | 34 | use embassy_time::{Instant, Timer}; |
| 35 | #[allow(unused_imports)] | 35 | #[allow(unused_imports)] |
| 36 | use heapless::Vec; | 36 | use heapless::Vec; |
| 37 | #[cfg(feature = "dns")] | ||
| 38 | pub use smoltcp::config::DNS_MAX_SERVER_COUNT; | ||
| 37 | #[cfg(feature = "igmp")] | 39 | #[cfg(feature = "igmp")] |
| 38 | pub use smoltcp::iface::MulticastError; | 40 | pub use smoltcp::iface::MulticastError; |
| 39 | #[allow(unused_imports)] | 41 | #[allow(unused_imports)] |
| @@ -823,9 +825,17 @@ impl<D: Driver> Inner<D> { | |||
| 823 | 825 | ||
| 824 | // Apply DNS servers | 826 | // Apply DNS servers |
| 825 | #[cfg(feature = "dns")] | 827 | #[cfg(feature = "dns")] |
| 826 | s.sockets | 828 | if !dns_servers.is_empty() { |
| 827 | .get_mut::<smoltcp::socket::dns::Socket>(self.dns_socket) | 829 | let count = if dns_servers.len() > DNS_MAX_SERVER_COUNT { |
| 828 | .update_servers(&dns_servers[..]); | 830 | warn!("Number of DNS servers exceeds DNS_MAX_SERVER_COUNT, truncating list."); |
| 831 | DNS_MAX_SERVER_COUNT | ||
| 832 | } else { | ||
| 833 | dns_servers.len() | ||
| 834 | }; | ||
| 835 | s.sockets | ||
| 836 | .get_mut::<smoltcp::socket::dns::Socket>(self.dns_socket) | ||
| 837 | .update_servers(&dns_servers[..count]); | ||
| 838 | } | ||
| 829 | 839 | ||
| 830 | self.config_waker.wake(); | 840 | self.config_waker.wake(); |
| 831 | } | 841 | } |
