Message ID | 20180212192720.14325-1-vvavrychuk@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | fixed missing FindStopped in the case of separate P2P-Device interface | expand |
Just reminding about this issue. On Mon, Feb 12, 2018 at 9:27 PM, Vasyl Vavrychuk <vvavrychuk@gmail.com> wrote: > Propagate similiar change to p2p_group_formation_failure and > p2p_invitation_received. > > Some wireless controllers might have separate P2P-Device interface, see > as example result of 'iw dev': > > phy#0 > Unnamed/non-netdev interface > ... > type P2P-device > ... > Interface wlp2s0 > type managed > ... > > In this case there is separate 'struct wpa_supplicant' created for this > p2p-dev-* device as result of 'wpa_supplicant_add_iface > > wpas_p2p_add_p2pdev_interface > wpa_supplicant_add_iface'. > > This instance of wpa_supplicant is not registered in D-Bus > (wpas_dbus_register_*) since for corresponding P2P device interface flag > 'struct wpa_interface > p2p_mgmt' is set. > > But this instance is saved in p2p_init_wpa_s and is used for handling > P2P related D-Bus commands. Therefore we should look for D-Bus path in > the parent of p2p_init_wpa_s instance. > > Without this change test dbus_p2p_discovery starts failing if we set > support_p2p_device in vm-run.sh. > > Signed-off-by: Vasyl Vavrychuk <vvavrychuk@gmail.com> > --- > wpa_supplicant/dbus/dbus_new.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c > index 8115f7721..e0f16bbda 100644 > --- a/wpa_supplicant/dbus/dbus_new.c > +++ b/wpa_supplicant/dbus/dbus_new.c > @@ -2027,6 +2027,9 @@ void wpas_dbus_signal_p2p_group_formation_failure(struct wpa_supplicant *wpa_s, > if (iface == NULL) > return; > > + if (wpa_s->p2p_mgmt) > + wpa_s = wpa_s->parent; > + > msg = dbus_message_new_signal(wpa_s->dbus_new_path, > WPAS_DBUS_NEW_IFACE_P2PDEVICE, > "GroupFormationFailure"); > @@ -2068,6 +2071,9 @@ void wpas_dbus_signal_p2p_invitation_received(struct wpa_supplicant *wpa_s, > if (iface == NULL) > return; > > + if (wpa_s->p2p_mgmt) > + wpa_s = wpa_s->parent; > + > msg = dbus_message_new_signal(wpa_s->dbus_new_path, > WPAS_DBUS_NEW_IFACE_P2PDEVICE, > "InvitationReceived"); > @@ -4266,7 +4272,13 @@ void wpas_dbus_signal_p2p_find_stopped(struct wpa_supplicant *wpa_s) > iface = wpa_s->global->dbus; > > /* Do nothing if the control interface is not turned on */ > - if (iface == NULL || !wpa_s->dbus_new_path) > + if (iface == NULL) > + return; > + > + if (wpa_s->p2p_mgmt) > + wpa_s = wpa_s->parent; > + > + if (!wpa_s->dbus_new_path) > return; > > msg = dbus_message_new_signal(wpa_s->dbus_new_path, > -- > 2.11.0 >
On Mon, Feb 12, 2018 at 09:27:20PM +0200, Vasyl Vavrychuk wrote: > Propagate similiar change to p2p_group_formation_failure and > p2p_invitation_received. Thanks, applied.
diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c index 8115f7721..e0f16bbda 100644 --- a/wpa_supplicant/dbus/dbus_new.c +++ b/wpa_supplicant/dbus/dbus_new.c @@ -2027,6 +2027,9 @@ void wpas_dbus_signal_p2p_group_formation_failure(struct wpa_supplicant *wpa_s, if (iface == NULL) return; + if (wpa_s->p2p_mgmt) + wpa_s = wpa_s->parent; + msg = dbus_message_new_signal(wpa_s->dbus_new_path, WPAS_DBUS_NEW_IFACE_P2PDEVICE, "GroupFormationFailure"); @@ -2068,6 +2071,9 @@ void wpas_dbus_signal_p2p_invitation_received(struct wpa_supplicant *wpa_s, if (iface == NULL) return; + if (wpa_s->p2p_mgmt) + wpa_s = wpa_s->parent; + msg = dbus_message_new_signal(wpa_s->dbus_new_path, WPAS_DBUS_NEW_IFACE_P2PDEVICE, "InvitationReceived"); @@ -4266,7 +4272,13 @@ void wpas_dbus_signal_p2p_find_stopped(struct wpa_supplicant *wpa_s) iface = wpa_s->global->dbus; /* Do nothing if the control interface is not turned on */ - if (iface == NULL || !wpa_s->dbus_new_path) + if (iface == NULL) + return; + + if (wpa_s->p2p_mgmt) + wpa_s = wpa_s->parent; + + if (!wpa_s->dbus_new_path) return; msg = dbus_message_new_signal(wpa_s->dbus_new_path,
Propagate similiar change to p2p_group_formation_failure and p2p_invitation_received. Some wireless controllers might have separate P2P-Device interface, see as example result of 'iw dev': phy#0 Unnamed/non-netdev interface ... type P2P-device ... Interface wlp2s0 type managed ... In this case there is separate 'struct wpa_supplicant' created for this p2p-dev-* device as result of 'wpa_supplicant_add_iface > wpas_p2p_add_p2pdev_interface > wpa_supplicant_add_iface'. This instance of wpa_supplicant is not registered in D-Bus (wpas_dbus_register_*) since for corresponding P2P device interface flag 'struct wpa_interface > p2p_mgmt' is set. But this instance is saved in p2p_init_wpa_s and is used for handling P2P related D-Bus commands. Therefore we should look for D-Bus path in the parent of p2p_init_wpa_s instance. Without this change test dbus_p2p_discovery starts failing if we set support_p2p_device in vm-run.sh. Signed-off-by: Vasyl Vavrychuk <vvavrychuk@gmail.com> --- wpa_supplicant/dbus/dbus_new.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)