|
| 1 | +use core::str::FromStr; |
1 | 2 | #[cfg(feature = "async")]
|
2 | 3 | use core::task::Waker;
|
3 | 4 |
|
| 5 | +use crate::config::DHCP_MAX_DOMAIN_NAME_SIZE; |
4 | 6 | use crate::iface::Context;
|
5 | 7 | use crate::time::{Duration, Instant};
|
6 | 8 | use crate::wire::dhcpv4::field as dhcpv4_field;
|
7 | 9 | use crate::wire::{
|
8 | 10 | DhcpMessageType, DhcpPacket, DhcpRepr, IpAddress, IpProtocol, Ipv4Address, Ipv4Cidr, Ipv4Repr,
|
9 |
| - UdpRepr, DHCP_CLIENT_PORT, DHCP_MAX_DNS_SERVER_COUNT, DHCP_MAX_DOMAIN_NAME_LEN, |
10 |
| - DHCP_SERVER_PORT, UDP_HEADER_LEN, |
| 11 | + UdpRepr, DHCP_CLIENT_PORT, DHCP_MAX_DNS_SERVER_COUNT, DHCP_SERVER_PORT, UDP_HEADER_LEN, |
11 | 12 | };
|
12 | 13 | use crate::wire::{DhcpOption, HardwareAddress};
|
13 | 14 | use heapless::{String, Vec};
|
@@ -41,7 +42,7 @@ pub struct Config<'a> {
|
41 | 42 | /// DNS servers
|
42 | 43 | pub dns_servers: Vec<Ipv4Address, DHCP_MAX_DNS_SERVER_COUNT>,
|
43 | 44 | /// Domain name
|
44 |
| - pub domain_name: Option<String<DHCP_MAX_DOMAIN_NAME_LEN>>, |
| 45 | + pub domain_name: Option<String<DHCP_MAX_DOMAIN_NAME_SIZE>>, |
45 | 46 | /// Received DHCP packet
|
46 | 47 | pub packet: Option<DhcpPacket<&'a [u8]>>,
|
47 | 48 | }
|
@@ -498,7 +499,10 @@ impl<'a> Socket<'a> {
|
498 | 499 | address: Ipv4Cidr::new(dhcp_repr.your_ip, prefix_len),
|
499 | 500 | router: dhcp_repr.router,
|
500 | 501 | dns_servers,
|
501 |
| - domain_name: dhcp_repr.domain_name.clone(), |
| 502 | + domain_name: dhcp_repr |
| 503 | + .domain_name |
| 504 | + .map(String::from_str) |
| 505 | + .and_then(Result::ok), |
502 | 506 | packet: None,
|
503 | 507 | };
|
504 | 508 |
|
@@ -1004,7 +1008,7 @@ mod test {
|
1004 | 1008 | router: Some(SERVER_IP),
|
1005 | 1009 | subnet_mask: Some(MASK_24),
|
1006 | 1010 | dns_servers: Some(Vec::from_slice(DNS_IPS).unwrap()),
|
1007 |
| - domain_name: Some(String::from_str(DOMAIN_NAME).unwrap()), |
| 1011 | + domain_name: Some(DOMAIN_NAME), |
1008 | 1012 | lease_duration: Some(1000),
|
1009 | 1013 |
|
1010 | 1014 | ..DHCP_DEFAULT
|
@@ -1032,7 +1036,7 @@ mod test {
|
1032 | 1036 | router: Some(SERVER_IP),
|
1033 | 1037 | subnet_mask: Some(MASK_24),
|
1034 | 1038 | dns_servers: Some(Vec::from_slice(DNS_IPS).unwrap()),
|
1035 |
| - domain_name: Some(String::from_str(DOMAIN_NAME).unwrap()), |
| 1039 | + domain_name: Some(DOMAIN_NAME), |
1036 | 1040 | lease_duration: Some(1000),
|
1037 | 1041 |
|
1038 | 1042 | ..DHCP_DEFAULT
|
|
0 commit comments