summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2019-06-05 16:14:09 +1000
committerDamien George <damien.p.george@gmail.com>2019-06-05 16:14:09 +1000
commit9e4b3681fd82e9a520a93e09ae5ab4dd2e5c88ca (patch)
tree83a938777ff8a71fb306836640e217cdfb0bca6d
parent49388e339ecea9595c0e82244cc3d60a7cb5e333 (diff)
stm32: Support optional lwIP mDNS responder.
-rw-r--r--ports/stm32/main.c4
-rw-r--r--ports/stm32/modnetwork.c8
2 files changed, 12 insertions, 0 deletions
diff --git a/ports/stm32/main.c b/ports/stm32/main.c
index 5bb425ddf..3852ff9b0 100644
--- a/ports/stm32/main.c
+++ b/ports/stm32/main.c
@@ -39,6 +39,7 @@
#if MICROPY_PY_LWIP
#include "lwip/init.h"
+#include "lwip/apps/mdns.h"
#include "drivers/cyw43/cyw43.h"
#endif
@@ -479,6 +480,9 @@ void stm32_main(uint32_t reset_mode) {
// because the system timeout list (next_timeout) is only ever reset by BSS clearing.
// So for now we only init the lwIP stack once on power-up.
lwip_init();
+ #if LWIP_MDNS_RESPONDER
+ mdns_resp_init();
+ #endif
systick_enable_dispatch(SYSTICK_DISPATCH_LWIP, mod_network_lwip_poll_wrapper);
#endif
diff --git a/ports/stm32/modnetwork.c b/ports/stm32/modnetwork.c
index 460f47257..80e5a5a16 100644
--- a/ports/stm32/modnetwork.c
+++ b/ports/stm32/modnetwork.c
@@ -44,6 +44,7 @@
#include "lwip/timeouts.h"
#include "lwip/dns.h"
#include "lwip/dhcp.h"
+#include "lwip/apps/mdns.h"
#include "extmod/network_cyw43.h"
#include "drivers/cyw43/cyw43.h"
@@ -188,6 +189,10 @@ mp_obj_t mod_network_nic_ifconfig(struct netif *netif, size_t n_args, const mp_o
mp_hal_delay_ms(100);
}
+ #if LWIP_MDNS_RESPONDER
+ mdns_resp_netif_settings_changed(netif);
+ #endif
+
return mp_const_none;
} else {
// Release and stop any existing DHCP
@@ -202,6 +207,9 @@ mp_obj_t mod_network_nic_ifconfig(struct netif *netif, size_t n_args, const mp_o
ip_addr_t dns;
netutils_parse_ipv4_addr(items[3], (uint8_t*)&dns, NETUTILS_BIG);
dns_setserver(0, &dns);
+ #if LWIP_MDNS_RESPONDER
+ mdns_resp_netif_settings_changed(netif);
+ #endif
return mp_const_none;
}
}