iwd: add iwd_device_connect_hidden via Station.ConnectHiddenNetwork

Async D-Bus call with error logged on failure. Backend support for the
upcoming Hidden Network UI affordance.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
nemunaire 2026-04-09 12:00:18 +07:00
commit 7a55d1da5a
2 changed files with 23 additions and 2 deletions

View file

@ -3,6 +3,7 @@
#include "iwd_props.h"
#include "iwd_manager.h"
#include "iwd_network.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -198,3 +199,22 @@ iwd_device_disconnect(Iwd_Device *d)
if (!d || !d->station_proxy) return;
eldbus_proxy_call(d->station_proxy, "Disconnect", NULL, NULL, -1, "");
}
static void
_on_connect_hidden_reply(void *data, const Eldbus_Message *msg, Eldbus_Pending *p EINA_UNUSED)
{
const char *en, *em;
char *ssid = data;
if (eldbus_message_error_get(msg, &en, &em))
fprintf(stderr, "e_iwd: ConnectHiddenNetwork('%s') failed: %s: %s\n",
ssid ? ssid : "?", en, em);
free(ssid);
}
void
iwd_device_connect_hidden(Iwd_Device *d, const char *ssid)
{
if (!d || !d->station_proxy || !ssid || !*ssid) return;
eldbus_proxy_call(d->station_proxy, "ConnectHiddenNetwork",
_on_connect_hidden_reply, strdup(ssid), -1, "s", ssid);
}

View file

@ -45,7 +45,8 @@ void iwd_device_apply_station_props(Iwd_Device *d, Eldbus_Message_Iter *props);
void iwd_device_attach_station (Iwd_Device *d);
void iwd_device_detach_station (Iwd_Device *d);
void iwd_device_scan (Iwd_Device *d);
void iwd_device_disconnect(Iwd_Device *d);
void iwd_device_scan (Iwd_Device *d);
void iwd_device_disconnect (Iwd_Device *d);
void iwd_device_connect_hidden (Iwd_Device *d, const char *ssid);
#endif