nzrdhcp: define lease in request ack

This commit is contained in:
snow flurry 2024-08-15 19:13:38 -07:00
parent 37a1b0f3a0
commit 693156dc3e

View file

@ -78,20 +78,18 @@ async fn handle_message(ctx: &Context, from: SocketAddr, msg: &Message) {
let mut nak = false; let mut nak = false;
let mut response = match msg_type { let mut response = match msg_type {
MessageType::Discover => { MessageType::Discover => make_reply(
lease_time = Some(DEFAULT_LEASE);
make_reply(
msg, msg,
MessageType::Offer, MessageType::Offer,
Some(instance.lease.addr.addr), Some(instance.lease.addr.addr),
true, true,
) ),
}
MessageType::Request => { MessageType::Request => {
if let Some(DhcpOption::RequestedIpAddress(addr)) = if let Some(DhcpOption::RequestedIpAddress(addr)) =
msg.opts().get(OptionCode::RequestedIpAddress) msg.opts().get(OptionCode::RequestedIpAddress)
{ {
if *addr == instance.lease.addr.addr { if *addr == instance.lease.addr.addr {
lease_time = Some(DEFAULT_LEASE);
make_reply(msg, MessageType::Ack, Some(instance.lease.addr.addr), true) make_reply(msg, MessageType::Ack, Some(instance.lease.addr.addr), true)
} else { } else {
nak = true; nak = true;
@ -150,8 +148,6 @@ async fn handle_message(ctx: &Context, from: SocketAddr, msg: &Message) {
}; };
opts.insert(DhcpOption::Hostname(instance.name.clone())); opts.insert(DhcpOption::Hostname(instance.name.clone()));
// TODO: hack for now. if this actually fixes the networkd issue, we'll need to figure out how to get the MTU
opts.insert(DhcpOption::InterfaceMtu(1500));
if !subnet.dns.is_empty() { if !subnet.dns.is_empty() {
opts.insert(DhcpOption::DomainNameServer(subnet.dns)); opts.insert(DhcpOption::DomainNameServer(subnet.dns));