PPP, using DNS API for DNS servers

Now setting DNS addresses in sdns() using dns_setserver() instead
of keeping a local copy. This is probably the wanted PPP behavior,
we will see if users want this conditional.
This commit is contained in:
Sylvain Rochet 2015-03-08 00:11:52 +01:00
parent dd22176935
commit 3027a7d7e2

View File

@ -94,6 +94,7 @@
#if PPP_IPV6_SUPPORT #if PPP_IPV6_SUPPORT
#include "lwip/ip6.h" /* for ip6_input() */ #include "lwip/ip6.h" /* for ip6_input() */
#endif /* PPP_IPV6_SUPPORT */ #endif /* PPP_IPV6_SUPPORT */
#include "lwip/dns.h"
#include "netif/ppp/ppp_impl.h" #include "netif/ppp/ppp_impl.h"
#include "netif/ppp/pppos.h" #include "netif/ppp/pppos.h"
@ -915,9 +916,13 @@ int cifproxyarp(ppp_pcb *pcb, u32_t his_adr) {
* sdns - Config the DNS servers * sdns - Config the DNS servers
*/ */
int sdns(ppp_pcb *pcb, u32_t ns1, u32_t ns2) { int sdns(ppp_pcb *pcb, u32_t ns1, u32_t ns2) {
ip_addr_t ns;
LWIP_UNUSED_ARG(pcb);
ip4_addr_set_u32(&pcb->addrs.dns1, ns1); ip4_addr_set_u32(&ns, ns1);
ip4_addr_set_u32(&pcb->addrs.dns2, ns2); dns_setserver(0, &ns);
ip4_addr_set_u32(&ns, ns2);
dns_setserver(1, &ns);
return 1; return 1;
} }
@ -926,12 +931,19 @@ int sdns(ppp_pcb *pcb, u32_t ns1, u32_t ns2) {
* cdns - Clear the DNS servers * cdns - Clear the DNS servers
*/ */
int cdns(ppp_pcb *pcb, u32_t ns1, u32_t ns2) { int cdns(ppp_pcb *pcb, u32_t ns1, u32_t ns2) {
ip_addr_t nsa, nsb;
LWIP_UNUSED_ARG(pcb);
LWIP_UNUSED_ARG(ns1); nsa = dns_getserver(0);
LWIP_UNUSED_ARG(ns2); ip4_addr_set_u32(&nsb, ns1);
if (ip_addr_cmp(&nsa, &nsb)) {
ip_addr_set_zero(&pcb->addrs.dns1); dns_setserver(0, (ip_addr_t*)IP_ADDR_ANY);
ip_addr_set_zero(&pcb->addrs.dns2); }
nsa = dns_getserver(1);
ip4_addr_set_u32(&nsb, ns2);
if (ip_addr_cmp(&nsa, &nsb)) {
dns_setserver(1, (ip_addr_t*)IP_ADDR_ANY);
}
return 1; return 1;
} }
#endif /* LWIP_DNS */ #endif /* LWIP_DNS */