diff --git a/src/net/nl_wifi_w600.c b/src/net/nl_wifi_w600.c index 3ba7b53..e39f706 100644 --- a/src/net/nl_wifi_w600.c +++ b/src/net/nl_wifi_w600.c @@ -280,7 +280,8 @@ static void net_task(void *arg) void *msg = NULL; nl_wifi_actions_t ev, tick; uint32_t m = 0, now; - bool got_ip_event = false, connected_now, ap_wanted, unexpected_softap; + bool got_ip_event = false, connected_now, ap_wanted, unexpected_softap, + standalone_ap_up; bool recheck_ap = false; memset(&ev, 0, sizeof ev); @@ -331,6 +332,9 @@ static void net_task(void *arg) * clear_softap_param() touch the SDK's own state and must not run while s_lock * (which only guards s_sm and the credential buffers) is held. */ unexpected_softap = m == (MSG_NETIF | NETIF_WIFI_SOFTAP_SUCCESS) && !ap_wanted; + /* Nur die Lage merken; der Aufruf nach aussen folgt hinter der Entsperrung. */ + standalone_ap_up = m == (MSG_NETIF | NETIF_WIFI_SOFTAP_SUCCESS) && + s_sm.state == NL_WIFI_ST_STANDALONE; unlock(); if (unexpected_softap) { @@ -348,6 +352,12 @@ static void net_task(void *arg) execute(tick); if (got_ip_event && connected_now) nl_mdns_on_ip_up(); + /* Im eigenen AP gibt es kein Stationsereignis, an dem mDNS haengen koennte. + * Ohne diesen Aufruf findet die App ein Standalone-Geraet nicht - am + * 2026-10-01 am EVK gemessen: REST auf der AP-IP lief, ninlight-681f.local + * war weder aufloesbar noch sichtbar. */ + if (standalone_ap_up) + nl_mdns_on_ip_up(); /* M3: retry a softap create that failed, as long as the SM still wants the AP up. */ if (s_ap_create_pending && ap_wanted && due_now(now, s_ap_create_retry_at)) {