Hi, I'm using the DHCPServer option within systemd-networkd along with hostapd to provide a basic wireless access point on an embedded system. When my client systems connect, they make a DHCP request that includes a parameter request for a Domain Name Server (option 6)---standard fare I think. The DHCPAck/DHCPOffer from systemd-network doesn't provide a response to this part of the request so the client needs to manually configure a DNS server. I created a rudimentary patch (attached) that uses the access point IP as the DNS server---seems to work okay for my particular use case though I recognize this is *far* from generic.
Is there 1. a different/better way of doing this and, 2. if not, is such a feature desirable for systemd-networkd/what might a good implementation look like? Thanks for any inights! --Ash
From f4dcd668d56a9b47087929d59e2005ed4f1bbaa2 Mon Sep 17 00:00:00 2001 From: Ash Charles <ashchar...@gmail.com> Date: Tue, 24 Mar 2015 16:56:51 -0700 Subject: [PATCH] DHCPServer: provide local dns server Signed-off-by: Ash Charles <ashchar...@gmail.com> --- src/libsystemd-network/sd-dhcp-server.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/libsystemd-network/sd-dhcp-server.c b/src/libsystemd-network/sd-dhcp-server.c index ab68322..e9cb813 100644 --- a/src/libsystemd-network/sd-dhcp-server.c +++ b/src/libsystemd-network/sd-dhcp-server.c @@ -434,6 +434,11 @@ static int server_send_offer(sd_dhcp_server *server, DHCPRequest *req, if (r < 0) return r; + r = dhcp_option_append(&packet->dhcp, req->max_optlen, &offset, 0, + DHCP_OPTION_DOMAIN_NAME_SERVER, 4, &server->address); + if (r < 0) + return r; + r = dhcp_server_send_packet(server, req, packet, DHCP_OFFER, offset); if (r < 0) return r; @@ -471,6 +476,11 @@ static int server_send_ack(sd_dhcp_server *server, DHCPRequest *req, if (r < 0) return r; + r = dhcp_option_append(&packet->dhcp, req->max_optlen, &offset, 0, + DHCP_OPTION_DOMAIN_NAME_SERVER, 4, &server->address); + if (r < 0) + return r; + r = dhcp_server_send_packet(server, req, packet, DHCP_ACK, offset); if (r < 0) return r; -- 2.1.0
_______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel