summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/cyw43/cyw43.h9
-rw-r--r--drivers/cyw43/cyw43_ctrl.c2
-rw-r--r--drivers/cyw43/cyw43_lwip.c7
3 files changed, 15 insertions, 3 deletions
diff --git a/drivers/cyw43/cyw43.h b/drivers/cyw43/cyw43.h
index 7d3e30f5d..5ca489831 100644
--- a/drivers/cyw43/cyw43.h
+++ b/drivers/cyw43/cyw43.h
@@ -47,6 +47,14 @@
#define CYW43_LINK_NONET (-2)
#define CYW43_LINK_BADAUTH (-3)
+#ifndef MICROPY_BOARD_HOSTNAME
+#define MICROPY_BOARD_HOSTNAME "PYBD"
+#endif
+
+#ifndef MICROPY_BOARD_HOSTNAME_LENGTH
+#define MICROPY_BOARD_HOSTNAME_LENGTH 16
+#endif
+
typedef struct _cyw43_t {
cyw43_ll_t cyw43_ll;
@@ -76,6 +84,7 @@ typedef struct _cyw43_t {
struct netif netif[2];
struct dhcp dhcp_client;
dhcp_server_t dhcp_server;
+ char hostname[MICROPY_BOARD_HOSTNAME_LENGTH];
} cyw43_t;
extern cyw43_t cyw43_state;
diff --git a/drivers/cyw43/cyw43_ctrl.c b/drivers/cyw43/cyw43_ctrl.c
index 203bc812a..73e6e5895 100644
--- a/drivers/cyw43/cyw43_ctrl.c
+++ b/drivers/cyw43/cyw43_ctrl.c
@@ -101,6 +101,8 @@ void cyw43_init(cyw43_t *self) {
self->ap_channel = 3;
self->ap_ssid_len = 0;
self->ap_key_len = 0;
+ strncpy(self->hostname, MICROPY_BOARD_HOSTNAME, MICROPY_BOARD_HOSTNAME_LENGTH);
+ self->hostname[MICROPY_BOARD_HOSTNAME_LENGTH - 1] = 0;
cyw43_poll = NULL;
}
diff --git a/drivers/cyw43/cyw43_lwip.c b/drivers/cyw43/cyw43_lwip.c
index 16ae60237..f12a378c5 100644
--- a/drivers/cyw43/cyw43_lwip.c
+++ b/drivers/cyw43/cyw43_lwip.c
@@ -117,7 +117,7 @@ void cyw43_tcpip_init(cyw43_t *self, int itf) {
#else
netif_add(n, &ipconfig[0], &ipconfig[1], &ipconfig[2], self, cyw43_netif_init, netif_input);
#endif
- netif_set_hostname(n, "PYBD");
+ netif_set_hostname(n, self->hostname);
netif_set_default(n);
netif_set_up(n);
@@ -132,8 +132,9 @@ void cyw43_tcpip_init(cyw43_t *self, int itf) {
#if LWIP_MDNS_RESPONDER
// TODO better to call after IP address is set
char mdns_hostname[9];
- memcpy(&mdns_hostname[0], "PYBD", 4);
- mp_hal_get_mac_ascii(MP_HAL_MAC_WLAN0, 8, 4, &mdns_hostname[4]);
+ int len = MIN(strlen(self->hostname), 4);
+ memcpy(&mdns_hostname[0], self->hostname, len);
+ mp_hal_get_mac_ascii(MP_HAL_MAC_WLAN0, 4 + len, 8 - len, &mdns_hostname[len]);
mdns_hostname[8] = '\0';
mdns_resp_add_netif(n, mdns_hostname, 60);
#endif