Skip to content

Introduce dnsmasq library#2

Open
vTusharr wants to merge 1 commit into
unikraft:stagingfrom
vTusharr:dnsmasq-port
Open

Introduce dnsmasq library#2
vTusharr wants to merge 1 commit into
unikraft:stagingfrom
vTusharr:dnsmasq-port

Conversation

@vTusharr

@vTusharr vTusharr commented Jun 12, 2026

Copy link
Copy Markdown

Port of dnsmasq 2.91 as a DNS forwarder/cache over UDP and TCP, with optional DNSSEC validation via lib-nettle (libhogweed + mini-gmp).

adaptations:

  • patches 0001-0003 work around lwIP's lack of IP_PKTINFO so both wildcard and bind-interfaces modes function (non setsockopt, no pktinfo cmsg in sendmsg, check_dst=0 on receive).
  • patch 0004 adapts the DNSSEC code to Nettle 4.0's hash-digest API.
  • patch 0005 reads netlink replies directly instead of the MSG_PEEK|MSG_TRUNC sizing pass: posix-netlink ignores recvmsg flags, so a peek consumes the queued message and the next read blocks forever.
  • main.c provides main() and a uname stub (kernel_version() expects a Linux-style release string).
  • include/ carries shims for Linux-only headers Unikraft lacks

!-> requires unikraft/lib-nettle#2

Port of dnsmasq 2.91 as a DNS forwarder/cache over UDP and TCP, with
optional DNSSEC validation via lib-nettle (libhogweed + mini-gmp).

adaptations:
- patches 0001-0003 work around lwIP's lack of IP_PKTINFO so both
  wildcard and bind-interfaces modes function (non-fatal setsockopt,
  no pktinfo cmsg in sendmsg, check_dst=0 on receive).
- patch 0004 adapts the DNSSEC code to Nettle 4.0's hash-digest API.
- patch 0005 reads netlink replies directly instead of the
  MSG_PEEK|MSG_TRUNC sizing pass: posix-netlink ignores recvmsg flags,
  so a peek consumes the queued message and the next read blocks
  forever.
- main.c provides main() and a uname stub (kernel_version() expects a
  Linux-style release string).
- include/ carries shims for Linux-only headers Unikraft lacks

Signed-off-by: Tushar Verma <tusharVermaiota@proton.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant