[syslinux] [PATCH 0/1] efi: DNS resolver

celelibi at gmail.com celelibi at gmail.com
Wed Sep 9 22:29:03 PDT 2015


From: Sylvain Gault <sylvain.gault at gmail.com>

Despite having native network capabilities, UEFI 2.4 (the most widely deployed
at the moment) has no native DNS resolver. I propose here an implementation
more or less inspired by the one found in core/legacynet/dnsresolv.c.

Since it's non-trivial, I'd like to ask for a deep review of this code. I tried
to make it as strong as possible against malformed packets and should be
devoided of remote code execution or infinite loops (contrary to the legacynet
implementation), but I may have forgotten something. I would take any comment,
 even on the coding style. :)

I made a few tests, it worked correctly with a normal dns server. Didn't test
malformed packets.

Here are the two main missing features of this patch.
- No caching implemented.
- No timeout management. The efi implementation of core_udp_recv wait 15ms
  before giving up.

I'd also like to ask if it wouldn't be better to just write an efi driver for
lwip and just inherit all the network protocols implemented there, instead of
trying to use the buggy native UEFI implementations. Depending on this, I may
or may not spend time on this DNS resolver.

Sylvain Gault (1):
  efi: Implemented a DNS stub resolver for efi

 efi/dns.c | 529 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 efi/pxe.c |  16 --
 2 files changed, 529 insertions(+), 16 deletions(-)
 create mode 100644 efi/dns.c

-- 
2.5.1



More information about the Syslinux mailing list