pseudo mtu awareness

This commit is contained in:
snow flurry 2024-08-15 18:55:10 -07:00
parent b0646410b9
commit 37a1b0f3a0

View file

@ -150,6 +150,8 @@ 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));
@ -211,8 +213,8 @@ async fn main() -> ExitCode {
tracing::info!("nzrdhcp ready! Listening on {}", ctx.addr()); tracing::info!("nzrdhcp ready! Listening on {}", ctx.addr());
loop { loop {
let mut buf = [0u8; 576]; let mut buf = [0u8; 1500];
let (_, src) = match ctx.sock().recv_from(&mut buf).await { let (sz, src) = match ctx.sock().recv_from(&mut buf).await {
Ok(x) => x, Ok(x) => x,
Err(err) => { Err(err) => {
tracing::error!("recv_from error: {err}"); tracing::error!("recv_from error: {err}");
@ -220,7 +222,7 @@ async fn main() -> ExitCode {
} }
}; };
let msg = match Message::decode(&mut Decoder::new(&buf)) { let msg = match Message::decode(&mut Decoder::new(&buf[..sz])) {
Ok(msg) => msg, Ok(msg) => msg,
Err(err) => { Err(err) => {
tracing::error!("Couldn't process message from {}: {}", src, err); tracing::error!("Couldn't process message from {}: {}", src, err);