D-Bus: Send P2P IP address assignment info with GroupStarted event
This commit adds IP address information into GroupStarted event on the P2P client side like it is sent over the control interface. Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
This commit is contained in:
parent
046fa6fd11
commit
18f1611797
5 changed files with 22 additions and 9 deletions
|
@ -1256,9 +1256,12 @@ static void peer_groups_changed(struct wpa_supplicant *wpa_s)
|
||||||
* @wpa_s: %wpa_supplicant network interface data
|
* @wpa_s: %wpa_supplicant network interface data
|
||||||
* @client: this device is P2P client
|
* @client: this device is P2P client
|
||||||
* @persistent: 0 - non persistent group, 1 - persistent group
|
* @persistent: 0 - non persistent group, 1 - persistent group
|
||||||
|
* @ip: When group role is client, it contains local IP address, netmask, and
|
||||||
|
* GO's IP address, if assigned; otherwise, NULL
|
||||||
*/
|
*/
|
||||||
void wpas_dbus_signal_p2p_group_started(struct wpa_supplicant *wpa_s,
|
void wpas_dbus_signal_p2p_group_started(struct wpa_supplicant *wpa_s,
|
||||||
int client, int persistent)
|
int client, int persistent,
|
||||||
|
const u8 *ip)
|
||||||
{
|
{
|
||||||
DBusMessage *msg;
|
DBusMessage *msg;
|
||||||
DBusMessageIter iter, dict_iter;
|
DBusMessageIter iter, dict_iter;
|
||||||
|
@ -1300,6 +1303,13 @@ void wpas_dbus_signal_p2p_group_started(struct wpa_supplicant *wpa_s,
|
||||||
!wpa_dbus_dict_append_bool(&dict_iter, "persistent", persistent) ||
|
!wpa_dbus_dict_append_bool(&dict_iter, "persistent", persistent) ||
|
||||||
!wpa_dbus_dict_append_object_path(&dict_iter, "group_object",
|
!wpa_dbus_dict_append_object_path(&dict_iter, "group_object",
|
||||||
wpa_s->dbus_groupobj_path) ||
|
wpa_s->dbus_groupobj_path) ||
|
||||||
|
(ip &&
|
||||||
|
(!wpa_dbus_dict_append_byte_array(&dict_iter, "IpAddr",
|
||||||
|
(char *) ip, 4) ||
|
||||||
|
!wpa_dbus_dict_append_byte_array(&dict_iter, "IpAddrMask",
|
||||||
|
(char *) ip + 4, 4) ||
|
||||||
|
!wpa_dbus_dict_append_byte_array(&dict_iter, "IpAddrGo",
|
||||||
|
(char *) ip + 8, 4))) ||
|
||||||
!wpa_dbus_dict_close_write(&iter, &dict_iter)) {
|
!wpa_dbus_dict_close_write(&iter, &dict_iter)) {
|
||||||
wpa_printf(MSG_ERROR, "dbus: Failed to construct signal");
|
wpa_printf(MSG_ERROR, "dbus: Failed to construct signal");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -190,7 +190,8 @@ void wpas_dbus_signal_p2p_go_neg_req(struct wpa_supplicant *wpa_s,
|
||||||
const u8 *src, u16 dev_passwd_id,
|
const u8 *src, u16 dev_passwd_id,
|
||||||
u8 go_intent);
|
u8 go_intent);
|
||||||
void wpas_dbus_signal_p2p_group_started(struct wpa_supplicant *wpa_s,
|
void wpas_dbus_signal_p2p_group_started(struct wpa_supplicant *wpa_s,
|
||||||
int client, int persistent);
|
int client, int persistent,
|
||||||
|
const u8 *ip);
|
||||||
void wpas_dbus_signal_p2p_group_formation_failure(struct wpa_supplicant *wpa_s,
|
void wpas_dbus_signal_p2p_group_formation_failure(struct wpa_supplicant *wpa_s,
|
||||||
const char *reason);
|
const char *reason);
|
||||||
void wpas_dbus_register_p2p_group(struct wpa_supplicant *wpa_s,
|
void wpas_dbus_register_p2p_group(struct wpa_supplicant *wpa_s,
|
||||||
|
@ -400,7 +401,8 @@ static inline void wpas_dbus_signal_p2p_go_neg_req(struct wpa_supplicant *wpa_s,
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
wpas_dbus_signal_p2p_group_started(struct wpa_supplicant *wpa_s,
|
wpas_dbus_signal_p2p_group_started(struct wpa_supplicant *wpa_s,
|
||||||
int client, int persistent)
|
int client, int persistent,
|
||||||
|
const u8 *ip)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -669,12 +669,12 @@ void wpas_notify_p2p_provision_discovery(struct wpa_supplicant *wpa_s,
|
||||||
|
|
||||||
void wpas_notify_p2p_group_started(struct wpa_supplicant *wpa_s,
|
void wpas_notify_p2p_group_started(struct wpa_supplicant *wpa_s,
|
||||||
struct wpa_ssid *ssid, int persistent,
|
struct wpa_ssid *ssid, int persistent,
|
||||||
int client)
|
int client, const u8 *ip)
|
||||||
{
|
{
|
||||||
/* Notify a group has been started */
|
/* Notify a group has been started */
|
||||||
wpas_dbus_register_p2p_group(wpa_s, ssid);
|
wpas_dbus_register_p2p_group(wpa_s, ssid);
|
||||||
|
|
||||||
wpas_dbus_signal_p2p_group_started(wpa_s, client, persistent);
|
wpas_dbus_signal_p2p_group_started(wpa_s, client, persistent, ip);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,7 @@ void wpas_notify_p2p_provision_discovery(struct wpa_supplicant *wpa_s,
|
||||||
unsigned int generated_pin);
|
unsigned int generated_pin);
|
||||||
void wpas_notify_p2p_group_started(struct wpa_supplicant *wpa_s,
|
void wpas_notify_p2p_group_started(struct wpa_supplicant *wpa_s,
|
||||||
struct wpa_ssid *ssid, int persistent,
|
struct wpa_ssid *ssid, int persistent,
|
||||||
int client);
|
int client, const u8 *ip);
|
||||||
void wpas_notify_p2p_group_formation_failure(struct wpa_supplicant *wpa_s,
|
void wpas_notify_p2p_group_formation_failure(struct wpa_supplicant *wpa_s,
|
||||||
const char *reason);
|
const char *reason);
|
||||||
void wpas_notify_persistent_group_added(struct wpa_supplicant *wpa_s,
|
void wpas_notify_persistent_group_added(struct wpa_supplicant *wpa_s,
|
||||||
|
|
|
@ -1383,7 +1383,7 @@ static void wpas_group_formation_completed(struct wpa_supplicant *wpa_s,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client) {
|
if (!client) {
|
||||||
wpas_notify_p2p_group_started(wpa_s, ssid, persistent, 0);
|
wpas_notify_p2p_group_started(wpa_s, ssid, persistent, 0, NULL);
|
||||||
os_get_reltime(&wpa_s->global->p2p_go_wait_client);
|
os_get_reltime(&wpa_s->global->p2p_go_wait_client);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1801,7 +1801,8 @@ static void p2p_go_configured(void *ctx, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
wpas_notify_p2p_group_started(wpa_s, ssid,
|
wpas_notify_p2p_group_started(wpa_s, ssid,
|
||||||
params->persistent_group, 0);
|
params->persistent_group, 0,
|
||||||
|
NULL);
|
||||||
wpas_p2p_cross_connect_setup(wpa_s);
|
wpas_p2p_cross_connect_setup(wpa_s);
|
||||||
wpas_p2p_set_group_idle_timeout(wpa_s);
|
wpas_p2p_set_group_idle_timeout(wpa_s);
|
||||||
|
|
||||||
|
@ -7007,7 +7008,7 @@ void wpas_p2p_completed(struct wpa_supplicant *wpa_s)
|
||||||
wpas_p2p_store_persistent_group(wpa_s->p2pdev,
|
wpas_p2p_store_persistent_group(wpa_s->p2pdev,
|
||||||
ssid, go_dev_addr);
|
ssid, go_dev_addr);
|
||||||
|
|
||||||
wpas_notify_p2p_group_started(wpa_s, ssid, persistent, 1);
|
wpas_notify_p2p_group_started(wpa_s, ssid, persistent, 1, ip);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue