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:
parent
29ded04f10
commit
7a55d1da5a
2 changed files with 23 additions and 2 deletions
|
|
@ -3,6 +3,7 @@
|
||||||
#include "iwd_props.h"
|
#include "iwd_props.h"
|
||||||
#include "iwd_manager.h"
|
#include "iwd_manager.h"
|
||||||
#include "iwd_network.h"
|
#include "iwd_network.h"
|
||||||
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
|
@ -198,3 +199,22 @@ iwd_device_disconnect(Iwd_Device *d)
|
||||||
if (!d || !d->station_proxy) return;
|
if (!d || !d->station_proxy) return;
|
||||||
eldbus_proxy_call(d->station_proxy, "Disconnect", NULL, NULL, -1, "");
|
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);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -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_attach_station (Iwd_Device *d);
|
||||||
void iwd_device_detach_station (Iwd_Device *d);
|
void iwd_device_detach_station (Iwd_Device *d);
|
||||||
|
|
||||||
void iwd_device_scan (Iwd_Device *d);
|
void iwd_device_scan (Iwd_Device *d);
|
||||||
void iwd_device_disconnect(Iwd_Device *d);
|
void iwd_device_disconnect (Iwd_Device *d);
|
||||||
|
void iwd_device_connect_hidden (Iwd_Device *d, const char *ssid);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue