DBus: Add support for P2P primitives
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
911e97e400
commit
9abafccc0d
7 changed files with 3500 additions and 0 deletions
|
@ -1140,6 +1140,9 @@ DBUS_OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
|
||||||
ifdef CONFIG_WPS
|
ifdef CONFIG_WPS
|
||||||
DBUS_OBJS += dbus/dbus_new_handlers_wps.o
|
DBUS_OBJS += dbus/dbus_new_handlers_wps.o
|
||||||
endif
|
endif
|
||||||
|
ifdef CONFIG_P2P
|
||||||
|
DBUS_OBJS += dbus/dbus_new_handlers_p2p.o
|
||||||
|
endif
|
||||||
ifndef DBUS_LIBS
|
ifndef DBUS_LIBS
|
||||||
DBUS_LIBS := $(shell pkg-config --libs dbus-1)
|
DBUS_LIBS := $(shell pkg-config --libs dbus-1)
|
||||||
endif
|
endif
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -16,6 +16,8 @@
|
||||||
#ifndef CTRL_IFACE_DBUS_NEW_H
|
#ifndef CTRL_IFACE_DBUS_NEW_H
|
||||||
#define CTRL_IFACE_DBUS_NEW_H
|
#define CTRL_IFACE_DBUS_NEW_H
|
||||||
|
|
||||||
|
#include "p2p/p2p.h"
|
||||||
|
|
||||||
struct wpa_global;
|
struct wpa_global;
|
||||||
struct wpa_supplicant;
|
struct wpa_supplicant;
|
||||||
struct wpa_ssid;
|
struct wpa_ssid;
|
||||||
|
@ -61,6 +63,21 @@ enum wpas_dbus_bss_prop {
|
||||||
#define WPAS_DBUS_NEW_BSSIDS_PART "BSSs"
|
#define WPAS_DBUS_NEW_BSSIDS_PART "BSSs"
|
||||||
#define WPAS_DBUS_NEW_IFACE_BSS WPAS_DBUS_NEW_INTERFACE ".BSS"
|
#define WPAS_DBUS_NEW_IFACE_BSS WPAS_DBUS_NEW_INTERFACE ".BSS"
|
||||||
|
|
||||||
|
#define WPAS_DBUS_NEW_IFACE_P2PDEVICE \
|
||||||
|
WPAS_DBUS_NEW_IFACE_INTERFACE ".P2PDevice"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Groups correspond to P2P groups where this device is a GO (owner)
|
||||||
|
*/
|
||||||
|
#define WPAS_DBUS_NEW_P2P_GROUPS_PART "Groups"
|
||||||
|
#define WPAS_DBUS_NEW_IFACE_P2P_GROUP WPAS_DBUS_NEW_INTERFACE ".Group"
|
||||||
|
|
||||||
|
#define WPAS_DBUS_NEW_P2P_PEERS_PART "Peers"
|
||||||
|
#define WPAS_DBUS_NEW_IFACE_P2P_PEER WPAS_DBUS_NEW_INTERFACE ".Peer"
|
||||||
|
|
||||||
|
#define WPAS_DBUS_NEW_P2P_GROUPMEMBERS_PART "Members"
|
||||||
|
#define WPAS_DBUS_NEW_IFACE_P2P_GROUPMEMBER \
|
||||||
|
WPAS_DBUS_NEW_INTERFACE ".GroupMember"
|
||||||
|
|
||||||
/* Errors */
|
/* Errors */
|
||||||
#define WPAS_DBUS_ERROR_UNKNOWN_ERROR \
|
#define WPAS_DBUS_ERROR_UNKNOWN_ERROR \
|
||||||
|
@ -78,6 +95,13 @@ enum wpas_dbus_bss_prop {
|
||||||
#define WPAS_DBUS_ERROR_NETWORK_UNKNOWN \
|
#define WPAS_DBUS_ERROR_NETWORK_UNKNOWN \
|
||||||
WPAS_DBUS_NEW_INTERFACE ".NetworkUnknown"
|
WPAS_DBUS_NEW_INTERFACE ".NetworkUnknown"
|
||||||
|
|
||||||
|
#define WPAS_DBUS_ERROR_CONNECT_CHANNEL_UNAVAILABLE \
|
||||||
|
WPAS_DBUS_NEW_INTERFACE ".ConnectChannelUnavailable"
|
||||||
|
#define WPAS_DBUS_ERROR_CONNECT_CHANNEL_UNSUPPORTED \
|
||||||
|
WPAS_DBUS_NEW_INTERFACE ".ConnectChannelUnsupported"
|
||||||
|
#define WPAS_DBUS_ERROR_CONNECT_UNSPECIFIED_ERROR \
|
||||||
|
WPAS_DBUS_NEW_INTERFACE ".ConnectUnspecifiedError"
|
||||||
|
|
||||||
#define WPAS_DBUS_ERROR_BLOB_EXISTS \
|
#define WPAS_DBUS_ERROR_BLOB_EXISTS \
|
||||||
WPAS_DBUS_NEW_INTERFACE ".BlobExists"
|
WPAS_DBUS_NEW_INTERFACE ".BlobExists"
|
||||||
#define WPAS_DBUS_ERROR_BLOB_UNKNOWN \
|
#define WPAS_DBUS_ERROR_BLOB_UNKNOWN \
|
||||||
|
@ -122,6 +146,48 @@ void wpas_dbus_signal_debug_level_changed(struct wpa_global *global);
|
||||||
void wpas_dbus_signal_debug_timestamp_changed(struct wpa_global *global);
|
void wpas_dbus_signal_debug_timestamp_changed(struct wpa_global *global);
|
||||||
void wpas_dbus_signal_debug_show_keys_changed(struct wpa_global *global);
|
void wpas_dbus_signal_debug_show_keys_changed(struct wpa_global *global);
|
||||||
|
|
||||||
|
int wpas_dbus_register_peer(struct wpa_supplicant *wpa_s, const u8 *dev_addr);
|
||||||
|
void wpas_dbus_signal_peer_device_found(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *dev_addr);
|
||||||
|
int wpas_dbus_unregister_peer(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *dev_addr);
|
||||||
|
void wpas_dbus_signal_peer_device_lost(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *dev_addr);
|
||||||
|
void wpas_dbus_signal_p2p_group_removed(struct wpa_supplicant *wpa_s,
|
||||||
|
const char *role);
|
||||||
|
void wpas_dbus_signal_p2p_provision_discovery(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *dev_addr, int request,
|
||||||
|
enum p2p_prov_disc_status status,
|
||||||
|
u16 config_methods,
|
||||||
|
unsigned int generated_pin);
|
||||||
|
void wpas_dbus_signal_p2p_go_neg_req(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *src, u16 dev_passwd_id);
|
||||||
|
void wpas_dbus_signal_p2p_group_started(struct wpa_supplicant *wpa_s,
|
||||||
|
const struct wpa_ssid *ssid,
|
||||||
|
int client, int network_id);
|
||||||
|
void wpas_dbus_register_p2p_group(struct wpa_supplicant *wpa_s,
|
||||||
|
struct wpa_ssid *ssid);
|
||||||
|
void wpas_dbus_signal_p2p_go_neg_resp(struct wpa_supplicant *wpa_s, int status);
|
||||||
|
void wpas_dbus_unregister_p2p_group(struct wpa_supplicant *wpa_s,
|
||||||
|
const struct wpa_ssid *ssid);
|
||||||
|
void wpas_dbus_signal_p2p_invitation_result(struct wpa_supplicant *wpa_s,
|
||||||
|
int status, const u8 *bssid);
|
||||||
|
void wpas_dbus_register_p2p_groupmember(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *p2p_if_addr);
|
||||||
|
void wpas_dbus_unregister_p2p_groupmember(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *p2p_if_addr);
|
||||||
|
void wpas_dbus_signal_p2p_peer_disconnected(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *member);
|
||||||
|
void wpas_dbus_signal_p2p_sd_request(struct wpa_supplicant *wpa_s,
|
||||||
|
int freq, const u8 *sa, u8 dialog_token,
|
||||||
|
u16 update_indic, const u8 *tlvs,
|
||||||
|
size_t tlvs_len);
|
||||||
|
void wpas_dbus_signal_p2p_sd_response(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *sa, u16 update_indic,
|
||||||
|
const u8 *tlvs, size_t tlvs_len);
|
||||||
|
void wpas_dbus_signal_p2p_peer_joined(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *member);
|
||||||
|
|
||||||
#else /* CONFIG_CTRL_IFACE_DBUS_NEW */
|
#else /* CONFIG_CTRL_IFACE_DBUS_NEW */
|
||||||
|
|
||||||
static inline int wpas_dbus_register_interface(struct wpa_supplicant *wpa_s)
|
static inline int wpas_dbus_register_interface(struct wpa_supplicant *wpa_s)
|
||||||
|
@ -231,6 +297,119 @@ static inline void wpas_dbus_signal_debug_show_keys_changed(
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int wpas_dbus_register_peer(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *dev_addr)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int wpas_dbus_unregister_peer(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *dev_addr)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_signal_p2p_group_removed(struct wpa_supplicant *wpa_s,
|
||||||
|
const char *role)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_signal_p2p_provision_discovery(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *dev_addr, int request,
|
||||||
|
enum p2p_prov_disc_status status,
|
||||||
|
u16 config_methods,
|
||||||
|
unsigned int generated_pin)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void wpas_dbus_signal_p2p_go_neg_req(
|
||||||
|
struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *src,
|
||||||
|
u16 dev_passwd_id)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_signal_p2p_group_started(struct wpa_supplicant *wpa_s,
|
||||||
|
const struct wpa_ssid *ssid,
|
||||||
|
int client, int network_id)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_register_p2p_group(struct wpa_supplicant *wpa_s,
|
||||||
|
struct wpa_ssid *ssid)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_signal_p2p_go_neg_resp(struct wpa_supplicant *wpa_s, int status)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_unregister_p2p_group(struct wpa_supplicant *wpa_s,
|
||||||
|
const struct wpa_ssid *ssid)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void wpas_dbus_signal_p2p_invitation_result(
|
||||||
|
struct wpa_supplicant *wpa_s, int status,
|
||||||
|
const u8 *bssid)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_register_p2p_groupmember(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *p2p_if_addr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_signal_p2p_sd_request(struct wpa_supplicant *wpa_s, int freq,
|
||||||
|
const u8 *sa, u8 dialog_token, u16 update_indic,
|
||||||
|
const u8 *tlvs, size_t tlvs_len)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_signal_p2p_sd_response(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *sa, u16 update_indic,
|
||||||
|
const u8 *tlvs, size_t tlvs_len)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_unregister_p2p_groupmember(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *p2p_if_addr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_signal_p2p_peer_joined(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *member)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_signal_peer_device_found(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *dev_addr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_signal_peer_device_lost(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *dev_addr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wpas_dbus_signal_p2p_peer_disconnected(struct wpa_supplicant *wpa_s,
|
||||||
|
const u8 *member)
|
||||||
|
{
|
||||||
|
}
|
||||||
#endif /* CONFIG_CTRL_IFACE_DBUS_NEW */
|
#endif /* CONFIG_CTRL_IFACE_DBUS_NEW */
|
||||||
|
|
||||||
#endif /* CTRL_IFACE_DBUS_H_NEW */
|
#endif /* CTRL_IFACE_DBUS_H_NEW */
|
||||||
|
|
1772
wpa_supplicant/dbus/dbus_new_handlers_p2p.c
Normal file
1772
wpa_supplicant/dbus/dbus_new_handlers_p2p.c
Normal file
File diff suppressed because it is too large
Load diff
142
wpa_supplicant/dbus/dbus_new_handlers_p2p.h
Normal file
142
wpa_supplicant/dbus/dbus_new_handlers_p2p.h
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
|
||||||
|
/*
|
||||||
|
* WPA Supplicant / dbus-based control interface for p2p
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* Alternatively, this software may be distributed under the terms of BSD
|
||||||
|
* license.
|
||||||
|
*
|
||||||
|
* See README and COPYING for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DBUS_NEW_HANDLERS_P2P_H
|
||||||
|
#define DBUS_NEW_HANDLERS_P2P_H
|
||||||
|
|
||||||
|
struct peer_handler_args {
|
||||||
|
struct wpa_supplicant *wpa_s;
|
||||||
|
u8 p2p_device_addr[ETH_ALEN];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct groupmember_handler_args {
|
||||||
|
struct wpa_supplicant *wpa_s;
|
||||||
|
u8 member_addr[ETH_ALEN];
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* P2P Device methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_find(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_stop_find(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_rejectpeer(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_listen(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_extendedlisten(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_presence_request(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_prov_disc_req(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_group_add(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_connect(
|
||||||
|
DBusMessage *message,
|
||||||
|
struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_invite(
|
||||||
|
DBusMessage *message,
|
||||||
|
struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_disconnect(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_flush(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_add_service(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_delete_service(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_flush_service(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_service_sd_req(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_service_sd_res(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_service_sd_cancel_req(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_service_update(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_handler_p2p_serv_disc_external(
|
||||||
|
DBusMessage *message, struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* P2P Device property accessor methods.
|
||||||
|
*/
|
||||||
|
DBusMessage *wpas_dbus_setter_p2p_device_properties(DBusMessage *message,
|
||||||
|
struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_getter_p2p_device_properties(DBusMessage *message,
|
||||||
|
struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_getter_p2p_peers(DBusMessage *message,
|
||||||
|
struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_getter_p2p_role(DBusMessage *message,
|
||||||
|
struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_getter_p2p_group(DBusMessage *message,
|
||||||
|
struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_getter_p2p_peergo(DBusMessage *message,
|
||||||
|
struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* P2P Peer properties.
|
||||||
|
*/
|
||||||
|
DBusMessage *wpas_dbus_getter_p2p_peer_properties(
|
||||||
|
DBusMessage *message,
|
||||||
|
struct peer_handler_args *peer);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_getter_p2p_peer_ies(
|
||||||
|
DBusMessage *message,
|
||||||
|
struct peer_handler_args *peer);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* P2P Group properties
|
||||||
|
*/
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_getter_p2p_group_members(
|
||||||
|
DBusMessage *message,
|
||||||
|
struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_getter_p2p_group_properties(
|
||||||
|
DBusMessage *message,
|
||||||
|
struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
DBusMessage *wpas_dbus_setter_p2p_group_properties(
|
||||||
|
DBusMessage *message,
|
||||||
|
struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
#endif /* DBUS_NEW_HANDLERS_P2P_H */
|
|
@ -368,12 +368,23 @@ void wpas_notify_resume(struct wpa_global *global)
|
||||||
void wpas_notify_p2p_device_found(struct wpa_supplicant *wpa_s,
|
void wpas_notify_p2p_device_found(struct wpa_supplicant *wpa_s,
|
||||||
const u8 *dev_addr, int new_device)
|
const u8 *dev_addr, int new_device)
|
||||||
{
|
{
|
||||||
|
if (new_device) {
|
||||||
|
/* Create the new peer object */
|
||||||
|
wpas_dbus_register_peer(wpa_s, dev_addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Notify a new peer has been detected*/
|
||||||
|
wpas_dbus_signal_peer_device_found(wpa_s, dev_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void wpas_notify_p2p_device_lost(struct wpa_supplicant *wpa_s,
|
void wpas_notify_p2p_device_lost(struct wpa_supplicant *wpa_s,
|
||||||
const u8 *dev_addr)
|
const u8 *dev_addr)
|
||||||
{
|
{
|
||||||
|
wpas_dbus_unregister_peer(wpa_s, dev_addr);
|
||||||
|
|
||||||
|
/* Create signal on interface object*/
|
||||||
|
wpas_dbus_signal_peer_device_lost(wpa_s, dev_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -381,23 +392,29 @@ void wpas_notify_p2p_group_removed(struct wpa_supplicant *wpa_s,
|
||||||
const struct wpa_ssid *ssid,
|
const struct wpa_ssid *ssid,
|
||||||
const char *role)
|
const char *role)
|
||||||
{
|
{
|
||||||
|
wpas_dbus_unregister_p2p_group(wpa_s, ssid);
|
||||||
|
|
||||||
|
wpas_dbus_signal_p2p_group_removed(wpa_s, role);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void wpas_notify_p2p_go_neg_req(struct wpa_supplicant *wpa_s,
|
void wpas_notify_p2p_go_neg_req(struct wpa_supplicant *wpa_s,
|
||||||
const u8 *src, u16 dev_passwd_id)
|
const u8 *src, u16 dev_passwd_id)
|
||||||
{
|
{
|
||||||
|
wpas_dbus_signal_p2p_go_neg_req(wpa_s, src, dev_passwd_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void wpas_notify_p2p_go_neg_completed(struct wpa_supplicant *wpa_s, int status)
|
void wpas_notify_p2p_go_neg_completed(struct wpa_supplicant *wpa_s, int status)
|
||||||
{
|
{
|
||||||
|
wpas_dbus_signal_p2p_go_neg_resp(wpa_s, status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void wpas_notify_p2p_invitation_result(struct wpa_supplicant *wpa_s,
|
void wpas_notify_p2p_invitation_result(struct wpa_supplicant *wpa_s,
|
||||||
int status, const u8 *bssid)
|
int status, const u8 *bssid)
|
||||||
{
|
{
|
||||||
|
wpas_dbus_signal_p2p_invitation_result(wpa_s, status, bssid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -406,6 +423,8 @@ void wpas_notify_p2p_sd_request(struct wpa_supplicant *wpa_s,
|
||||||
u16 update_indic, const u8 *tlvs,
|
u16 update_indic, const u8 *tlvs,
|
||||||
size_t tlvs_len)
|
size_t tlvs_len)
|
||||||
{
|
{
|
||||||
|
wpas_dbus_signal_p2p_sd_request(wpa_s, freq, sa, dialog_token,
|
||||||
|
update_indic, tlvs, tlvs_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -413,6 +432,8 @@ void wpas_notify_p2p_sd_response(struct wpa_supplicant *wpa_s,
|
||||||
const u8 *sa, u16 update_indic,
|
const u8 *sa, u16 update_indic,
|
||||||
const u8 *tlvs, size_t tlvs_len)
|
const u8 *tlvs, size_t tlvs_len)
|
||||||
{
|
{
|
||||||
|
wpas_dbus_signal_p2p_sd_response(wpa_s, sa, update_indic,
|
||||||
|
tlvs, tlvs_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -435,6 +456,9 @@ void wpas_notify_p2p_provision_discovery(struct wpa_supplicant *wpa_s,
|
||||||
u16 config_methods,
|
u16 config_methods,
|
||||||
unsigned int generated_pin)
|
unsigned int generated_pin)
|
||||||
{
|
{
|
||||||
|
wpas_dbus_signal_p2p_provision_discovery(wpa_s, dev_addr, request,
|
||||||
|
status, config_methods,
|
||||||
|
generated_pin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -442,6 +466,10 @@ void wpas_notify_p2p_group_started(struct wpa_supplicant *wpa_s,
|
||||||
struct wpa_ssid *ssid, int network_id,
|
struct wpa_ssid *ssid, int network_id,
|
||||||
int client)
|
int client)
|
||||||
{
|
{
|
||||||
|
/* Notify a group has been started */
|
||||||
|
wpas_dbus_register_p2p_group(wpa_s, ssid);
|
||||||
|
|
||||||
|
wpas_dbus_signal_p2p_group_started(wpa_s, ssid, client, network_id);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_P2P */
|
#endif /* CONFIG_P2P */
|
||||||
|
|
||||||
|
@ -449,12 +477,35 @@ void wpas_notify_p2p_group_started(struct wpa_supplicant *wpa_s,
|
||||||
static void wpas_notify_ap_sta_authorized(struct wpa_supplicant *wpa_s,
|
static void wpas_notify_ap_sta_authorized(struct wpa_supplicant *wpa_s,
|
||||||
const u8 *sta)
|
const u8 *sta)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* Register a group member object corresponding to this peer and
|
||||||
|
* emit a PeerJoined signal. This will check if it really is a
|
||||||
|
* P2P group.
|
||||||
|
*/
|
||||||
|
wpas_dbus_register_p2p_groupmember(wpa_s, sta);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create 'peer-joined' signal on group object -- will also
|
||||||
|
* check P2P itself.
|
||||||
|
*/
|
||||||
|
wpas_dbus_signal_p2p_peer_joined(wpa_s, sta);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void wpas_notify_ap_sta_deauthorized(struct wpa_supplicant *wpa_s,
|
static void wpas_notify_ap_sta_deauthorized(struct wpa_supplicant *wpa_s,
|
||||||
const u8 *sta)
|
const u8 *sta)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* Unregister a group member object corresponding to this peer
|
||||||
|
* if this is a P2P group.
|
||||||
|
*/
|
||||||
|
wpas_dbus_unregister_p2p_groupmember(wpa_s, sta);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create 'peer-disconnected' signal on group object if this
|
||||||
|
* is a P2P group.
|
||||||
|
*/
|
||||||
|
wpas_dbus_signal_p2p_peer_disconnected(wpa_s, sta);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -342,6 +342,7 @@ struct wpa_supplicant {
|
||||||
#endif /* CONFIG_CTRL_IFACE_DBUS */
|
#endif /* CONFIG_CTRL_IFACE_DBUS */
|
||||||
#ifdef CONFIG_CTRL_IFACE_DBUS_NEW
|
#ifdef CONFIG_CTRL_IFACE_DBUS_NEW
|
||||||
char *dbus_new_path;
|
char *dbus_new_path;
|
||||||
|
char *dbus_groupobj_path;
|
||||||
#endif /* CONFIG_CTRL_IFACE_DBUS_NEW */
|
#endif /* CONFIG_CTRL_IFACE_DBUS_NEW */
|
||||||
char bridge_ifname[16];
|
char bridge_ifname[16];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue