summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-02-01 17:34:07 +0100
committerThomas Haller <thaller@redhat.com>2019-02-01 17:34:07 +0100
commit027ef98cd4b44937d07c331868f1efa01b8e8e7c (patch)
treea81d64173679b7ddf2d500f4cbb66ff25567de30
parente491cdcf5731a241228de61a6885ef58735e686c (diff)
parent0ec30f890469c438e953d4a321d3852c565d2ccb (diff)
downloadNetworkManager-027ef98cd4b44937d07c331868f1efa01b8e8e7c.tar.gz
wifi-p2p: merge branch 'th/wifi-p2p-various' (pt1)
https://github.com/NetworkManager/NetworkManager/pull/290
-rw-r--r--Makefile.am59
-rw-r--r--clients/cli/connections.c2
-rw-r--r--clients/common/nm-meta-setting-desc.c298
-rw-r--r--clients/common/settings-docs.h.in4
-rw-r--r--docs/api/Makefile.am2
-rw-r--r--docs/api/network-manager-docs.xml14
-rw-r--r--docs/libnm/libnm-docs.xml8
-rw-r--r--introspection/meson.build20
-rw-r--r--introspection/org.freedesktop.NetworkManager.Device.WifiP2P.xml (renamed from introspection/org.freedesktop.NetworkManager.Device.P2PWireless.xml)35
-rw-r--r--introspection/org.freedesktop.NetworkManager.WifiP2PPeer.xml (renamed from introspection/org.freedesktop.NetworkManager.P2PPeer.xml)39
-rw-r--r--libnm-core/meson.build4
-rw-r--r--libnm-core/nm-core-enum-types.c.template4
-rw-r--r--libnm-core/nm-core-internal.h8
-rw-r--r--libnm-core/nm-core-types.h10
-rw-r--r--libnm-core/nm-dbus-interface.h65
-rw-r--r--libnm-core/nm-setting-p2p-wireless.h74
-rw-r--r--libnm-core/nm-setting-wifi-p2p.c (renamed from libnm-core/nm-setting-p2p-wireless.c)126
-rw-r--r--libnm-core/nm-setting-wifi-p2p.h65
-rw-r--r--libnm-core/nm-setting-wireless-security.c22
-rw-r--r--libnm-core/nm-utils-private.h6
-rw-r--r--libnm-core/nm-utils.c40
-rw-r--r--libnm/NetworkManager.h8
-rw-r--r--libnm/libnm.ver44
-rw-r--r--libnm/meson.build18
-rw-r--r--libnm/nm-autoptr.h4
-rw-r--r--libnm/nm-client.c22
-rw-r--r--libnm/nm-device-p2p-wifi.c537
-rw-r--r--libnm/nm-device-p2p-wifi.h85
-rw-r--r--libnm/nm-device-wifi-p2p.c428
-rw-r--r--libnm/nm-device-wifi-p2p.h63
-rw-r--r--libnm/nm-p2p-peer.c596
-rw-r--r--libnm/nm-p2p-peer.h104
-rw-r--r--libnm/nm-types.h6
-rw-r--r--libnm/nm-wifi-p2p-peer.c603
-rw-r--r--libnm/nm-wifi-p2p-peer.h89
-rw-r--r--po/POTFILES.in12
-rw-r--r--shared/nm-meta-setting.c24
-rw-r--r--shared/nm-meta-setting.h2
-rw-r--r--src/devices/wifi/meson.build2
-rw-r--r--src/devices/wifi/nm-device-p2p-wifi.h56
-rw-r--r--src/devices/wifi/nm-device-wifi-p2p.c (renamed from src/devices/wifi/nm-device-p2p-wifi.c)352
-rw-r--r--src/devices/wifi/nm-device-wifi-p2p.h55
-rw-r--r--src/devices/wifi/nm-device-wifi.c26
-rw-r--r--src/devices/wifi/nm-wifi-factory.c6
-rw-r--r--src/devices/wifi/nm-wifi-p2p-peer.c185
-rw-r--r--src/devices/wifi/nm-wifi-p2p-peer.h2
-rw-r--r--src/nm-types.h2
-rw-r--r--src/org.freedesktop.NetworkManager.conf4
-rw-r--r--vapi/NM-1.0.metadata6
49 files changed, 2061 insertions, 2185 deletions
diff --git a/Makefile.am b/Makefile.am
index 7a75a6637f..0a4063c39e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -431,8 +431,6 @@ introspection_sources = \
introspection/org.freedesktop.NetworkManager.Device.OvsInterface.h \
introspection/org.freedesktop.NetworkManager.Device.OvsPort.c \
introspection/org.freedesktop.NetworkManager.Device.OvsPort.h \
- introspection/org.freedesktop.NetworkManager.Device.P2PWireless.c \
- introspection/org.freedesktop.NetworkManager.Device.P2PWireless.h \
introspection/org.freedesktop.NetworkManager.Device.Ppp.c \
introspection/org.freedesktop.NetworkManager.Device.Ppp.h \
introspection/org.freedesktop.NetworkManager.Device.Statistics.c \
@@ -449,6 +447,8 @@ introspection_sources = \
introspection/org.freedesktop.NetworkManager.Device.Vxlan.h \
introspection/org.freedesktop.NetworkManager.Device.WiMax.c \
introspection/org.freedesktop.NetworkManager.Device.WiMax.h \
+ introspection/org.freedesktop.NetworkManager.Device.WifiP2P.c \
+ introspection/org.freedesktop.NetworkManager.Device.WifiP2P.h \
introspection/org.freedesktop.NetworkManager.Device.WireGuard.c \
introspection/org.freedesktop.NetworkManager.Device.WireGuard.h \
introspection/org.freedesktop.NetworkManager.Device.Wired.c \
@@ -465,8 +465,8 @@ introspection_sources = \
introspection/org.freedesktop.NetworkManager.IP4Config.h \
introspection/org.freedesktop.NetworkManager.IP6Config.c \
introspection/org.freedesktop.NetworkManager.IP6Config.h \
- introspection/org.freedesktop.NetworkManager.P2PPeer.c \
- introspection/org.freedesktop.NetworkManager.P2PPeer.h \
+ introspection/org.freedesktop.NetworkManager.WifiP2PPeer.c \
+ introspection/org.freedesktop.NetworkManager.WifiP2PPeer.h \
introspection/org.freedesktop.NetworkManager.PPP.c \
introspection/org.freedesktop.NetworkManager.PPP.h \
introspection/org.freedesktop.NetworkManager.SecretAgent.c \
@@ -508,7 +508,6 @@ DBUS_INTERFACE_DOCS = \
docs/api/dbus-org.freedesktop.NetworkManager.Device.OvsBridge.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.OvsInterface.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.OvsPort.xml \
- docs/api/dbus-org.freedesktop.NetworkManager.Device.P2PWireless.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.Ppp.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.Statistics.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.Team.xml \
@@ -517,6 +516,7 @@ DBUS_INTERFACE_DOCS = \
docs/api/dbus-org.freedesktop.NetworkManager.Device.Vlan.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.Vxlan.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.WiMax.xml \
+ docs/api/dbus-org.freedesktop.NetworkManager.Device.WifiP2P.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.WireGuard.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.Wired.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.Wireless.xml \
@@ -525,13 +525,13 @@ DBUS_INTERFACE_DOCS = \
docs/api/dbus-org.freedesktop.NetworkManager.DnsManager.xml \
docs/api/dbus-org.freedesktop.NetworkManager.IP4Config.xml \
docs/api/dbus-org.freedesktop.NetworkManager.IP6Config.xml \
- docs/api/dbus-org.freedesktop.NetworkManager.P2PPeer.xml \
docs/api/dbus-org.freedesktop.NetworkManager.PPP.xml \
docs/api/dbus-org.freedesktop.NetworkManager.SecretAgent.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Settings.Connection.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Settings.xml \
docs/api/dbus-org.freedesktop.NetworkManager.VPN.Connection.xml \
docs/api/dbus-org.freedesktop.NetworkManager.VPN.Plugin.xml \
+ docs/api/dbus-org.freedesktop.NetworkManager.WifiP2PPeer.xml \
docs/api/dbus-org.freedesktop.NetworkManager.xml \
$(NULL)
@@ -554,27 +554,27 @@ dbusinterfacesdir = $(datadir)/dbus-1/interfaces
dbusinterfaces_DATA = \
introspection/org.freedesktop.NetworkManager.AccessPoint.xml \
- introspection/org.freedesktop.NetworkManager.Connection.Active.xml \
introspection/org.freedesktop.NetworkManager.AgentManager.xml \
introspection/org.freedesktop.NetworkManager.Checkpoint.xml \
+ introspection/org.freedesktop.NetworkManager.Connection.Active.xml \
+ introspection/org.freedesktop.NetworkManager.DHCP4Config.xml \
+ introspection/org.freedesktop.NetworkManager.DHCP6Config.xml \
introspection/org.freedesktop.NetworkManager.Device.Adsl.xml \
+ introspection/org.freedesktop.NetworkManager.Device.Bluetooth.xml \
introspection/org.freedesktop.NetworkManager.Device.Bond.xml \
introspection/org.freedesktop.NetworkManager.Device.Bridge.xml \
- introspection/org.freedesktop.NetworkManager.Device.Bluetooth.xml \
introspection/org.freedesktop.NetworkManager.Device.Dummy.xml \
- introspection/org.freedesktop.NetworkManager.Device.Wired.xml \
introspection/org.freedesktop.NetworkManager.Device.Generic.xml \
- introspection/org.freedesktop.NetworkManager.Device.Infiniband.xml \
introspection/org.freedesktop.NetworkManager.Device.IPTunnel.xml \
+ introspection/org.freedesktop.NetworkManager.Device.Infiniband.xml \
introspection/org.freedesktop.NetworkManager.Device.Lowpan.xml \
introspection/org.freedesktop.NetworkManager.Device.Macsec.xml \
introspection/org.freedesktop.NetworkManager.Device.Macvlan.xml \
introspection/org.freedesktop.NetworkManager.Device.Modem.xml \
introspection/org.freedesktop.NetworkManager.Device.OlpcMesh.xml \
+ introspection/org.freedesktop.NetworkManager.Device.OvsBridge.xml \
introspection/org.freedesktop.NetworkManager.Device.OvsInterface.xml \
introspection/org.freedesktop.NetworkManager.Device.OvsPort.xml \
- introspection/org.freedesktop.NetworkManager.Device.OvsBridge.xml \
- introspection/org.freedesktop.NetworkManager.Device.P2PWireless.xml \
introspection/org.freedesktop.NetworkManager.Device.Ppp.xml \
introspection/org.freedesktop.NetworkManager.Device.Statistics.xml \
introspection/org.freedesktop.NetworkManager.Device.Team.xml \
@@ -582,25 +582,26 @@ dbusinterfaces_DATA = \
introspection/org.freedesktop.NetworkManager.Device.Veth.xml \
introspection/org.freedesktop.NetworkManager.Device.Vlan.xml \
introspection/org.freedesktop.NetworkManager.Device.Vxlan.xml \
+ introspection/org.freedesktop.NetworkManager.Device.WiMax.xml \
+ introspection/org.freedesktop.NetworkManager.Device.WifiP2P.xml \
introspection/org.freedesktop.NetworkManager.Device.WireGuard.xml \
+ introspection/org.freedesktop.NetworkManager.Device.Wired.xml \
introspection/org.freedesktop.NetworkManager.Device.Wireless.xml \
- introspection/org.freedesktop.NetworkManager.Device.WiMax.xml \
introspection/org.freedesktop.NetworkManager.Device.Wpan.xml \
introspection/org.freedesktop.NetworkManager.Device.xml \
- introspection/org.freedesktop.NetworkManager.DHCP4Config.xml \
- introspection/org.freedesktop.NetworkManager.DHCP6Config.xml \
introspection/org.freedesktop.NetworkManager.DnsManager.xml \
introspection/org.freedesktop.NetworkManager.IP4Config.xml \
introspection/org.freedesktop.NetworkManager.IP6Config.xml \
- introspection/org.freedesktop.NetworkManager.xml \
- introspection/org.freedesktop.NetworkManager.P2PPeer.xml \
introspection/org.freedesktop.NetworkManager.PPP.xml \
introspection/org.freedesktop.NetworkManager.SecretAgent.xml \
introspection/org.freedesktop.NetworkManager.Settings.Connection.xml \
introspection/org.freedesktop.NetworkManager.Settings.xml \
introspection/org.freedesktop.NetworkManager.VPN.Connection.xml \
introspection/org.freedesktop.NetworkManager.VPN.Plugin.xml \
- introspection/org.freedesktop.NetworkManager.WiMax.Nsp.xml
+ introspection/org.freedesktop.NetworkManager.WiMax.Nsp.xml \
+ introspection/org.freedesktop.NetworkManager.WifiP2PPeer.xml \
+ introspection/org.freedesktop.NetworkManager.xml \
+ $(NULL)
CLEANFILES += $(introspection_sources)
CLEANFILES += $(DBUS_INTERFACE_DOCS)
@@ -653,7 +654,6 @@ libnm_core_lib_h_pub_real = \
libnm-core/nm-setting-ovs-interface.h \
libnm-core/nm-setting-ovs-patch.h \
libnm-core/nm-setting-ovs-port.h \
- libnm-core/nm-setting-p2p-wireless.h \
libnm-core/nm-setting-ppp.h \
libnm-core/nm-setting-pppoe.h \
libnm-core/nm-setting-proxy.h \
@@ -667,6 +667,7 @@ libnm_core_lib_h_pub_real = \
libnm-core/nm-setting-vlan.h \
libnm-core/nm-setting-vpn.h \
libnm-core/nm-setting-vxlan.h \
+ libnm-core/nm-setting-wifi-p2p.h \
libnm-core/nm-setting-wimax.h \
libnm-core/nm-setting-wired.h \
libnm-core/nm-setting-wireless-security.h \
@@ -722,7 +723,6 @@ libnm_core_lib_c_settings_real = \
libnm-core/nm-setting-ovs-interface.c \
libnm-core/nm-setting-ovs-patch.c \
libnm-core/nm-setting-ovs-port.c \
- libnm-core/nm-setting-p2p-wireless.c \
libnm-core/nm-setting-ppp.c \
libnm-core/nm-setting-pppoe.c \
libnm-core/nm-setting-proxy.c \
@@ -736,6 +736,7 @@ libnm_core_lib_c_settings_real = \
libnm-core/nm-setting-vlan.c \
libnm-core/nm-setting-vpn.c \
libnm-core/nm-setting-vxlan.c \
+ libnm-core/nm-setting-wifi-p2p.c \
libnm-core/nm-setting-wimax.c \
libnm-core/nm-setting-wired.c \
libnm-core/nm-setting-wireless-security.c \
@@ -1041,15 +1042,15 @@ libnm_lib_h_pub_real = \
libnm/nm-device-macvlan.h \
libnm/nm-device-modem.h \
libnm/nm-device-olpc-mesh.h \
+ libnm/nm-device-ovs-bridge.h \
libnm/nm-device-ovs-interface.h \
libnm/nm-device-ovs-port.h \
- libnm/nm-device-ovs-bridge.h \
- libnm/nm-device-p2p-wifi.h \
libnm/nm-device-ppp.h \
libnm/nm-device-team.h \
libnm/nm-device-tun.h \
libnm/nm-device-vlan.h \
libnm/nm-device-vxlan.h \
+ libnm/nm-device-wifi-p2p.h \
libnm/nm-device-wifi.h \
libnm/nm-device-wimax.h \
libnm/nm-device-wireguard.h \
@@ -1058,7 +1059,6 @@ libnm_lib_h_pub_real = \
libnm/nm-dhcp-config.h \
libnm/nm-ip-config.h \
libnm/nm-object.h \
- libnm/nm-p2p-peer.h \
libnm/nm-remote-connection.h \
libnm/nm-secret-agent-old.h \
libnm/nm-types.h \
@@ -1066,6 +1066,7 @@ libnm_lib_h_pub_real = \
libnm/nm-vpn-editor.h \
libnm/nm-vpn-plugin-old.h \
libnm/nm-vpn-service-plugin.h \
+ libnm/nm-wifi-p2p-peer.h \
libnm/nm-wimax-nsp.h
libnm_lib_h_pub_mkenums = \
libnm/nm-enum-types.h
@@ -1102,15 +1103,15 @@ libnm_lib_c_real = \
libnm/nm-device-macvlan.c \
libnm/nm-device-modem.c \
libnm/nm-device-olpc-mesh.c \
+ libnm/nm-device-ovs-bridge.c \
libnm/nm-device-ovs-interface.c \
libnm/nm-device-ovs-port.c \
- libnm/nm-device-ovs-bridge.c \
- libnm/nm-device-p2p-wifi.c \
libnm/nm-device-ppp.c \
libnm/nm-device-team.c \
libnm/nm-device-tun.c \
libnm/nm-device-vlan.c \
libnm/nm-device-vxlan.c \
+ libnm/nm-device-wifi-p2p.c \
libnm/nm-device-wifi.c \
libnm/nm-device-wimax.c \
libnm/nm-device-wireguard.c \
@@ -1125,14 +1126,14 @@ libnm_lib_c_real = \
libnm/nm-ip6-config.c \
libnm/nm-manager.c \
libnm/nm-object.c \
- libnm/nm-p2p-peer.c \
libnm/nm-remote-connection.c \
libnm/nm-remote-settings.c \
libnm/nm-secret-agent-old.c \
libnm/nm-vpn-connection.c \
- libnm/nm-vpn-plugin-old.c \
libnm/nm-vpn-editor.c \
+ libnm/nm-vpn-plugin-old.c \
libnm/nm-vpn-service-plugin.c \
+ libnm/nm-wifi-p2p-peer.c \
libnm/nm-wimax-nsp.c
libnm_lib_c_mkenums = \
libnm/nm-enum-types.c
@@ -3256,8 +3257,8 @@ core_plugins += src/devices/wifi/libnm-device-plugin-wifi.la
src_devices_wifi_libnm_device_plugin_wifi_la_SOURCES = \
src/devices/wifi/nm-device-olpc-mesh.c \
src/devices/wifi/nm-device-olpc-mesh.h \
- src/devices/wifi/nm-device-p2p-wifi.c \
- src/devices/wifi/nm-device-p2p-wifi.h \
+ src/devices/wifi/nm-device-wifi-p2p.c \
+ src/devices/wifi/nm-device-wifi-p2p.h \
src/devices/wifi/nm-device-wifi.c \
src/devices/wifi/nm-device-wifi.h \
src/devices/wifi/nm-wifi-ap.c \
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index 8155bfb960..e2c23cb8c1 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -796,7 +796,7 @@ const NmcMetaGenericInfo *const metagen_con_active_vpn[_NMC_GENERIC_INFO_TYPE_CO
NM_SETTING_IP4_CONFIG_SETTING_NAME","\
NM_SETTING_IP6_CONFIG_SETTING_NAME","\
NM_SETTING_SERIAL_SETTING_NAME","\
- NM_SETTING_P2P_WIRELESS_SETTING_NAME","\
+ NM_SETTING_WIFI_P2P_SETTING_NAME","\
NM_SETTING_PPP_SETTING_NAME","\
NM_SETTING_PPPOE_SETTING_NAME","\
NM_SETTING_ADSL_SETTING_NAME","\
diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c
index e6d1cafba3..d5435683e1 100644
--- a/clients/common/nm-meta-setting-desc.c
+++ b/clients/common/nm-meta-setting-desc.c
@@ -5171,6 +5171,19 @@ static const NMMetaPropertyType _pt_ethtool = {
), \
),
+#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_6LOWPAN
+static const NMMetaPropertyInfo *const property_infos_6LOWPAN[] = {
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_6LOWPAN_PARENT,
+ .is_cli_option = TRUE,
+ .property_alias = "dev",
+ .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD,
+ .prompt = N_("IEEE 802.15.4 (WPAN) parent device or connection UUID"),
+ .property_type = &_pt_gobject_string,
+ ),
+ NULL
+};
+
+#undef _CURRENT_NM_META_SETTING_TYPE
#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_802_1X
static const NMMetaPropertyInfo *const property_infos_802_1X[] = {
PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_EAP,
@@ -6620,41 +6633,6 @@ static const NMMetaPropertyInfo *const property_infos_OLPC_MESH[] = {
};
#undef _CURRENT_NM_META_SETTING_TYPE
-#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_PPPOE
-static const NMMetaPropertyInfo *const property_infos_PPPOE[] = {
- PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_PARENT,
- .is_cli_option = TRUE,
- .property_alias = "parent",
- .prompt = N_("PPPoE parent device"),
- .property_type = &_pt_gobject_string,
- ),
- PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_SERVICE,
- .is_cli_option = TRUE,
- .property_alias = "service",
- .prompt = N_("Service [none]"),
- .property_type = &_pt_gobject_string,
- ),
- PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_USERNAME,
- .is_cli_option = TRUE,
- .property_alias = "username",
- .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD,
- .prompt = N_("PPPoE username"),
- .property_type = &_pt_gobject_string,
- ),
- PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_PASSWORD,
- .is_cli_option = TRUE,
- .property_alias = "password",
- .prompt = N_("Password [none]"),
- .is_secret = TRUE,
- .property_type = &_pt_gobject_string,
- ),
- PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_PASSWORD_FLAGS,
- .property_type = &_pt_gobject_secret_flags,
- ),
- NULL
-};
-
-#undef _CURRENT_NM_META_SETTING_TYPE
#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_OVS_BRIDGE
static const NMMetaPropertyInfo *const property_infos_OVS_BRIDGE[] = {
PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_BRIDGE_FAIL_MODE,
@@ -6793,6 +6771,41 @@ static const NMMetaPropertyInfo *const property_infos_PPP[] = {
};
#undef _CURRENT_NM_META_SETTING_TYPE
+#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_PPPOE
+static const NMMetaPropertyInfo *const property_infos_PPPOE[] = {
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_PARENT,
+ .is_cli_option = TRUE,
+ .property_alias = "parent",
+ .prompt = N_("PPPoE parent device"),
+ .property_type = &_pt_gobject_string,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_SERVICE,
+ .is_cli_option = TRUE,
+ .property_alias = "service",
+ .prompt = N_("Service [none]"),
+ .property_type = &_pt_gobject_string,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_USERNAME,
+ .is_cli_option = TRUE,
+ .property_alias = "username",
+ .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD,
+ .prompt = N_("PPPoE username"),
+ .property_type = &_pt_gobject_string,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_PASSWORD,
+ .is_cli_option = TRUE,
+ .property_alias = "password",
+ .prompt = N_("Password [none]"),
+ .is_secret = TRUE,
+ .property_type = &_pt_gobject_string,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_PASSWORD_FLAGS,
+ .property_type = &_pt_gobject_secret_flags,
+ ),
+ NULL
+};
+
+#undef _CURRENT_NM_META_SETTING_TYPE
#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_PROXY
static const NMMetaPropertyInfo *const property_infos_PROXY[] = {
PROPERTY_INFO_WITH_DESC (NM_SETTING_PROXY_METHOD,
@@ -6834,6 +6847,78 @@ static const NMMetaPropertyInfo *const property_infos_PROXY[] = {
};
#undef _CURRENT_NM_META_SETTING_TYPE
+#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_SERIAL
+static const NMMetaPropertyInfo *const property_infos_SERIAL[] = {
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_BAUD,
+ .property_type = &_pt_gobject_int,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_BITS,
+ .property_type = &_pt_gobject_int,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_PARITY,
+ .property_type = &_pt_gobject_enum,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+ PROPERTY_TYP_DATA_SUBTYPE (gobject_enum,
+ .value_infos = ENUM_VALUE_INFOS (
+ {
+ .value = NM_SETTING_SERIAL_PARITY_EVEN,
+ .nick = "E",
+ },
+ {
+ .value = NM_SETTING_SERIAL_PARITY_EVEN,
+ .nick = "e",
+ },
+ {
+ .value = NM_SETTING_SERIAL_PARITY_ODD,
+ .nick = "O",
+ },
+ {
+ .value = NM_SETTING_SERIAL_PARITY_ODD,
+ .nick = "o",
+ },
+ {
+ .value = NM_SETTING_SERIAL_PARITY_NONE,
+ .nick = "N",
+ },
+ {
+ .value = NM_SETTING_SERIAL_PARITY_NONE,
+ .nick = "n",
+ }
+ ),
+ ),
+ .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT
+ | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT,
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_STOPBITS,
+ .property_type = &_pt_gobject_int,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_SEND_DELAY,
+ .property_type = &_pt_gobject_int,
+ ),
+ NULL
+};
+
+#undef _CURRENT_NM_META_SETTING_TYPE
+#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_SRIOV
+static const NMMetaPropertyInfo *const property_infos_SRIOV[] = {
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_TOTAL_VFS,
+ .property_type = &_pt_gobject_int,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_VFS,
+ .property_type = DEFINE_PROPERTY_TYPE (
+ .get_fcn = _get_fcn_sriov_vfs,
+ .set_fcn = _set_fcn_sriov_vfs,
+ .remove_fcn = _remove_fcn_sriov_vfs,
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_AUTOPROBE_DRIVERS,
+ .property_type = &_pt_gobject_enum,
+ ),
+ NULL
+};
+
+#undef _CURRENT_NM_META_SETTING_TYPE
#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_TC_CONFIG
static const NMMetaPropertyInfo *const property_infos_TC_CONFIG[] = {
PROPERTY_INFO (NM_SETTING_TC_CONFIG_QDISCS, DESCRIBE_DOC_NM_SETTING_TC_CONFIG_QDISCS,
@@ -7074,78 +7159,6 @@ static const NMMetaPropertyInfo *const property_infos_TEAM_PORT[] = {
};
#undef _CURRENT_NM_META_SETTING_TYPE
-#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_SERIAL
-static const NMMetaPropertyInfo *const property_infos_SERIAL[] = {
- PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_BAUD,
- .property_type = &_pt_gobject_int,
- ),
- PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_BITS,
- .property_type = &_pt_gobject_int,
- ),
- PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_PARITY,
- .property_type = &_pt_gobject_enum,
- .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
- PROPERTY_TYP_DATA_SUBTYPE (gobject_enum,
- .value_infos = ENUM_VALUE_INFOS (
- {
- .value = NM_SETTING_SERIAL_PARITY_EVEN,
- .nick = "E",
- },
- {
- .value = NM_SETTING_SERIAL_PARITY_EVEN,
- .nick = "e",
- },
- {
- .value = NM_SETTING_SERIAL_PARITY_ODD,
- .nick = "O",
- },
- {
- .value = NM_SETTING_SERIAL_PARITY_ODD,
- .nick = "o",
- },
- {
- .value = NM_SETTING_SERIAL_PARITY_NONE,
- .nick = "N",
- },
- {
- .value = NM_SETTING_SERIAL_PARITY_NONE,
- .nick = "n",
- }
- ),
- ),
- .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT
- | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT,
- ),
- ),
- PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_STOPBITS,
- .property_type = &_pt_gobject_int,
- ),
- PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_SEND_DELAY,
- .property_type = &_pt_gobject_int,
- ),
- NULL
-};
-
-#undef _CURRENT_NM_META_SETTING_TYPE
-#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_SRIOV
-static const NMMetaPropertyInfo *const property_infos_SRIOV[] = {
- PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_TOTAL_VFS,
- .property_type = &_pt_gobject_int,
- ),
- PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_VFS,
- .property_type = DEFINE_PROPERTY_TYPE (
- .get_fcn = _get_fcn_sriov_vfs,
- .set_fcn = _set_fcn_sriov_vfs,
- .remove_fcn = _remove_fcn_sriov_vfs,
- ),
- ),
- PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_AUTOPROBE_DRIVERS,
- .property_type = &_pt_gobject_enum,
- ),
- NULL
-};
-
-#undef _CURRENT_NM_META_SETTING_TYPE
#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_TUN
static const NMMetaPropertyInfo *const property_infos_TUN[] = {
PROPERTY_INFO_WITH_DESC (NM_SETTING_TUN_MODE,
@@ -7365,6 +7378,27 @@ static const NMMetaPropertyInfo *const property_infos_VXLAN[] = {
};
#undef _CURRENT_NM_META_SETTING_TYPE
+#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_WIFI_P2P
+static const NMMetaPropertyInfo *const property_infos_WIFI_P2P[] = {
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_WIFI_P2P_PEER,
+ .is_cli_option = TRUE,
+ .property_alias = "peer",
+ .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD,
+ .prompt = N_("Peer"),
+ .property_type = &_pt_gobject_mac,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_WPS_METHOD,
+ .property_type = &_pt_gobject_enum,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+ PROPERTY_TYP_DATA_SUBTYPE (gobject_enum,
+ .get_gtype = nm_setting_wireless_security_wps_method_get_type,
+ ),
+ ),
+ ),
+ NULL
+};
+
+#undef _CURRENT_NM_META_SETTING_TYPE
#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_WIMAX
static const NMMetaPropertyInfo *const property_infos_WIMAX[] = {
PROPERTY_INFO_WITH_DESC (NM_SETTING_WIMAX_MAC_ADDRESS,
@@ -7830,40 +7864,6 @@ static const NMMetaPropertyInfo *const property_infos_WPAN[] = {
NULL
};
-#undef _CURRENT_NM_META_SETTING_TYPE
-#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_6LOWPAN
-static const NMMetaPropertyInfo *const property_infos_6LOWPAN[] = {
- PROPERTY_INFO_WITH_DESC (NM_SETTING_6LOWPAN_PARENT,
- .is_cli_option = TRUE,
- .property_alias = "dev",
- .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD,
- .prompt = N_("IEEE 802.15.4 (WPAN) parent device or connection UUID"),
- .property_type = &_pt_gobject_string,
- ),
- NULL
-};
-
-#undef _CURRENT_NM_META_SETTING_TYPE
-#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_P2P_WIRELESS
-static const NMMetaPropertyInfo *const property_infos_P2P_WIRELESS[] = {
- PROPERTY_INFO_WITH_DESC (NM_SETTING_P2P_WIRELESS_PEER,
- .is_cli_option = TRUE,
- .property_alias = "peer",
- .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD,
- .prompt = N_("Peer"),
- .property_type = &_pt_gobject_mac,
- ),
- PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_WPS_METHOD,
- .property_type = &_pt_gobject_enum,
- .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
- PROPERTY_TYP_DATA_SUBTYPE (gobject_enum,
- .get_gtype = nm_setting_wireless_security_wps_method_get_type,
- ),
- ),
- ),
- NULL
-};
-
/*****************************************************************************/
static void
@@ -7985,6 +7985,7 @@ _setting_init_fcn_wireless (ARGS_SETTING_INIT_FCN)
/*****************************************************************************/
+#define SETTING_PRETTY_NAME_6LOWPAN N_("6LOWPAN settings")
#define SETTING_PRETTY_NAME_802_1X N_("802-1x settings")
#define SETTING_PRETTY_NAME_ADSL N_("ADSL connection")
#define SETTING_PRETTY_NAME_BLUETOOTH N_("bluetooth connection")
@@ -8023,13 +8024,12 @@ _setting_init_fcn_wireless (ARGS_SETTING_INIT_FCN)
#define SETTING_PRETTY_NAME_VLAN N_("VLAN connection")
#define SETTING_PRETTY_NAME_VPN N_("VPN connection")
#define SETTING_PRETTY_NAME_VXLAN N_("VXLAN connection")
+#define SETTING_PRETTY_NAME_WIFI_P2P N_("Wi-Fi P2P connection")
#define SETTING_PRETTY_NAME_WIMAX N_("WiMAX connection")
#define SETTING_PRETTY_NAME_WIRED N_("Wired Ethernet")
#define SETTING_PRETTY_NAME_WIRELESS N_("Wi-Fi connection")
#define SETTING_PRETTY_NAME_WIRELESS_SECURITY N_("Wi-Fi security settings")
#define SETTING_PRETTY_NAME_WPAN N_("WPAN settings")
-#define SETTING_PRETTY_NAME_6LOWPAN N_("6LOWPAN settings")
-#define SETTING_PRETTY_NAME_P2P_WIRELESS N_("P2P Wi-Fi connection")
#define NM_META_SETTING_VALID_PARTS(...) \
((const NMMetaSettingValidPartItem *const[]) { __VA_ARGS__ NULL })
@@ -8267,6 +8267,12 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE),
),
),
+ SETTING_INFO (WIFI_P2P,
+ .valid_parts = NM_META_SETTING_VALID_PARTS (
+ NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
+ NM_META_SETTING_VALID_PART_ITEM (WIFI_P2P, TRUE),
+ ),
+ ),
SETTING_INFO (WIMAX,
.valid_parts = NM_META_SETTING_VALID_PARTS (
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
@@ -8304,12 +8310,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
NM_META_SETTING_VALID_PART_ITEM (WPAN, TRUE),
),
),
- SETTING_INFO (P2P_WIRELESS,
- .valid_parts = NM_META_SETTING_VALID_PARTS (
- NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
- NM_META_SETTING_VALID_PART_ITEM (P2P_WIRELESS, TRUE),
- ),
- ),
};
/*****************************************************************************/
diff --git a/clients/common/settings-docs.h.in b/clients/common/settings-docs.h.in
index 7f1a59d5fa..725ca7d6b8 100644
--- a/clients/common/settings-docs.h.in
+++ b/clients/common/settings-docs.h.in
@@ -263,8 +263,6 @@
#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_LACP N_("LACP mode. One of \"active\", \"off\", or \"passive\".")
#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_TAG N_("The VLAN tag in the range 0-4095.")
#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_VLAN_MODE N_("The VLAN mode. One of \"access\", \"native-tagged\", \"native-untagged\", \"trunk\" or unset.")
-#define DESCRIBE_DOC_NM_SETTING_P2P_WIRELESS_PEER N_("The P2P device that should be connected to. Currently this is the only way to create or join a group.")
-#define DESCRIBE_DOC_NM_SETTING_P2P_WIRELESS_WPS_METHOD N_("Flags indicating which mode of WPS is to be used. There's little point in changing the default setting as NetworkManager will automatically determine the best method to use.")
#define DESCRIBE_DOC_NM_SETTING_PPP_BAUD N_("If non-zero, instruct pppd to set the serial port to the specified baudrate. This value should normally be left as 0 to automatically choose the speed.")
#define DESCRIBE_DOC_NM_SETTING_PPP_CRTSCTS N_("If TRUE, specify that pppd should set the serial port to use hardware flow control with RTS and CTS signals. This value should normally be set to FALSE.")
#define DESCRIBE_DOC_NM_SETTING_PPP_LCP_ECHO_FAILURE N_("If non-zero, instruct pppd to presume the connection to the peer has failed if the specified number of LCP echo-requests go unanswered by the peer. The \"lcp-echo-interval\" property must also be set to a non-zero value if this property is used.")
@@ -359,6 +357,8 @@
#define DESCRIBE_DOC_NM_SETTING_VXLAN_SOURCE_PORT_MIN N_("Specifies the minimum UDP source port to communicate to the remote VXLAN tunnel endpoint.")
#define DESCRIBE_DOC_NM_SETTING_VXLAN_TOS N_("Specifies the TOS value to use in outgoing packets.")
#define DESCRIBE_DOC_NM_SETTING_VXLAN_TTL N_("Specifies the time-to-live value to use in outgoing packets.")
+#define DESCRIBE_DOC_NM_SETTING_WIFI_P2P_PEER N_("The P2P device that should be connected to. Currently this is the only way to create or join a group.")
+#define DESCRIBE_DOC_NM_SETTING_WIFI_P2P_WPS_METHOD N_("Flags indicating which mode of WPS is to be used. There's little point in changing the default setting as NetworkManager will automatically determine the best method to use.")
#define DESCRIBE_DOC_NM_SETTING_WIMAX_MAC_ADDRESS N_("If specified, this connection will only apply to the WiMAX device whose MAC address matches. This property does not change the MAC address of the device (known as MAC spoofing). Deprecated: 1")
#define DESCRIBE_DOC_NM_SETTING_WIMAX_NETWORK_NAME N_("Network Service Provider (NSP) name of the WiMAX network this connection should use. Deprecated: 1")
#define DESCRIBE_DOC_NM_SETTING_WPAN_CHANNEL N_("IEEE 802.15.4 channel. A positive integer or -1, meaning \"do not set, use whatever the device is already set to\".")
diff --git a/docs/api/Makefile.am b/docs/api/Makefile.am
index 7ec77963f2..33ca2e35e3 100644
--- a/docs/api/Makefile.am
+++ b/docs/api/Makefile.am
@@ -64,8 +64,8 @@ content_files = \
dbus-org.freedesktop.NetworkManager.Device.Veth.xml \
dbus-org.freedesktop.NetworkManager.Device.Vlan.xml \
dbus-org.freedesktop.NetworkManager.Device.Vxlan.xml \
+ dbus-org.freedesktop.NetworkManager.Device.WifiP2P.xml \
dbus-org.freedesktop.NetworkManager.Device.WireGuard.xml \
- dbus-org.freedesktop.NetworkManager.Device.P2PWireless.xml \
dbus-org.freedesktop.NetworkManager.Device.Wired.xml \
dbus-org.freedesktop.NetworkManager.Device.Wireless.xml \
dbus-org.freedesktop.NetworkManager.Device.xml \
diff --git a/docs/api/network-manager-docs.xml b/docs/api/network-manager-docs.xml
index 8b7c8c6bf9..8cf97585a0 100644
--- a/docs/api/network-manager-docs.xml
+++ b/docs/api/network-manager-docs.xml
@@ -182,14 +182,13 @@
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Statistics.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Adsl.xml"/>
+ <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Bluetooth.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Bond.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Bridge.xml"/>
- <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Bluetooth.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Dummy.xml"/>
- <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Wired.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Generic.xml"/>
- <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Infiniband.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.IPTunnel.xml"/>
+ <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Infiniband.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Lowpan.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Macsec.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Macvlan.xml"/>
@@ -204,9 +203,10 @@
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Veth.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Vlan.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Vxlan.xml"/>
+ <xi:include href="dbus-org.freedesktop.NetworkManager.Device.WifiP2P.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.WireGuard.xml"/>
+ <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Wired.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Wireless.xml"/>
- <xi:include href="dbus-org.freedesktop.NetworkManager.Device.P2PWireless.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.Device.Wpan.xml"/>
<xi:include href="dbus-org.freedesktop.NetworkManager.PPP.xml"/>
</chapter>
@@ -248,10 +248,10 @@
<xi:include href="dbus-org.freedesktop.NetworkManager.AccessPoint.xml"/>
</chapter>
- <chapter id="ref-dbus-p2p-peers">
- <title>The <literal>/org/freedesktop/NetworkManager/P2PPeer/*</literal> objects</title>
+ <chapter id="ref-dbus-wifi-p2p-peers">
+ <title>The <literal>/org.freedesktop.NetworkManager.WifiP2PPeer/*</literal> objects</title>
<!-- TODO: Describe the objects here -->
- <xi:include href="dbus-org.freedesktop.NetworkManager.P2PPeer.xml"/>
+ <xi:include href="dbus-org.freedesktop.NetworkManager.WifiP2PPeer.xml"/>
</chapter>
<chapter id="ref-dbus-checkpoint">
diff --git a/docs/libnm/libnm-docs.xml b/docs/libnm/libnm-docs.xml
index 03f6835737..2a7b76bf34 100644
--- a/docs/libnm/libnm-docs.xml
+++ b/docs/libnm/libnm-docs.xml
@@ -218,9 +218,8 @@ print ("NetworkManager version " + client.get_version())]]></programlisting></in
<xi:include href="xml/nm-setting-ovs-interface.xml"/>
<xi:include href="xml/nm-setting-ovs-patch.xml"/>
<xi:include href="xml/nm-setting-ovs-port.xml"/>
- <xi:include href="xml/nm-setting-p2p-wireless.xml"/>
- <xi:include href="xml/nm-setting-pppoe.xml"/>
<xi:include href="xml/nm-setting-ppp.xml"/>
+ <xi:include href="xml/nm-setting-pppoe.xml"/>
<xi:include href="xml/nm-setting-proxy.xml"/>
<xi:include href="xml/nm-setting-serial.xml"/>
<xi:include href="xml/nm-setting-sriov.xml"/>
@@ -232,6 +231,7 @@ print ("NetworkManager version " + client.get_version())]]></programlisting></in
<xi:include href="xml/nm-setting-vlan.xml"/>
<xi:include href="xml/nm-setting-vpn.xml"/>
<xi:include href="xml/nm-setting-vxlan.xml"/>
+ <xi:include href="xml/nm-setting-wifi-p2p.xml"/>
<xi:include href="xml/nm-setting-wimax.xml"/>
<xi:include href="xml/nm-setting-wired.xml"/>
<xi:include href="xml/nm-setting-wireless-security.xml"/>
@@ -261,12 +261,12 @@ print ("NetworkManager version " + client.get_version())]]></programlisting></in
<xi:include href="xml/nm-device-ovs-bridge.xml"/>
<xi:include href="xml/nm-device-ovs-interface.xml"/>
<xi:include href="xml/nm-device-ovs-port.xml"/>
- <xi:include href="xml/nm-device-p2p-wifi.xml"/>
<xi:include href="xml/nm-device-ppp.xml"/>
<xi:include href="xml/nm-device-team.xml"/>
<xi:include href="xml/nm-device-tun.xml"/>
<xi:include href="xml/nm-device-vlan.xml"/>
<xi:include href="xml/nm-device-vxlan.xml"/>
+ <xi:include href="xml/nm-device-wifi-p2p.xml"/>
<xi:include href="xml/nm-device-wifi.xml"/>
<xi:include href="xml/nm-device-wimax.xml"/>
<xi:include href="xml/nm-device-wireguard.xml"/>
@@ -275,7 +275,7 @@ print ("NetworkManager version " + client.get_version())]]></programlisting></in
<xi:include href="xml/nm-active-connection.xml"/>
<xi:include href="xml/nm-vpn-connection.xml"/>
<xi:include href="xml/nm-access-point.xml"/>
- <xi:include href="xml/nm-p2p-peer.xml"/>
+ <xi:include href="xml/nm-wifi-p2p-peer.xml"/>
<xi:include href="xml/nm-wimax-nsp.xml"/>
<xi:include href="xml/nm-ip-config.xml"/>
<xi:include href="xml/nm-dhcp-config.xml"/>
diff --git a/introspection/meson.build b/introspection/meson.build
index e5bbe2a284..e442ac85f8 100644
--- a/introspection/meson.build
+++ b/introspection/meson.build
@@ -3,27 +3,30 @@ ifaces_secret_agent_xml = files('org.freedesktop.NetworkManager.SecretAgent.xml'
ifaces_vpn_plugin_xml = files('org.freedesktop.NetworkManager.VPN.Plugin.xml')
ifaces = [
+ 'org.freedesktop.NetworkManager',
'org.freedesktop.NetworkManager.AccessPoint',
'org.freedesktop.NetworkManager.AgentManager',
'org.freedesktop.NetworkManager.Checkpoint',
'org.freedesktop.NetworkManager.Connection.Active',
+ 'org.freedesktop.NetworkManager.DHCP4Config',
+ 'org.freedesktop.NetworkManager.DHCP6Config',
+ 'org.freedesktop.NetworkManager.Device',
'org.freedesktop.NetworkManager.Device.Adsl',
'org.freedesktop.NetworkManager.Device.Bluetooth',
'org.freedesktop.NetworkManager.Device.Bond',
'org.freedesktop.NetworkManager.Device.Bridge',
'org.freedesktop.NetworkManager.Device.Dummy',
'org.freedesktop.NetworkManager.Device.Generic',
- 'org.freedesktop.NetworkManager.Device.Infiniband',
'org.freedesktop.NetworkManager.Device.IPTunnel',
+ 'org.freedesktop.NetworkManager.Device.Infiniband',
'org.freedesktop.NetworkManager.Device.Lowpan',
'org.freedesktop.NetworkManager.Device.Macsec',
'org.freedesktop.NetworkManager.Device.Macvlan',
'org.freedesktop.NetworkManager.Device.Modem',
'org.freedesktop.NetworkManager.Device.OlpcMesh',
+ 'org.freedesktop.NetworkManager.Device.OvsBridge',
'org.freedesktop.NetworkManager.Device.OvsInterface',
'org.freedesktop.NetworkManager.Device.OvsPort',
- 'org.freedesktop.NetworkManager.Device.OvsBridge',
- 'org.freedesktop.NetworkManager.Device.P2PWireless',
'org.freedesktop.NetworkManager.Device.Ppp',
'org.freedesktop.NetworkManager.Device.Statistics',
'org.freedesktop.NetworkManager.Device.Team',
@@ -32,25 +35,22 @@ ifaces = [
'org.freedesktop.NetworkManager.Device.Vlan',
'org.freedesktop.NetworkManager.Device.Vxlan',
'org.freedesktop.NetworkManager.Device.WiMax',
- 'org.freedesktop.NetworkManager.Device.Wpan',
+ 'org.freedesktop.NetworkManager.Device.WifiP2P',
'org.freedesktop.NetworkManager.Device.WireGuard',
'org.freedesktop.NetworkManager.Device.Wired',
'org.freedesktop.NetworkManager.Device.Wireless',
- 'org.freedesktop.NetworkManager.Device',
- 'org.freedesktop.NetworkManager.DHCP4Config',
- 'org.freedesktop.NetworkManager.DHCP6Config',
+ 'org.freedesktop.NetworkManager.Device.Wpan',
'org.freedesktop.NetworkManager.DnsManager',
'org.freedesktop.NetworkManager.IP4Config',
'org.freedesktop.NetworkManager.IP6Config',
- 'org.freedesktop.NetworkManager',
- 'org.freedesktop.NetworkManager.P2PPeer',
'org.freedesktop.NetworkManager.PPP',
'org.freedesktop.NetworkManager.SecretAgent',
- 'org.freedesktop.NetworkManager.Settings.Connection',
'org.freedesktop.NetworkManager.Settings',
+ 'org.freedesktop.NetworkManager.Settings.Connection',
'org.freedesktop.NetworkManager.VPN.Connection',
'org.freedesktop.NetworkManager.VPN.Plugin',
'org.freedesktop.NetworkManager.WiMax.Nsp',
+ 'org.freedesktop.NetworkManager.WifiP2PPeer',
]
ifaces_xmls = []
diff --git a/introspection/org.freedesktop.NetworkManager.Device.P2PWireless.xml b/introspection/org.freedesktop.NetworkManager.Device.WifiP2P.xml
index 6f7bdeaeb6..82a0e89b62 100644
--- a/introspection/org.freedesktop.NetworkManager.Device.P2PWireless.xml
+++ b/introspection/org.freedesktop.NetworkManager.Device.WifiP2P.xml
@@ -1,17 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<node name="/">
<!--
- org.freedesktop.NetworkManager.Device.P2PWireless:
- @short_description: P2P Wi-Fi Device
+ org.freedesktop.NetworkManager.Device.WifiP2P:
+ @short_description: Wi-Fi P2P Device
+ Since: 1.16
-->
- <interface name="org.freedesktop.NetworkManager.Device.P2PWireless">
- <annotation name="org.gtk.GDBus.C.Name" value="Device_P2P_Wifi"/>
+ <interface name="org.freedesktop.NetworkManager.Device.WifiP2P">
+ <annotation name="org.gtk.GDBus.C.Name" value="Device_Wifi_P2P"/>
<!--
HwAddress:
The active hardware address of the device.
+
+ Since: 1.16
-->
<property name="HwAddress" type="s" access="read"/>
@@ -19,6 +22,8 @@
GroupOwner:
Whether this device is currently the group owner.
+
+ Since: 1.16
-->
<property name="GroupOwner" type="b" access="read"/>
@@ -26,6 +31,8 @@
WFDIEs:
The Wi-Fi Display information elements.
+
+ Since: 1.16
-->
<property name="WFDIEs" type="ay" access="read">
<!-- gdbus-codegen assumes that "ay" means "non-UTF-8 string" and
@@ -37,7 +44,9 @@
<!--
Peers:
- List of object paths of peers visible to this p2p wireless device.
+ List of object paths of peers visible to this Wi-Fi P2P device.
+
+ Since: 1.16
-->
<property name="Peers" type="ao" access="read"/>
@@ -47,7 +56,9 @@
in the range of 1-600 seconds is supported. The default is
30 seconds.
- Start a find operation for P2P peers.
+ Start a find operation for Wi-Fi P2P peers.
+
+ Since: 1.16
-->
<method name="StartFind">
<arg name="options" type="a{sv}" direction="in"/>
@@ -57,6 +68,8 @@
StopFind:
Stop an ongoing find operation again.
+
+ Since: 1.16
-->
<method name="StopFind">
</method>
@@ -65,7 +78,9 @@
PeerAdded:
@peer: The object path of the newly found access point.
- Emitted when a new P2P peer is found by the device.
+ Emitted when a new Wi-Fi P2P peer is found by the device.
+
+ Since: 1.16
-->
<signal name="PeerAdded">
<arg name="peer" type="o"/>
@@ -73,9 +88,11 @@
<!--
PeerRemoved:
- @peer: The object path of the P2P peer that has disappeared.
+ @peer: The object path of the Wi-Fi P2P peer that has disappeared.
+
+ Emitted when a Wi-Fi P2P peer disappears from view of the device.
- Emitted when a P2P peer disappears from view of the device.
+ Since: 1.16
-->
<signal name="PeerRemoved">
<arg name="peer" type="o"/>
diff --git a/introspection/org.freedesktop.NetworkManager.P2PPeer.xml b/introspection/org.freedesktop.NetworkManager.WifiP2PPeer.xml
index 1a1cf71308..9068f071de 100644
--- a/introspection/org.freedesktop.NetworkManager.P2PPeer.xml
+++ b/introspection/org.freedesktop.NetworkManager.WifiP2PPeer.xml
@@ -1,12 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<node name="/">
<!--
- org.freedesktop.NetworkManager.P2PPeer:
- @short_description: P2P Wi-Fi Peer
+ org.freedesktop.NetworkManager.WifiP2PPeer:
+ @short_description: Wi-Fi P2P Peer
+ Since: 1.16
-->
- <interface name="org.freedesktop.NetworkManager.P2PPeer">
- <annotation name="org.gtk.GDBus.C.Name" value="P2P_Peer"/>
+ <interface name="org.freedesktop.NetworkManager.WifiP2PPeer">
+ <annotation name="org.gtk.GDBus.C.Name" value="Wifi_P2P_Peer"/>
<!--
Flags:
@@ -14,41 +15,53 @@
Flags describing the capabilities of the access point.
Returns: <link linkend="NM80211ApFlags">NM80211ApFlags</link>
+
+ Since: 1.16
-->
<property name="Flags" type="u" access="read"/>
<!--
Manufacturer:
- The manufacturer of the P2P peer.
+ The manufacturer of the Wi-Fi P2P peer.
+
+ Since: 1.16
-->
<property name="Manufacturer" type="s" access="read"/>
<!--
Model:
- The model of the P2P peer.
+ The model of the Wi-Fi P2P peer.
+
+ Since: 1.16
-->
<property name="Model" type="s" access="read"/>
<!--
ModelNumber:
- The model number of the P2P peer.
+ The model number of the Wi-Fi P2P peer.
+
+ Since: 1.16
-->
<property name="ModelNumber" type="s" access="read"/>
<!--
Serial:
- The serial number of the P2P peer.
+ The serial number of the Wi-Fi P2P peer.
+
+ Since: 1.16
-->
<property name="Serial" type="s" access="read"/>
<!--
- Wfdies:
+ WfdIEs:
- The Wi-Fi Display Information Elements of the P2P peer.
+ The Wi-Fi Display Information Elements of the Wi-Fi P2P peer.
+
+ Since: 1.16
-->
<property name="WfdIEs" type="ay" access="read"/>
@@ -56,6 +69,8 @@
HwAddress:
The hardware address (BSSID) of the access point.
+
+ Since: 1.16
-->
<property name="HwAddress" type="s" access="read"/>
@@ -63,6 +78,8 @@
Strength:
The current signal quality of the access point, in percent.
+
+ Since: 1.16
-->
<property name="Strength" type="y" access="read"/>
@@ -72,6 +89,8 @@
The timestamp (in CLOCK_BOOTTIME seconds) for the last time the access
point was found in scan results. A value of -1 means the access point has
never been found in scan results.
+
+ Since: 1.16
-->
<property name="LastSeen" type="i" access="read"/>
</interface>
diff --git a/libnm-core/meson.build b/libnm-core/meson.build
index e615b3451e..89b8746e39 100644
--- a/libnm-core/meson.build
+++ b/libnm-core/meson.build
@@ -32,7 +32,6 @@ libnm_core_headers = files(
'nm-setting-ovs-interface.h',
'nm-setting-ovs-patch.h',
'nm-setting-ovs-port.h',
- 'nm-setting-p2p-wireless.h',
'nm-setting-ppp.h',
'nm-setting-pppoe.h',
'nm-setting-proxy.h',
@@ -46,6 +45,7 @@ libnm_core_headers = files(
'nm-setting-vlan.h',
'nm-setting-vpn.h',
'nm-setting-vxlan.h',
+ 'nm-setting-wifi-p2p.h',
'nm-setting-wimax.h',
'nm-setting-wired.h',
'nm-setting-wireless-security.h',
@@ -88,7 +88,6 @@ libnm_core_settings_sources = files(
'nm-setting-ovs-interface.c',
'nm-setting-ovs-patch.c',
'nm-setting-ovs-port.c',
- 'nm-setting-p2p-wireless.c',
'nm-setting-ppp.c',
'nm-setting-pppoe.c',
'nm-setting-proxy.c',
@@ -102,6 +101,7 @@ libnm_core_settings_sources = files(
'nm-setting-vlan.c',
'nm-setting-vpn.c',
'nm-setting-vxlan.c',
+ 'nm-setting-wifi-p2p.c',
'nm-setting-wimax.c',
'nm-setting-wired.c',
'nm-setting-wireless-security.c',
diff --git a/libnm-core/nm-core-enum-types.c.template b/libnm-core/nm-core-enum-types.c.template
index 0edb97dcc7..2cef0307a1 100644
--- a/libnm-core/nm-core-enum-types.c.template
+++ b/libnm-core/nm-core-enum-types.c.template
@@ -4,7 +4,6 @@
#include "nm-core-enum-types.h"
#include "nm-default.h"
-#include "nm-version-macros.h"
#include "nm-connection.h"
#include "nm-core-types.h"
#include "nm-dbus-interface.h"
@@ -33,7 +32,6 @@
#include "nm-setting-ovs-interface.h"
#include "nm-setting-ovs-patch.h"
#include "nm-setting-ovs-port.h"
-#include "nm-setting-p2p-wireless.h"
#include "nm-setting-ppp.h"
#include "nm-setting-pppoe.h"
#include "nm-setting-proxy.h"
@@ -45,6 +43,7 @@
#include "nm-setting-vlan.h"
#include "nm-setting-vpn.h"
#include "nm-setting-vxlan.h"
+#include "nm-setting-wifi-p2p.h"
#include "nm-setting-wimax.h"
#include "nm-setting-wired.h"
#include "nm-setting-wireless-security.h"
@@ -53,6 +52,7 @@
#include "nm-setting.h"
#include "nm-simple-connection.h"
#include "nm-utils.h"
+#include "nm-version-macros.h"
#include "nm-version.h"
#include "nm-vpn-dbus-interface.h"
#include "nm-vpn-editor-plugin.h"
diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h
index f73d728b7d..b3d664dcea 100644
--- a/libnm-core/nm-core-internal.h
+++ b/libnm-core/nm-core-internal.h
@@ -37,6 +37,8 @@
#include "nm-connection.h"
#include "nm-core-enum-types.h"
+#include "nm-core-types-internal.h"
+#include "nm-meta-setting.h"
#include "nm-setting-6lowpan.h"
#include "nm-setting-8021x.h"
#include "nm-setting-adsl.h"
@@ -52,7 +54,6 @@
#include "nm-setting-gsm.h"
#include "nm-setting-infiniband.h"
#include "nm-setting-ip-tunnel.h"
-#include "nm-setting-proxy.h"
#include "nm-setting-ip4-config.h"
#include "nm-setting-ip6-config.h"
#include "nm-setting-macsec.h"
@@ -63,9 +64,9 @@
#include "nm-setting-ovs-interface.h"
#include "nm-setting-ovs-patch.h"
#include "nm-setting-ovs-port.h"
-#include "nm-setting-p2p-wireless.h"
#include "nm-setting-ppp.h"
#include "nm-setting-pppoe.h"
+#include "nm-setting-proxy.h"
#include "nm-setting-serial.h"
#include "nm-setting-sriov.h"
#include "nm-setting-tc-config.h"
@@ -75,6 +76,7 @@
#include "nm-setting-vlan.h"
#include "nm-setting-vpn.h"
#include "nm-setting-vxlan.h"
+#include "nm-setting-wifi-p2p.h"
#include "nm-setting-wimax.h"
#include "nm-setting-wired.h"
#include "nm-setting-wireless-security.h"
@@ -84,9 +86,7 @@
#include "nm-simple-connection.h"
#include "nm-utils.h"
#include "nm-vpn-dbus-interface.h"
-#include "nm-core-types-internal.h"
#include "nm-vpn-editor-plugin.h"
-#include "nm-meta-setting.h"
/* IEEE 802.1D-1998 timer values */
#define NM_BR_MIN_HELLO_TIME 1
diff --git a/libnm-core/nm-core-types.h b/libnm-core/nm-core-types.h
index 823001324e..e8aa67a93f 100644
--- a/libnm-core/nm-core-types.h
+++ b/libnm-core/nm-core-types.h
@@ -43,12 +43,11 @@ typedef struct _NMSettingDummy NMSettingDummy;
typedef struct _NMSettingEthtool NMSettingEthtool;
typedef struct _NMSettingGeneric NMSettingGeneric;
typedef struct _NMSettingGsm NMSettingGsm;
-typedef struct _NMSettingInfiniband NMSettingInfiniband;
-typedef struct _NMSettingIPConfig NMSettingIPConfig;
-typedef struct _NMSettingIPTunnel NMSettingIPTunnel;
-typedef struct _NMSettingProxy NMSettingProxy;
typedef struct _NMSettingIP4Config NMSettingIP4Config;
typedef struct _NMSettingIP6Config NMSettingIP6Config;
+typedef struct _NMSettingIPConfig NMSettingIPConfig;
+typedef struct _NMSettingIPTunnel NMSettingIPTunnel;
+typedef struct _NMSettingInfiniband NMSettingInfiniband;
typedef struct _NMSettingMacsec NMSettingMacsec;
typedef struct _NMSettingMacvlan NMSettingMacvlan;
typedef struct _NMSettingMatch NMSettingMatch;
@@ -57,9 +56,9 @@ typedef struct _NMSettingOvsBridge NMSettingOvsBridge;
typedef struct _NMSettingOvsInterface NMSettingOvsInterface;
typedef struct _NMSettingOvsPatch NMSettingOvsPatch;
typedef struct _NMSettingOvsPort NMSettingOvsPort;
-typedef struct _NMSettingP2PWireless NMSettingP2PWireless;
typedef struct _NMSettingPpp NMSettingPpp;
typedef struct _NMSettingPppoe NMSettingPppoe;
+typedef struct _NMSettingProxy NMSettingProxy;
typedef struct _NMSettingSerial NMSettingSerial;
typedef struct _NMSettingSriov NMSettingSriov;
typedef struct _NMSettingTCConfig NMSettingTCConfig;
@@ -70,6 +69,7 @@ typedef struct _NMSettingUser NMSettingUser;
typedef struct _NMSettingVlan NMSettingVlan;
typedef struct _NMSettingVpn NMSettingVpn;
typedef struct _NMSettingVxlan NMSettingVxlan;
+typedef struct _NMSettingWifiP2P NMSettingWifiP2P;
typedef struct _NMSettingWimax NMSettingWimax;
typedef struct _NMSettingWired NMSettingWired;
typedef struct _NMSettingWireless NMSettingWireless;
diff --git a/libnm-core/nm-dbus-interface.h b/libnm-core/nm-dbus-interface.h
index 924140edef..2db31243fd 100644
--- a/libnm-core/nm-dbus-interface.h
+++ b/libnm-core/nm-dbus-interface.h
@@ -38,51 +38,52 @@
*/
#define NM_DBUS_SERVICE "org.freedesktop.NetworkManager"
-#define NM_DBUS_PATH "/org/freedesktop/NetworkManager"
#define NM_DBUS_INTERFACE "org.freedesktop.NetworkManager"
+#define NM_DBUS_INTERFACE_ACCESS_POINT NM_DBUS_INTERFACE ".AccessPoint"
+#define NM_DBUS_INTERFACE_ACTIVE_CONNECTION NM_DBUS_INTERFACE ".Connection.Active"
+#define NM_DBUS_INTERFACE_CHECKPOINT NM_DBUS_INTERFACE ".Checkpoint"
#define NM_DBUS_INTERFACE_DEVICE NM_DBUS_INTERFACE ".Device"
-#define NM_DBUS_INTERFACE_DEVICE_WIRED NM_DBUS_INTERFACE_DEVICE ".Wired"
+#define NM_DBUS_INTERFACE_DEVICE_6LOWPAN NM_DBUS_INTERFACE_DEVICE ".Lowpan"
#define NM_DBUS_INTERFACE_DEVICE_ADSL NM_DBUS_INTERFACE_DEVICE ".Adsl"
-#define NM_DBUS_INTERFACE_DEVICE_WIRELESS NM_DBUS_INTERFACE_DEVICE ".Wireless"
-#define NM_DBUS_INTERFACE_DEVICE_P2P_WIRELESS NM_DBUS_INTERFACE_DEVICE ".P2PWireless"
#define NM_DBUS_INTERFACE_DEVICE_BLUETOOTH NM_DBUS_INTERFACE_DEVICE ".Bluetooth"
-#define NM_DBUS_INTERFACE_DEVICE_OLPC_MESH NM_DBUS_INTERFACE_DEVICE ".OlpcMesh"
-#define NM_DBUS_INTERFACE_DEVICE_OVS_INTERFACE NM_DBUS_INTERFACE_DEVICE ".OvsInterface"
-#define NM_DBUS_INTERFACE_DEVICE_OVS_PORT NM_DBUS_INTERFACE_DEVICE ".OvsPort"
-#define NM_DBUS_INTERFACE_DEVICE_OVS_BRIDGE NM_DBUS_INTERFACE_DEVICE ".OvsBridge"
-#define NM_DBUS_PATH_ACCESS_POINT NM_DBUS_PATH "/AccessPoint"
-#define NM_DBUS_INTERFACE_ACCESS_POINT NM_DBUS_INTERFACE ".AccessPoint"
-#define NM_DBUS_PATH_P2P_PEER NM_DBUS_PATH "/P2PPeer"
-#define NM_DBUS_INTERFACE_P2P_PEER NM_DBUS_INTERFACE ".P2PPeer"
-#define NM_DBUS_INTERFACE_DEVICE_MODEM NM_DBUS_INTERFACE_DEVICE ".Modem"
-#define NM_DBUS_INTERFACE_DEVICE_WIMAX NM_DBUS_INTERFACE_DEVICE ".WiMax"
-#define NM_DBUS_INTERFACE_WIMAX_NSP NM_DBUS_INTERFACE ".WiMax.Nsp"
-#define NM_DBUS_PATH_WIMAX_NSP NM_DBUS_PATH "/Nsp"
-#define NM_DBUS_INTERFACE_ACTIVE_CONNECTION NM_DBUS_INTERFACE ".Connection.Active"
-#define NM_DBUS_INTERFACE_IP4_CONFIG NM_DBUS_INTERFACE ".IP4Config"
-#define NM_DBUS_INTERFACE_DHCP4_CONFIG NM_DBUS_INTERFACE ".DHCP4Config"
-#define NM_DBUS_INTERFACE_IP6_CONFIG NM_DBUS_INTERFACE ".IP6Config"
-#define NM_DBUS_INTERFACE_DHCP6_CONFIG NM_DBUS_INTERFACE ".DHCP6Config"
-#define NM_DBUS_INTERFACE_DEVICE_INFINIBAND NM_DBUS_INTERFACE_DEVICE ".Infiniband"
#define NM_DBUS_INTERFACE_DEVICE_BOND NM_DBUS_INTERFACE_DEVICE ".Bond"
-#define NM_DBUS_INTERFACE_DEVICE_DUMMY NM_DBUS_INTERFACE_DEVICE ".Dummy"
-#define NM_DBUS_INTERFACE_DEVICE_TEAM NM_DBUS_INTERFACE_DEVICE ".Team"
-#define NM_DBUS_INTERFACE_DEVICE_VLAN NM_DBUS_INTERFACE_DEVICE ".Vlan"
#define NM_DBUS_INTERFACE_DEVICE_BRIDGE NM_DBUS_INTERFACE_DEVICE ".Bridge"
+#define NM_DBUS_INTERFACE_DEVICE_DUMMY NM_DBUS_INTERFACE_DEVICE ".Dummy"
#define NM_DBUS_INTERFACE_DEVICE_GENERIC NM_DBUS_INTERFACE_DEVICE ".Generic"
-#define NM_DBUS_INTERFACE_DEVICE_VETH NM_DBUS_INTERFACE_DEVICE ".Veth"
-#define NM_DBUS_INTERFACE_DEVICE_TUN NM_DBUS_INTERFACE_DEVICE ".Tun"
+#define NM_DBUS_INTERFACE_DEVICE_GRE NM_DBUS_INTERFACE_DEVICE ".Gre"
+#define NM_DBUS_INTERFACE_DEVICE_INFINIBAND NM_DBUS_INTERFACE_DEVICE ".Infiniband"
+#define NM_DBUS_INTERFACE_DEVICE_IP_TUNNEL NM_DBUS_INTERFACE_DEVICE ".IPTunnel"
#define NM_DBUS_INTERFACE_DEVICE_MACSEC NM_DBUS_INTERFACE_DEVICE ".Macsec"
#define NM_DBUS_INTERFACE_DEVICE_MACVLAN NM_DBUS_INTERFACE_DEVICE ".Macvlan"
+#define NM_DBUS_INTERFACE_DEVICE_MODEM NM_DBUS_INTERFACE_DEVICE ".Modem"
+#define NM_DBUS_INTERFACE_DEVICE_OLPC_MESH NM_DBUS_INTERFACE_DEVICE ".OlpcMesh"
+#define NM_DBUS_INTERFACE_DEVICE_OVS_BRIDGE NM_DBUS_INTERFACE_DEVICE ".OvsBridge"
+#define NM_DBUS_INTERFACE_DEVICE_OVS_INTERFACE NM_DBUS_INTERFACE_DEVICE ".OvsInterface"
+#define NM_DBUS_INTERFACE_DEVICE_OVS_PORT NM_DBUS_INTERFACE_DEVICE ".OvsPort"
#define NM_DBUS_INTERFACE_DEVICE_PPP NM_DBUS_INTERFACE_DEVICE ".Ppp"
+#define NM_DBUS_INTERFACE_DEVICE_STATISTICS NM_DBUS_INTERFACE_DEVICE ".Statistics"
+#define NM_DBUS_INTERFACE_DEVICE_TEAM NM_DBUS_INTERFACE_DEVICE ".Team"
+#define NM_DBUS_INTERFACE_DEVICE_TUN NM_DBUS_INTERFACE_DEVICE ".Tun"
+#define NM_DBUS_INTERFACE_DEVICE_VETH NM_DBUS_INTERFACE_DEVICE ".Veth"
+#define NM_DBUS_INTERFACE_DEVICE_VLAN NM_DBUS_INTERFACE_DEVICE ".Vlan"
#define NM_DBUS_INTERFACE_DEVICE_VXLAN NM_DBUS_INTERFACE_DEVICE ".Vxlan"
+#define NM_DBUS_INTERFACE_DEVICE_WIFI_P2P NM_DBUS_INTERFACE_DEVICE ".WifiP2P"
+#define NM_DBUS_INTERFACE_DEVICE_WIMAX NM_DBUS_INTERFACE_DEVICE ".WiMax"
+#define NM_DBUS_INTERFACE_DEVICE_WIRED NM_DBUS_INTERFACE_DEVICE ".Wired"
#define NM_DBUS_INTERFACE_DEVICE_WIREGUARD NM_DBUS_INTERFACE_DEVICE ".WireGuard"
-#define NM_DBUS_INTERFACE_DEVICE_GRE NM_DBUS_INTERFACE_DEVICE ".Gre"
-#define NM_DBUS_INTERFACE_DEVICE_IP_TUNNEL NM_DBUS_INTERFACE_DEVICE ".IPTunnel"
+#define NM_DBUS_INTERFACE_DEVICE_WIRELESS NM_DBUS_INTERFACE_DEVICE ".Wireless"
#define NM_DBUS_INTERFACE_DEVICE_WPAN NM_DBUS_INTERFACE_DEVICE ".Wpan"
-#define NM_DBUS_INTERFACE_DEVICE_6LOWPAN NM_DBUS_INTERFACE_DEVICE ".Lowpan"
-#define NM_DBUS_INTERFACE_DEVICE_STATISTICS NM_DBUS_INTERFACE_DEVICE ".Statistics"
-#define NM_DBUS_INTERFACE_CHECKPOINT NM_DBUS_INTERFACE ".Checkpoint"
+#define NM_DBUS_INTERFACE_DHCP4_CONFIG NM_DBUS_INTERFACE ".DHCP4Config"
+#define NM_DBUS_INTERFACE_DHCP6_CONFIG NM_DBUS_INTERFACE ".DHCP6Config"
+#define NM_DBUS_INTERFACE_IP4_CONFIG NM_DBUS_INTERFACE ".IP4Config"
+#define NM_DBUS_INTERFACE_IP6_CONFIG NM_DBUS_INTERFACE ".IP6Config"
+#define NM_DBUS_INTERFACE_WIFI_P2P_PEER NM_DBUS_INTERFACE ".WifiP2PPeer"
+#define NM_DBUS_INTERFACE_WIMAX_NSP NM_DBUS_INTERFACE ".WiMax.Nsp"
+
+#define NM_DBUS_PATH "/org/freedesktop/NetworkManager"
+#define NM_DBUS_PATH_ACCESS_POINT NM_DBUS_PATH "/AccessPoint"
+#define NM_DBUS_PATH_WIFI_P2P_PEER NM_DBUS_PATH "/WifiP2PPeer"
+#define NM_DBUS_PATH_WIMAX_NSP NM_DBUS_PATH "/Nsp"
#define NM_DBUS_INTERFACE_SETTINGS "org.freedesktop.NetworkManager.Settings"
#define NM_DBUS_PATH_SETTINGS "/org/freedesktop/NetworkManager/Settings"
diff --git a/libnm-core/nm-setting-p2p-wireless.h b/libnm-core/nm-setting-p2p-wireless.h
deleted file mode 100644
index 4880867198..0000000000
--- a/libnm-core/nm-setting-p2p-wireless.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA.
- *
- * Copyright 2019 Red Hat, Inc.
- */
-
-#ifndef __NM_SETTING_P2P_WIRELESS_H__
-#define __NM_SETTING_P2P_WIRELESS_H__
-
-#if !defined (__NETWORKMANAGER_H_INSIDE__) && !defined (NETWORKMANAGER_COMPILATION)
-#error "Only <NetworkManager.h> can be included directly."
-#endif
-
-#include "nm-setting.h"
-#include "nm-setting-wireless-security.h"
-
-G_BEGIN_DECLS
-
-#define NM_TYPE_SETTING_P2P_WIRELESS (nm_setting_p2p_wireless_get_type ())
-#define NM_SETTING_P2P_WIRELESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SETTING_P2P_WIRELESS, NMSettingP2PWireless))
-#define NM_SETTING_P2P_WIRELESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_SETTING_P2P_WIRELESS, NMSettingP2PWirelessClass))
-#define NM_IS_SETTING_P2P_WIRELESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_SETTING_P2P_WIRELESS))
-#define NM_IS_SETTING_P2P_WIRELESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_SETTING_P2P_WIRELESS))
-#define NM_SETTING_P2P_WIRELESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_SETTING_P2P_WIRELESS, NMSettingP2PWirelessClass))
-
-#define NM_SETTING_P2P_WIRELESS_SETTING_NAME "p2p-wireless"
-
-/**
- * NM_SETTING_P2P_WIRELESS_PEER:
- *
- * The mac address of the peer to connect to.
- */
-#define NM_SETTING_P2P_WIRELESS_PEER "peer"
-#define NM_SETTING_P2P_WIRELESS_WPS_METHOD "wps-method"
-#if 0
-#define NM_SETTING_P2P_WIRELESS_WPS_PIN "wps-pin"
-#endif
-
-#if 0
-#define NM_SETTING_P2P_WIRELESS_GO_INTENT "go-intent"
-/* Not sure how we could even handle this, i.e. would we need to store more information? */
-#define NM_SETTING_P2P_WIRELESS_PERSISTENT "persistent"
-#endif
-
-typedef struct _NMSettingP2PWirelessClass NMSettingP2PWirelessClass;
-
-NM_AVAILABLE_IN_1_16
-GType nm_setting_p2p_wireless_get_type (void);
-
-NM_AVAILABLE_IN_1_16
-NMSetting *nm_setting_p2p_wireless_new (void);
-
-NM_AVAILABLE_IN_1_16
-const char *nm_setting_p2p_wireless_get_peer (NMSettingP2PWireless *setting);
-
-NM_AVAILABLE_IN_1_16
-NMSettingWirelessSecurityWpsMethod nm_setting_p2p_wireless_get_wps_method (NMSettingP2PWireless *setting);
-
-G_END_DECLS
-
-#endif /* __NM_SETTING_P2P_WIRELESS_H__ */
diff --git a/libnm-core/nm-setting-p2p-wireless.c b/libnm-core/nm-setting-wifi-p2p.c
index e49ff0d995..893170fc28 100644
--- a/libnm-core/nm-setting-p2p-wireless.c
+++ b/libnm-core/nm-setting-wifi-p2p.c
@@ -19,7 +19,7 @@
#include "nm-default.h"
-#include "nm-setting-p2p-wireless.h"
+#include "nm-setting-wifi-p2p.h"
#include <string.h>
#include <net/ethernet.h>
@@ -30,17 +30,19 @@
#include "nm-setting-private.h"
/**
- * SECTION:nm-setting-p2p-wireless
+ * SECTION:nm-setting-wifi-p2p
* @short_description: Describes connection properties for 802.11 Wi-Fi P2P networks
*
- * The #NMSettingP2PWireless object is a #NMSetting subclass that describes properties
+ * The #NMSettingWifiP2P object is a #NMSetting subclass that describes properties
* necessary for connection to 802.11 Wi-Fi P2P networks (aka Wi-Fi Direct).
**/
/**
- * NMSettingP2PWireless:
+ * NMSettingWifiP2P:
*
- * P2P Wi-Fi Settings
+ * Wi-Fi P2P Settings
+ *
+ * Since: 1.16
*/
/*****************************************************************************/
@@ -48,102 +50,92 @@
NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_PEER,
PROP_WPS_METHOD,
-#if 0
- PROP_WPS_PIN,
- PROP_WPS_PIN_FLAGS,
-#endif
);
typedef struct {
char *peer_mac_address;
NMSettingWirelessSecurityWpsMethod wps_method;
-} NMSettingP2PWirelessPrivate;
+} NMSettingWifiP2PPrivate;
-struct _NMSettingP2PWireless {
+struct _NMSettingWifiP2P {
NMSetting parent;
- NMSettingP2PWirelessPrivate _priv;
+ NMSettingWifiP2PPrivate _priv;
};
-struct _NMSettingP2PWirelessClass {
+struct _NMSettingWifiP2PClass {
NMSettingClass parent;
};
-G_DEFINE_TYPE (NMSettingP2PWireless, nm_setting_p2p_wireless, NM_TYPE_SETTING)
+G_DEFINE_TYPE (NMSettingWifiP2P, nm_setting_wifi_p2p, NM_TYPE_SETTING)
-#define NM_SETTING_P2P_WIRELESS_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMSettingP2PWireless, NM_IS_SETTING_P2P_WIRELESS, NMSetting)
+#define NM_SETTING_WIFI_P2P_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMSettingWifiP2P, NM_IS_SETTING_WIFI_P2P, NMSetting)
/*****************************************************************************/
/**
- * nm_setting_p2p_wireless_get_peer:
- * @setting: the #NMSettingP2PWireless
+ * nm_setting_wifi_p2p_get_peer:
+ * @setting: the #NMSettingWifiP2P
*
- * Returns: the #NMSettingP2PWireless:peer property of the setting
+ * Returns: the #NMSettingWifiP2P:peer property of the setting
*
* Since: 1.16
**/
const char *
-nm_setting_p2p_wireless_get_peer (NMSettingP2PWireless *setting)
+nm_setting_wifi_p2p_get_peer (NMSettingWifiP2P *setting)
{
- g_return_val_if_fail (NM_IS_SETTING_P2P_WIRELESS (setting), NULL);
+ g_return_val_if_fail (NM_IS_SETTING_WIFI_P2P (setting), NULL);
- return NM_SETTING_P2P_WIRELESS_GET_PRIVATE (setting)->peer_mac_address;
+ return NM_SETTING_WIFI_P2P_GET_PRIVATE (setting)->peer_mac_address;
}
/**
- * nm_setting_p2p_wireless_get_wps_method:
- * @setting: the #NMSettingP2PWireless
+ * nm_setting_wifi_p2p_get_wps_method:
+ * @setting: the #NMSettingWifiP2P
*
- * Returns: the #NMSettingP2PWireless:wps-method property of the setting
+ * Returns: the #NMSettingWifiP2P:wps-method property of the setting
*
* Since: 1.16
**/
NMSettingWirelessSecurityWpsMethod
-nm_setting_p2p_wireless_get_wps_method (NMSettingP2PWireless *setting)
+nm_setting_wifi_p2p_get_wps_method (NMSettingWifiP2P *setting)
{
- g_return_val_if_fail (NM_IS_SETTING_P2P_WIRELESS (setting), NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DEFAULT);
+ g_return_val_if_fail (NM_IS_SETTING_WIFI_P2P (setting), NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DEFAULT);
- return NM_SETTING_P2P_WIRELESS_GET_PRIVATE (setting)->wps_method;
+ return NM_SETTING_WIFI_P2P_GET_PRIVATE (setting)->wps_method;
}
+/*****************************************************************************/
+
static gboolean
verify (NMSetting *setting, NMConnection *connection, GError **error)
{
- NMSettingP2PWirelessPrivate *priv = NM_SETTING_P2P_WIRELESS_GET_PRIVATE (setting);
+ NMSettingWifiP2PPrivate *priv = NM_SETTING_WIFI_P2P_GET_PRIVATE (setting);
- if (!priv->peer_mac_address || !nm_utils_hwaddr_valid (priv->peer_mac_address, ETH_ALEN)) {
+ if (!priv->peer_mac_address) {
g_set_error_literal (error,
NM_CONNECTION_ERROR,
- NM_CONNECTION_ERROR_INVALID_PROPERTY,
- _("property is invalid"));
- g_prefix_error (error, "%s.%s: ", NM_SETTING_P2P_WIRELESS_SETTING_NAME, NM_SETTING_P2P_WIRELESS_PEER);
+ NM_CONNECTION_ERROR_MISSING_PROPERTY,
+ _("property is missing"));
+ g_prefix_error (error, "%s.%s: ", NM_SETTING_WIFI_P2P_SETTING_NAME, NM_SETTING_WIFI_P2P_PEER);
return FALSE;
}
- if (priv->wps_method > NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_PIN) {
+ if (!nm_utils_hwaddr_valid (priv->peer_mac_address, ETH_ALEN)) {
g_set_error_literal (error,
NM_CONNECTION_ERROR,
NM_CONNECTION_ERROR_INVALID_PROPERTY,
_("property is invalid"));
+ g_prefix_error (error, "%s.%s: ", NM_SETTING_WIFI_P2P_SETTING_NAME, NM_SETTING_WIFI_P2P_PEER);
return FALSE;
}
- if (priv->wps_method > NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DISABLED) {
- g_set_error_literal (error,
- NM_CONNECTION_ERROR,
- NM_CONNECTION_ERROR_INVALID_PROPERTY,
- _("P2P connections require WPS"));
- return FALSE;
- }
-
- if (priv->wps_method > NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DISABLED) {
- g_set_error_literal (error,
- NM_CONNECTION_ERROR,
- NM_CONNECTION_ERROR_INVALID_PROPERTY,
- _("P2P connections require WPS"));
+ if (!_nm_utils_wps_method_validate (priv->wps_method,
+ NM_SETTING_WIFI_P2P_SETTING_NAME,
+ NM_SETTING_WIFI_P2P_WPS_METHOD,
+ TRUE,
+ error))
return FALSE;
- }
return TRUE;
}
@@ -154,14 +146,14 @@ static void
get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
- NMSettingP2PWireless *setting = NM_SETTING_P2P_WIRELESS (object);
+ NMSettingWifiP2P *setting = NM_SETTING_WIFI_P2P (object);
switch (prop_id) {
case PROP_PEER:
- g_value_set_string (value, nm_setting_p2p_wireless_get_peer (setting));
+ g_value_set_string (value, nm_setting_wifi_p2p_get_peer (setting));
break;
case PROP_WPS_METHOD:
- g_value_set_uint (value, nm_setting_p2p_wireless_get_wps_method (setting));
+ g_value_set_uint (value, nm_setting_wifi_p2p_get_wps_method (setting));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -173,7 +165,7 @@ static void
set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec)
{
- NMSettingP2PWirelessPrivate *priv = NM_SETTING_P2P_WIRELESS_GET_PRIVATE (object);
+ NMSettingWifiP2PPrivate *priv = NM_SETTING_WIFI_P2P_GET_PRIVATE (object);
switch (prop_id) {
case PROP_PEER:
@@ -193,49 +185,49 @@ set_property (GObject *object, guint prop_id,
/*****************************************************************************/
static void
-nm_setting_p2p_wireless_init (NMSettingP2PWireless *setting)
+nm_setting_wifi_p2p_init (NMSettingWifiP2P *setting)
{
}
/**
- * nm_setting_p2p_wireless_new:
+ * nm_setting_wifi_p2p_new:
*
- * Creates a new #NMSettingP2PWireless object with default values.
+ * Creates a new #NMSettingWifiP2P object with default values.
*
- * Returns: (transfer full): the new empty #NMSettingP2PWireless object
+ * Returns: (transfer full): the new empty #NMSettingWifiP2P object
*
* Since: 1.16
**/
NMSetting *
-nm_setting_p2p_wireless_new (void)
+nm_setting_wifi_p2p_new (void)
{
- return (NMSetting *) g_object_new (NM_TYPE_SETTING_P2P_WIRELESS, NULL);
+ return g_object_new (NM_TYPE_SETTING_WIFI_P2P, NULL);
}
static void
finalize (GObject *object)
{
- NMSettingP2PWirelessPrivate *priv = NM_SETTING_P2P_WIRELESS_GET_PRIVATE (object);
+ NMSettingWifiP2PPrivate *priv = NM_SETTING_WIFI_P2P_GET_PRIVATE (object);
g_free (priv->peer_mac_address);
- G_OBJECT_CLASS (nm_setting_p2p_wireless_parent_class)->finalize (object);
+ G_OBJECT_CLASS (nm_setting_wifi_p2p_parent_class)->finalize (object);
}
static void
-nm_setting_p2p_wireless_class_init (NMSettingP2PWirelessClass *setting_p2p_wireless_class)
+nm_setting_wifi_p2p_class_init (NMSettingWifiP2PClass *setting_wifi_p2p_class)
{
- GObjectClass *object_class = G_OBJECT_CLASS (setting_p2p_wireless_class);
- NMSettingClass *setting_class = NM_SETTING_CLASS (setting_p2p_wireless_class);
+ GObjectClass *object_class = G_OBJECT_CLASS (setting_wifi_p2p_class);
+ NMSettingClass *setting_class = NM_SETTING_CLASS (setting_wifi_p2p_class);
- object_class->set_property = set_property;
object_class->get_property = get_property;
+ object_class->set_property = set_property;
object_class->finalize = finalize;
setting_class->verify = verify;
/**
- * NMSettingP2PWireless:peer:
+ * NMSettingWifiP2P:peer:
*
* The P2P device that should be connected to. Currently this is the only
* way to create or join a group.
@@ -251,13 +243,13 @@ nm_setting_p2p_wireless_class_init (NMSettingP2PWirelessClass *setting_p2p_wirel
* ---end---
*/
obj_properties[PROP_PEER] =
- g_param_spec_string (NM_SETTING_P2P_WIRELESS_PEER, "", "",
+ g_param_spec_string (NM_SETTING_WIFI_P2P_PEER, "", "",
NULL,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS);
/**
- * NMSettingP2PWireless:wps-method:
+ * NMSettingWifiP2P:wps-method:
*
* Flags indicating which mode of WPS is to be used.
*
@@ -277,5 +269,5 @@ nm_setting_p2p_wireless_class_init (NMSettingP2PWirelessClass *setting_p2p_wirel
g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
- _nm_setting_class_commit (setting_class, NM_META_SETTING_TYPE_P2P_WIRELESS);
+ _nm_setting_class_commit (setting_class, NM_META_SETTING_TYPE_WIFI_P2P);
}
diff --git a/libnm-core/nm-setting-wifi-p2p.h b/libnm-core/nm-setting-wifi-p2p.h
new file mode 100644
index 0000000000..c9ed49e1ac
--- /dev/null
+++ b/libnm-core/nm-setting-wifi-p2p.h
@@ -0,0 +1,65 @@
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright 2019 Red Hat, Inc.
+ */
+
+#ifndef __NM_SETTING_WIFI_P2P_H__
+#define __NM_SETTING_WIFI_P2P_H__
+
+#if !defined (__NETWORKMANAGER_H_INSIDE__) && !defined (NETWORKMANAGER_COMPILATION)
+#error "Only <NetworkManager.h> can be included directly."
+#endif
+
+#include "nm-setting.h"
+#include "nm-setting-wireless-security.h"
+
+G_BEGIN_DECLS
+
+#define NM_TYPE_SETTING_WIFI_P2P (nm_setting_wifi_p2p_get_type ())
+#define NM_SETTING_WIFI_P2P(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SETTING_WIFI_P2P, NMSettingWifiP2P))
+#define NM_SETTING_WIFI_P2P_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_SETTING_WIFI_P2P, NMSettingWifiP2PClass))
+#define NM_IS_SETTING_WIFI_P2P(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_SETTING_WIFI_P2P))
+#define NM_IS_SETTING_WIFI_P2P_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_SETTING_WIFI_P2P))
+#define NM_SETTING_WIFI_P2P_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_SETTING_WIFI_P2P, NMSettingWifiP2PClass))
+
+#define NM_SETTING_WIFI_P2P_SETTING_NAME "wifi-p2p"
+
+/**
+ * NM_SETTING_WIFI_P2P_PEER:
+ *
+ * The mac address of the peer to connect to.
+ */
+#define NM_SETTING_WIFI_P2P_PEER "peer"
+#define NM_SETTING_WIFI_P2P_WPS_METHOD "wps-method"
+
+typedef struct _NMSettingWifiP2PClass NMSettingWifiP2PClass;
+
+NM_AVAILABLE_IN_1_16
+GType nm_setting_wifi_p2p_get_type (void);
+
+NM_AVAILABLE_IN_1_16
+NMSetting *nm_setting_wifi_p2p_new (void);
+
+NM_AVAILABLE_IN_1_16
+const char *nm_setting_wifi_p2p_get_peer (NMSettingWifiP2P *setting);
+
+NM_AVAILABLE_IN_1_16
+NMSettingWirelessSecurityWpsMethod nm_setting_wifi_p2p_get_wps_method (NMSettingWifiP2P *setting);
+
+G_END_DECLS
+
+#endif /* __NM_SETTING_WIFI_P2P_H__ */
diff --git a/libnm-core/nm-setting-wireless-security.c b/libnm-core/nm-setting-wireless-security.c
index fe339d9e36..c38d21ff10 100644
--- a/libnm-core/nm-setting-wireless-security.c
+++ b/libnm-core/nm-setting-wireless-security.c
@@ -1084,24 +1084,12 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
return FALSE;
}
- /* WPS */
- if (priv->wps_method > NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_PIN) {
- g_set_error_literal (error,
- NM_CONNECTION_ERROR,
- NM_CONNECTION_ERROR_INVALID_PROPERTY,
- _("property is invalid"));
- g_prefix_error (error, "%s.%s: ", NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WPS_METHOD);
- return FALSE;
- }
-
- if (priv->wps_method & NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DISABLED && priv->wps_method != NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DISABLED) {
- g_set_error_literal (error,
- NM_CONNECTION_ERROR,
- NM_CONNECTION_ERROR_INVALID_PROPERTY,
- _("can't be simultaneously disabled and enabled"));
- g_prefix_error (error, "%s.%s: ", NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WPS_METHOD);
+ if (!_nm_utils_wps_method_validate (priv->wps_method,
+ NM_SETTING_WIRELESS_SECURITY_SETTING_NAME,
+ NM_SETTING_WIRELESS_SECURITY_WPS_METHOD,
+ FALSE,
+ error))
return FALSE;
- }
return TRUE;
}
diff --git a/libnm-core/nm-utils-private.h b/libnm-core/nm-utils-private.h
index 58822cdeff..b61260cb22 100644
--- a/libnm-core/nm-utils-private.h
+++ b/libnm-core/nm-utils-private.h
@@ -41,6 +41,12 @@ struct _NMVariantAttributeSpec {
gboolean _nm_utils_string_slist_validate (GSList *list,
const char **valid_values);
+gboolean _nm_utils_wps_method_validate (NMSettingWirelessSecurityWpsMethod wps_method,
+ const char *setting_name,
+ const char *property_name,
+ gboolean wps_required,
+ GError **error);
+
/* D-Bus transform funcs */
GVariant *_nm_utils_hwaddr_cloned_get (NMSetting *setting,
diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c
index 4709971281..bb43a9aec0 100644
--- a/libnm-core/nm-utils.c
+++ b/libnm-core/nm-utils.c
@@ -4311,6 +4311,46 @@ _nm_utils_hwaddr_from_dbus (GVariant *dbus_value,
/*****************************************************************************/
+gboolean
+_nm_utils_wps_method_validate (NMSettingWirelessSecurityWpsMethod wps_method,
+ const char *setting_name,
+ const char *property_name,
+ gboolean wps_required,
+ GError **error)
+{
+ if (wps_method > NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_PIN) {
+ g_set_error_literal (error,
+ NM_CONNECTION_ERROR,
+ NM_CONNECTION_ERROR_INVALID_PROPERTY,
+ _("property is invalid"));
+ g_prefix_error (error, "%s.%s: ", setting_name, property_name);
+ return FALSE;
+ }
+
+ if (NM_FLAGS_HAS (wps_method, NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DISABLED)) {
+ if (wps_method != NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DISABLED) {
+ g_set_error_literal (error,
+ NM_CONNECTION_ERROR,
+ NM_CONNECTION_ERROR_INVALID_PROPERTY,
+ _("can't be simultaneously disabled and enabled"));
+ g_prefix_error (error, "%s.%s: ", setting_name, property_name);
+ return FALSE;
+ }
+ if (wps_required) {
+ g_set_error_literal (error,
+ NM_CONNECTION_ERROR,
+ NM_CONNECTION_ERROR_INVALID_PROPERTY,
+ _("WPS is required"));
+ g_prefix_error (error, "%s.%s: ", setting_name, property_name);
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/*****************************************************************************/
+
static char *
_split_word (char *s)
{
diff --git a/libnm/NetworkManager.h b/libnm/NetworkManager.h
index 1f98e50b11..1e59d11758 100644
--- a/libnm/NetworkManager.h
+++ b/libnm/NetworkManager.h
@@ -43,15 +43,15 @@
#include "nm-device-macvlan.h"
#include "nm-device-modem.h"
#include "nm-device-olpc-mesh.h"
+#include "nm-device-ovs-bridge.h"
#include "nm-device-ovs-interface.h"
#include "nm-device-ovs-port.h"
-#include "nm-device-ovs-bridge.h"
-#include "nm-device-p2p-wifi.h"
#include "nm-device-ppp.h"
#include "nm-device-team.h"
#include "nm-device-tun.h"
#include "nm-device-vlan.h"
#include "nm-device-vxlan.h"
+#include "nm-device-wifi-p2p.h"
#include "nm-device-wifi.h"
#include "nm-device-wimax.h"
#include "nm-device-wireguard.h"
@@ -61,7 +61,6 @@
#include "nm-enum-types.h"
#include "nm-ip-config.h"
#include "nm-object.h"
-#include "nm-p2p-peer.h"
#include "nm-remote-connection.h"
#include "nm-setting-6lowpan.h"
#include "nm-setting-8021x.h"
@@ -90,7 +89,7 @@
#include "nm-setting-ovs-interface.h"
#include "nm-setting-ovs-patch.h"
#include "nm-setting-ovs-port.h"
-#include "nm-setting-p2p-wireless.h"
+#include "nm-setting-wifi-p2p.h"
#include "nm-setting-ppp.h"
#include "nm-setting-pppoe.h"
#include "nm-setting-proxy.h"
@@ -119,6 +118,7 @@
#include "nm-vpn-editor-plugin.h"
#include "nm-vpn-plugin-info.h"
#include "nm-vpn-service-plugin.h"
+#include "nm-wifi-p2p-peer.h"
#include "nm-wimax-nsp.h"
#include "nm-autoptr.h"
diff --git a/libnm/libnm.ver b/libnm/libnm.ver
index 0267c140a0..edef0b6298 100644
--- a/libnm/libnm.ver
+++ b/libnm/libnm.ver
@@ -1450,29 +1450,27 @@ global:
nm_client_add_and_activate_connection2;
nm_client_add_and_activate_connection2_finish;
nm_device_get_connectivity;
- nm_device_p2p_wifi_get_group_owner;
- nm_device_p2p_wifi_get_hw_address;
- nm_device_p2p_wifi_get_peers;
- nm_device_p2p_wifi_get_type;
- nm_device_p2p_wifi_start_find;
- nm_device_p2p_wifi_stop_find;
- nm_p2p_peer_connection_valid;
- nm_p2p_peer_filter_connections;
- nm_p2p_peer_get_flags;
- nm_p2p_peer_get_hw_address;
- nm_p2p_peer_get_last_seen;
- nm_p2p_peer_get_manufacturer;
- nm_p2p_peer_get_model;
- nm_p2p_peer_get_model_number;
- nm_p2p_peer_get_name;
- nm_p2p_peer_get_serial;
- nm_p2p_peer_get_strength;
- nm_p2p_peer_get_type;
- nm_p2p_peer_get_wfd_ies;
- nm_setting_p2p_wireless_get_peer;
- nm_setting_p2p_wireless_get_type;
- nm_setting_p2p_wireless_get_wps_method;
- nm_setting_p2p_wireless_new;
+ nm_device_wifi_p2p_get_group_owner;
+ nm_device_wifi_p2p_get_hw_address;
+ nm_device_wifi_p2p_get_peers;
+ nm_device_wifi_p2p_get_type;
+ nm_setting_wifi_p2p_get_peer;
+ nm_setting_wifi_p2p_get_type;
+ nm_setting_wifi_p2p_get_wps_method;
+ nm_setting_wifi_p2p_new;
nm_team_link_watcher_get_vlanid;
nm_team_link_watcher_new_arp_ping2;
+ nm_wifi_p2p_peer_connection_valid;
+ nm_wifi_p2p_peer_filter_connections;
+ nm_wifi_p2p_peer_get_flags;
+ nm_wifi_p2p_peer_get_hw_address;
+ nm_wifi_p2p_peer_get_last_seen;
+ nm_wifi_p2p_peer_get_manufacturer;
+ nm_wifi_p2p_peer_get_model;
+ nm_wifi_p2p_peer_get_model_number;
+ nm_wifi_p2p_peer_get_name;
+ nm_wifi_p2p_peer_get_serial;
+ nm_wifi_p2p_peer_get_strength;
+ nm_wifi_p2p_peer_get_type;
+ nm_wifi_p2p_peer_get_wfd_ies;
} libnm_1_14_0;
diff --git a/libnm/meson.build b/libnm/meson.build
index dee4e36bdf..f538dbfbaf 100644
--- a/libnm/meson.build
+++ b/libnm/meson.build
@@ -40,30 +40,29 @@ libnm_headers = files(
'nm-device-dummy.h',
'nm-device-ethernet.h',
'nm-device-generic.h',
- 'nm-device.h',
'nm-device-infiniband.h',
'nm-device-ip-tunnel.h',
'nm-device-macsec.h',
'nm-device-macvlan.h',
'nm-device-modem.h',
'nm-device-olpc-mesh.h',
+ 'nm-device-ovs-bridge.h',
'nm-device-ovs-interface.h',
'nm-device-ovs-port.h',
- 'nm-device-ovs-bridge.h',
- 'nm-device-p2p-wifi.h',
'nm-device-ppp.h',
'nm-device-team.h',
'nm-device-tun.h',
'nm-device-vlan.h',
'nm-device-vxlan.h',
+ 'nm-device-wifi-p2p.h',
'nm-device-wifi.h',
'nm-device-wimax.h',
'nm-device-wireguard.h',
'nm-device-wpan.h',
+ 'nm-device.h',
'nm-dhcp-config.h',
'nm-ip-config.h',
'nm-object.h',
- 'nm-p2p-peer.h',
'nm-remote-connection.h',
'nm-secret-agent-old.h',
'nm-types.h',
@@ -71,6 +70,7 @@ libnm_headers = files(
'nm-vpn-editor.h',
'nm-vpn-plugin-old.h',
'nm-vpn-service-plugin.h',
+ 'nm-wifi-p2p-peer.h',
'nm-wimax-nsp.h',
)
@@ -103,7 +103,6 @@ libnm_sources = files(
'nm-device-bond.c',
'nm-device-bridge.c',
'nm-device-bt.c',
- 'nm-device.c',
'nm-device-dummy.c',
'nm-device-ethernet.c',
'nm-device-generic.c',
@@ -113,19 +112,20 @@ libnm_sources = files(
'nm-device-macvlan.c',
'nm-device-modem.c',
'nm-device-olpc-mesh.c',
+ 'nm-device-ovs-bridge.c',
'nm-device-ovs-interface.c',
'nm-device-ovs-port.c',
- 'nm-device-ovs-bridge.c',
- 'nm-device-p2p-wifi.c',
'nm-device-ppp.c',
'nm-device-team.c',
'nm-device-tun.c',
'nm-device-vlan.c',
'nm-device-vxlan.c',
+ 'nm-device-wifi-p2p.c',
'nm-device-wifi.c',
'nm-device-wimax.c',
'nm-device-wireguard.c',
'nm-device-wpan.c',
+ 'nm-device.c',
'nm-dhcp-config.c',
'nm-dhcp4-config.c',
'nm-dhcp6-config.c',
@@ -135,14 +135,14 @@ libnm_sources = files(
'nm-ip6-config.c',
'nm-manager.c',
'nm-object.c',
- 'nm-p2p-peer.c',
'nm-remote-connection.c',
'nm-remote-settings.c',
'nm-secret-agent-old.c',
'nm-vpn-connection.c',
- 'nm-vpn-plugin-old.c',
'nm-vpn-editor.c',
+ 'nm-vpn-plugin-old.c',
'nm-vpn-service-plugin.c',
+ 'nm-wifi-p2p-peer.c',
'nm-wimax-nsp.c',
)
diff --git a/libnm/nm-autoptr.h b/libnm/nm-autoptr.h
index bffacd39cd..8abd792e22 100644
--- a/libnm/nm-autoptr.h
+++ b/libnm/nm-autoptr.h
@@ -51,11 +51,11 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingDummy, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingEthtool, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingGeneric, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingGsm, g_object_unref)
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingInfiniband, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingIP4Config, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingIP6Config, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingIPConfig, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingIPTunnel, g_object_unref)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingInfiniband, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingMacsec, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingMacvlan, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingMatch, g_object_unref)
@@ -64,7 +64,6 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingOvsBridge, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingOvsInterface, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingOvsPatch, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingOvsPort, g_object_unref)
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingP2PWireless, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingPpp, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingPppoe, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingProxy, g_object_unref)
@@ -78,6 +77,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingUser, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingVlan, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingVpn, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingVxlan, g_object_unref)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingWifiP2P, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingWimax, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingWired, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingWireless, g_object_unref)
diff --git a/libnm/nm-client.c b/libnm/nm-client.c
index e5902ad051..870adfc750 100644
--- a/libnm/nm-client.c
+++ b/libnm/nm-client.c
@@ -41,7 +41,7 @@
#include "introspection/org.freedesktop.NetworkManager.h"
#include "introspection/org.freedesktop.NetworkManager.Device.Wireless.h"
-#include "introspection/org.freedesktop.NetworkManager.Device.P2PWireless.h"
+#include "introspection/org.freedesktop.NetworkManager.Device.WifiP2P.h"
#include "introspection/org.freedesktop.NetworkManager.Device.h"
#include "introspection/org.freedesktop.NetworkManager.DnsManager.h"
#include "introspection/org.freedesktop.NetworkManager.Settings.h"
@@ -66,26 +66,26 @@
#include "nm-device-macvlan.h"
#include "nm-device-modem.h"
#include "nm-device-olpc-mesh.h"
+#include "nm-device-ovs-bridge.h"
#include "nm-device-ovs-interface.h"
#include "nm-device-ovs-port.h"
-#include "nm-device-ovs-bridge.h"
-#include "nm-device-p2p-wifi.h"
#include "nm-device-ppp.h"
#include "nm-device-team.h"
#include "nm-device-tun.h"
#include "nm-device-vlan.h"
#include "nm-device-vxlan.h"
+#include "nm-device-wifi-p2p.h"
#include "nm-device-wifi.h"
#include "nm-device-wimax.h"
#include "nm-device-wireguard.h"
#include "nm-device-wpan.h"
+#include "nm-dhcp-config.h"
#include "nm-dhcp4-config.h"
#include "nm-dhcp6-config.h"
-#include "nm-dhcp-config.h"
#include "nm-ip4-config.h"
#include "nm-ip6-config.h"
#include "nm-manager.h"
-#include "nm-p2p-peer.h"
+#include "nm-wifi-p2p-peer.h"
#include "nm-remote-connection.h"
#include "nm-remote-settings.h"
#include "nm-vpn-connection.h"
@@ -2614,8 +2614,8 @@ proxy_type (GDBusObjectManagerClient *manager,
return NMDBUS_TYPE_MANAGER_PROXY;
else if (strcmp (interface_name, NM_DBUS_INTERFACE_DEVICE_WIRELESS) == 0)
return NMDBUS_TYPE_DEVICE_WIFI_PROXY;
- else if (strcmp (interface_name, NM_DBUS_INTERFACE_DEVICE_P2P_WIRELESS) == 0)
- return NMDBUS_TYPE_DEVICE_P2P_WIFI_PROXY;
+ else if (strcmp (interface_name, NM_DBUS_INTERFACE_DEVICE_WIFI_P2P) == 0)
+ return NMDBUS_TYPE_DEVICE_WIFI_P2P_PROXY;
else if (strcmp (interface_name, NM_DBUS_INTERFACE_DEVICE) == 0)
return NMDBUS_TYPE_DEVICE_PROXY;
else if (strcmp (interface_name, NM_DBUS_INTERFACE_SETTINGS_CONNECTION) == 0)
@@ -2694,8 +2694,8 @@ obj_nm_for_gdbus_object (NMClient *self, GDBusObject *object, GDBusObjectManager
type = NM_TYPE_DEVICE_OVS_PORT;
else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_OVS_BRIDGE) == 0)
type = NM_TYPE_DEVICE_OVS_BRIDGE;
- else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_P2P_WIRELESS) == 0)
- type = NM_TYPE_DEVICE_P2P_WIFI;
+ else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_WIFI_P2P) == 0)
+ type = NM_TYPE_DEVICE_WIFI_P2P;
else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_PPP) == 0)
type = NM_TYPE_DEVICE_PPP;
else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_TEAM) == 0)
@@ -2722,8 +2722,8 @@ obj_nm_for_gdbus_object (NMClient *self, GDBusObject *object, GDBusObjectManager
type = NM_TYPE_IP4_CONFIG;
else if (strcmp (ifname, NM_DBUS_INTERFACE_IP6_CONFIG) == 0)
type = NM_TYPE_IP6_CONFIG;
- else if (strcmp (ifname, NM_DBUS_INTERFACE_P2P_PEER) == 0)
- type = NM_TYPE_P2P_PEER;
+ else if (strcmp (ifname, NM_DBUS_INTERFACE_WIFI_P2P_PEER) == 0)
+ type = NM_TYPE_WIFI_P2P_PEER;
else if (strcmp (ifname, NM_DBUS_INTERFACE_SETTINGS_CONNECTION) == 0)
type = NM_TYPE_REMOTE_CONNECTION;
else if (strcmp (ifname, NM_DBUS_INTERFACE_SETTINGS) == 0)
diff --git a/libnm/nm-device-p2p-wifi.c b/libnm/nm-device-p2p-wifi.c
deleted file mode 100644
index 4d740fafec..0000000000
--- a/libnm/nm-device-p2p-wifi.c
+++ /dev/null
@@ -1,537 +0,0 @@
-/*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA.
- *
- * Copyright 2007 - 2008 Novell, Inc.
- * Copyright 2007 - 2018 Red Hat, Inc.
- */
-
-#include "nm-default.h"
-
-#include "nm-device-p2p-wifi.h"
-
-#include <string.h>
-
-#include "nm-setting-connection.h"
-#include "nm-setting-p2p-wireless.h"
-#include "nm-utils.h"
-
-#include "nm-p2p-peer.h"
-#include "nm-object-private.h"
-#include "nm-core-internal.h"
-#include "nm-dbus-helpers.h"
-
-#include "introspection/org.freedesktop.NetworkManager.Device.P2PWireless.h"
-
-G_DEFINE_TYPE (NMDeviceP2PWifi, nm_device_p2p_wifi, NM_TYPE_DEVICE)
-
-#define NM_DEVICE_P2P_WIFI_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_P2P_WIFI, NMDeviceP2PWifiPrivate))
-
-void _nm_device_p2p_wifi_set_p2p_wireless_enabled (NMDeviceP2PWifi *device, gboolean enabled);
-static void state_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data);
-
-typedef struct {
- NMDeviceP2PWifi *device;
- GSimpleAsyncResult *simple;
-} RequestScanInfo;
-
-typedef struct {
- NMDBusDeviceP2PWifi *proxy;
-
- char *hw_address;
-
- gboolean group_owner;
- GByteArray *wfd_ies;
- GPtrArray *peers;
-} NMDeviceP2PWifiPrivate;
-
-enum {
- PROP_0,
- PROP_HW_ADDRESS,
- PROP_GROUP_OWNER,
- PROP_WFDIES,
- PROP_PEERS,
-
- LAST_PROP
-};
-
-enum {
- PEER_ADDED,
- PEER_REMOVED,
-
- LAST_SIGNAL
-};
-static guint signals[LAST_SIGNAL] = { 0 };
-
-/**
- * nm_device_p2p_wifi_get_hw_address:
- * @device: a #NMDeviceP2PWifi
- *
- * Gets the actual hardware (MAC) address of the #NMDeviceP2PWifi
- *
- * Returns: the actual hardware address. This is the internal string used by the
- * device, and must not be modified.
- *
- * Since: 1.16
- **/
-const char *
-nm_device_p2p_wifi_get_hw_address (NMDeviceP2PWifi *device)
-{
- g_return_val_if_fail (NM_IS_DEVICE_P2P_WIFI (device), NULL);
-
- return nm_str_not_empty (NM_DEVICE_P2P_WIFI_GET_PRIVATE (device)->hw_address);
-}
-
-/**
- * nm_device_p2p_wifi_get_group_owner:
- * @device: a #NMDeviceP2PWifi
- *
- * Gets whether the device is currently the P2P group owner. This is only
- * valid when a connection is established.
- *
- * Returns: Whether the device is the P2P group owner.
- *
- * Since: 1.16
- **/
-gboolean
-nm_device_p2p_wifi_get_group_owner (NMDeviceP2PWifi *device)
-{
- g_return_val_if_fail (NM_IS_DEVICE_P2P_WIFI (device), FALSE);
-
- return NM_DEVICE_P2P_WIFI_GET_PRIVATE (device)->group_owner;
-}
-
-/**
- * nm_device_p2p_wifi_get_peers:
- * @device: a #NMDeviceP2PWifi
- *
- * Gets all the found peers of the #NMDeviceP2PWifi.
- *
- * Returns: (element-type NMP2PPeer): a #GPtrArray containing all the
- * found #NMP2PPeers.
- * The returned array is owned by the client and should not be modified.
- *
- * Since: 1.16
- **/
-const GPtrArray *
-nm_device_p2p_wifi_get_peers (NMDeviceP2PWifi *device)
-{
- g_return_val_if_fail (NM_IS_DEVICE_P2P_WIFI (device), NULL);
-
- return NM_DEVICE_P2P_WIFI_GET_PRIVATE (device)->peers;
-}
-
-/**
- * nm_device_p2p_wifi_get_peer_by_path:
- * @device: a #NMDeviceP2PWifi
- * @path: the object path of the peer
- *
- * Gets a #NMP2PPeer by path.
- *
- * Returns: (transfer none): the peer or %NULL if none is found.
- *
- * Since: 1.16
- **/
-NMP2PPeer *
-nm_device_p2p_wifi_get_peer_by_path (NMDeviceP2PWifi *device,
- const char *path)
-{
- const GPtrArray *peers;
- int i;
- NMP2PPeer *peer = NULL;
-
- g_return_val_if_fail (NM_IS_DEVICE_P2P_WIFI (device), NULL);
- g_return_val_if_fail (path != NULL, NULL);
-
- peers = nm_device_p2p_wifi_get_peers (device);
- if (!peers)
- return NULL;
-
- for (i = 0; i < peers->len; i++) {
- NMP2PPeer *candidate = g_ptr_array_index (peers, i);
- if (!strcmp (nm_object_get_path (NM_OBJECT (candidate)), path)) {
- peer = candidate;
- break;
- }
- }
-
- return peer;
-}
-
-static void
-clean_up_peers (NMDeviceP2PWifi *self, gboolean in_dispose)
-{
- NMDeviceP2PWifiPrivate *priv;
- GPtrArray *peers;
- int i;
-
- g_return_if_fail (NM_IS_DEVICE_P2P_WIFI (self));
-
- priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
-
- peers = priv->peers;
-
- if (in_dispose)
- priv->peers = NULL;
- else {
- priv->peers = g_ptr_array_new ();
-
- for (i = 0; i < peers->len; i++) {
- NMP2PPeer *peer = NM_P2P_PEER (g_ptr_array_index (peers, i));
-
- g_signal_emit (self, signals[PEER_REMOVED], 0, peer);
- }
- }
-
- g_ptr_array_unref (peers);
-}
-
-static gboolean
-connection_compatible (NMDevice *device, NMConnection *connection, GError **error)
-{
- if (!NM_DEVICE_CLASS (nm_device_p2p_wifi_parent_class)->connection_compatible (device, connection, error))
- return FALSE;
-
- if (!nm_connection_is_type (connection, NM_SETTING_P2P_WIRELESS_SETTING_NAME)) {
- g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION,
- _("The connection was not a P2P Wi-Fi connection."));
- return FALSE;
- }
-
- return TRUE;
-}
-
-static GType
-get_setting_type (NMDevice *device)
-{
- return NM_TYPE_SETTING_WIRELESS;
-}
-
-static const char *
-get_hw_address (NMDevice *device)
-{
- return nm_device_p2p_wifi_get_hw_address (NM_DEVICE_P2P_WIFI (device));
-}
-
-static GVariant *
-nm_device_p2p_wifi_get_wfdies_as_variant (const NMDeviceP2PWifi *self)
-{
- const NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
-
- if (priv->wfd_ies) {
- return g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE,
- priv->wfd_ies->data, priv->wfd_ies->len, 1);
- } else
- return g_variant_new_array (G_VARIANT_TYPE_BYTE, NULL, 0);
-}
-
-/**
- * nm_device_p2p_wifi_start_find:
- * @device: a #NMDeviceP2PWifi
- * @cancellable: a #GCancellable, or %NULL
- * @error: location for a #GError, or %NULL
- *
- * Request NM to search for P2P peers on @device. Note that the function
- * returns immediately after requesting the find, and it may take some time
- * after that for peers to be found.
- *
- * The find operation will run for 30s by default. You can stop it earlier
- * using nm_device_p2p_wifi_stop_find().
- *
- * Returns: %TRUE on success, %FALSE on error, in which case @error will be
- * set.
- *
- * Since: 1.16
- **/
-gboolean
-nm_device_p2p_wifi_start_find (NMDeviceP2PWifi *device,
- GCancellable *cancellable,
- GError **error)
-{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (device);
- GVariant *options = g_variant_new_array (G_VARIANT_TYPE ("{sv}"), NULL, 0);
- gboolean ret;
-
- g_return_val_if_fail (NM_IS_DEVICE_P2P_WIFI (device), FALSE);
-
- ret = nmdbus_device_p2p_wifi_call_start_find_sync (priv->proxy,
- options,
- cancellable, error);
-
- if (error && *error)
- g_dbus_error_strip_remote_error (*error);
-
- return ret;
-}
-
-/**
- * nm_device_p2p_wifi_stop_find:
- * @device: a #NMDeviceP2PWifi
- * @cancellable: a #GCancellable, or %NULL
- * @error: location for a #GError, or %NULL
- *
- * Request NM to stop searching for P2P peers on @device.
- *
- * Returns: %TRUE on success, %FALSE on error, in which case @error will be
- * set.
- *
- * Since: 1.16
- **/
-gboolean
-nm_device_p2p_wifi_stop_find (NMDeviceP2PWifi *device,
- GCancellable *cancellable,
- GError **error)
-{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (device);
- gboolean ret;
-
- g_return_val_if_fail (NM_IS_DEVICE_P2P_WIFI (device), FALSE);
-
- ret = nmdbus_device_p2p_wifi_call_stop_find_sync (priv->proxy,
- cancellable, error);
- if (error && *error)
- g_dbus_error_strip_remote_error (*error);
-
- return ret;
-}
-
-/*****************************************************************************/
-
-static void
-get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (object);
-
- switch (prop_id) {
- case PROP_HW_ADDRESS:
- g_value_set_string (value, nm_device_p2p_wifi_get_hw_address (self));
- break;
- case PROP_GROUP_OWNER:
- g_value_set_enum (value, nm_device_p2p_wifi_get_group_owner (self));
- break;
- case PROP_WFDIES:
- g_value_take_variant (value, nm_device_p2p_wifi_get_wfdies_as_variant (self));
- break;
- case PROP_PEERS:
- g_value_take_boxed (value, _nm_utils_copy_object_array (nm_device_p2p_wifi_get_peers (self)));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-nm_device_p2p_wifi_init (NMDeviceP2PWifi *device)
-{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (device);
-
- g_signal_connect (device,
- "notify::" NM_DEVICE_STATE,
- G_CALLBACK (state_changed_cb),
- NULL);
-
- priv->peers = g_ptr_array_new ();
-}
-
-static void
-state_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data)
-{
-#if 0
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (device);
-
- switch (nm_device_get_state (device)) {
- case NM_DEVICE_STATE_UNKNOWN:
- case NM_DEVICE_STATE_UNMANAGED:
- case NM_DEVICE_STATE_UNAVAILABLE:
- case NM_DEVICE_STATE_DISCONNECTED:
- case NM_DEVICE_STATE_FAILED:
- /* TODO: Do something? */
- break;
- default:
- break;
- }
-#endif
-}
-
-static void
-init_dbus (NMObject *object)
-{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (object);
- const NMPropertiesInfo property_info[] = {
- { NM_DEVICE_P2P_WIFI_HW_ADDRESS, &priv->hw_address },
- { NM_DEVICE_P2P_WIFI_GROUP_OWNER, &priv->group_owner },
- { NM_DEVICE_P2P_WIFI_WFDIES, &priv->wfd_ies },
- { NM_DEVICE_P2P_WIFI_PEERS, &priv->peers, NULL, NM_TYPE_P2P_PEER, "peer" },
- { NULL },
- };
-
- NM_OBJECT_CLASS (nm_device_p2p_wifi_parent_class)->init_dbus (object);
-
- priv->proxy = NMDBUS_DEVICE_P2P_WIFI (_nm_object_get_proxy (object, NM_DBUS_INTERFACE_DEVICE_P2P_WIRELESS));
- _nm_object_register_properties (object,
- NM_DBUS_INTERFACE_DEVICE_P2P_WIRELESS,
- property_info);
-}
-
-static void
-dispose (GObject *object)
-{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (object);
-
- if (priv->peers)
- clean_up_peers (NM_DEVICE_P2P_WIFI (object), TRUE);
-
- g_clear_object (&priv->proxy);
- if (priv->wfd_ies)
- g_byte_array_unref (priv->wfd_ies);
- priv->wfd_ies = NULL;
-
- G_OBJECT_CLASS (nm_device_p2p_wifi_parent_class)->dispose (object);
-}
-
-static void
-finalize (GObject *object)
-{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (object);
-
- g_free (priv->hw_address);
-
- G_OBJECT_CLASS (nm_device_p2p_wifi_parent_class)->finalize (object);
-}
-
-static void
-nm_device_p2p_wifi_class_init (NMDeviceP2PWifiClass *wifi_class)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (wifi_class);
- NMObjectClass *nm_object_class = NM_OBJECT_CLASS (wifi_class);
- NMDeviceClass *device_class = NM_DEVICE_CLASS (wifi_class);
-
- g_type_class_add_private (wifi_class, sizeof (NMDeviceP2PWifiPrivate));
-
- /* virtual methods */
- object_class->get_property = get_property;
- object_class->dispose = dispose;
- object_class->finalize = finalize;
-
- nm_object_class->init_dbus = init_dbus;
-
- device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
-
- /**
- * NMDeviceP2PWifi:hw-address:
- *
- * The hardware (MAC) address of the device.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_P2P_WIFI_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
-
- /**
- * NMDeviceP2PWifi:group-owner:
- *
- * Whether the device is currently the group owner.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_GROUP_OWNER,
- g_param_spec_boolean (NM_DEVICE_P2P_WIFI_GROUP_OWNER, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /**
- * NMDeviceP2PWifi:wfd-ies:
- *
- * Whether the device is currently the group owner.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_WFDIES,
- g_param_spec_variant (NM_DEVICE_P2P_WIFI_WFDIES, "", "",
- G_VARIANT_TYPE ("ay"),
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /**
- * NMDeviceP2PWifi:peers: (type GPtrArray(NMP2PPeer))
- *
- * List of all P2P Wi-Fi peers the device can see.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_PEERS,
- g_param_spec_boxed (NM_DEVICE_P2P_WIFI_PEERS, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /* signals */
-
- /**
- * NMDeviceP2PWifi::peer-added:
- * @device: the P2P Wi-Fi device that received the signal
- * @peer: the new access point
- *
- * Notifies that a #NMP2PPeer is added to the P2P Wi-Fi device.
- *
- * Since: 1.16
- **/
- signals[PEER_ADDED] =
- g_signal_new ("peer-added",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMDeviceP2PWifiClass, peer_added),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
-
- /**
- * NMDeviceP2PWifi::peer-removed:
- * @device: the P2P Wi-Fi device that received the signal
- * @peer: the removed access point
- *
- * Notifies that a #NMP2PPeer is removed from the P2P Wi-Fi device.
- *
- * Since: 1.16
- **/
- signals[PEER_REMOVED] =
- g_signal_new ("peer-removed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMDeviceP2PWifiClass, peer_removed),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
-}
diff --git a/libnm/nm-device-p2p-wifi.h b/libnm/nm-device-p2p-wifi.h
deleted file mode 100644
index 90a7242489..0000000000
--- a/libnm/nm-device-p2p-wifi.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA.
- *
- * Copyright 2007 - 2008 Novell, Inc.
- * Copyright 2007 - 2018 Red Hat, Inc.
- */
-
-#ifndef __NM_DEVICE_P2P_WIFI_H__
-#define __NM_DEVICE_P2P_WIFI_H__
-
-#if !defined (__NETWORKMANAGER_H_INSIDE__) && !defined (NETWORKMANAGER_COMPILATION)
-#error "Only <NetworkManager.h> can be included directly."
-#endif
-
-#include "nm-device.h"
-
-G_BEGIN_DECLS
-
-#define NM_TYPE_DEVICE_P2P_WIFI (nm_device_p2p_wifi_get_type ())
-#define NM_DEVICE_P2P_WIFI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_P2P_WIFI, NMDeviceP2PWifi))
-#define NM_DEVICE_P2P_WIFI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_P2P_WIFI, NMDeviceP2PWifiClass))
-#define NM_IS_DEVICE_P2P_WIFI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_P2P_WIFI))
-#define NM_IS_DEVICE_P2P_WIFI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_P2P_WIFI))
-#define NM_DEVICE_P2P_WIFI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_P2P_WIFI, NMDeviceP2PWifiClass))
-
-#define NM_DEVICE_P2P_WIFI_HW_ADDRESS "hw-address"
-#define NM_DEVICE_P2P_WIFI_GROUP_OWNER "group-owner"
-#define NM_DEVICE_P2P_WIFI_PEERS "peers"
-#define NM_DEVICE_P2P_WIFI_WFDIES "wfdies"
-
-/**
- * NMDeviceP2PWifi:
- */
-struct _NMDeviceP2PWifi {
- NMDevice parent;
-};
-
-typedef struct {
- NMDeviceClass parent;
-
- /* Signals */
- void (*peer_added) (NMDeviceP2PWifi *device, NMP2PPeer *peer);
- void (*peer_removed) (NMDeviceP2PWifi *device, NMP2PPeer *peer);
-
- /*< private >*/
- gpointer padding[4];
-} NMDeviceP2PWifiClass;
-
-GType nm_device_p2p_wifi_get_type (void);
-
-const char * nm_device_p2p_wifi_get_hw_address (NMDeviceP2PWifi *device);
-gboolean nm_device_p2p_wifi_get_group_owner (NMDeviceP2PWifi *device);
-
-#if 0
-gboolean nm_device_p2p_wifi_get_wfdies (NMDeviceP2PWifi *device);
-#endif
-
-NMP2PPeer * nm_device_p2p_wifi_get_peer_by_path (NMDeviceP2PWifi *device,
- const char *path);
-
-const GPtrArray * nm_device_p2p_wifi_get_peers (NMDeviceP2PWifi *device);
-
-gboolean nm_device_p2p_wifi_start_find (NMDeviceP2PWifi *device,
- GCancellable *cancellable,
- GError **error);
-gboolean nm_device_p2p_wifi_stop_find (NMDeviceP2PWifi *device,
- GCancellable *cancellable,
- GError **error);
-
-G_END_DECLS
-
-#endif /* __NM_DEVICE_P2P_WIFI_H__ */
diff --git a/libnm/nm-device-wifi-p2p.c b/libnm/nm-device-wifi-p2p.c
new file mode 100644
index 0000000000..0c90bd89ab
--- /dev/null
+++ b/libnm/nm-device-wifi-p2p.c
@@ -0,0 +1,428 @@
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright 2018 - 2019 Red Hat, Inc.
+ */
+
+#include "nm-default.h"
+
+#include "nm-device-wifi-p2p.h"
+
+#include <string.h>
+
+#include "nm-setting-connection.h"
+#include "nm-setting-wifi-p2p.h"
+#include "nm-utils.h"
+
+#include "nm-wifi-p2p-peer.h"
+#include "nm-object-private.h"
+#include "nm-core-internal.h"
+#include "nm-dbus-helpers.h"
+
+#include "introspection/org.freedesktop.NetworkManager.Device.WifiP2P.h"
+
+/*****************************************************************************/
+
+typedef struct {
+ NMDeviceWifiP2P *device;
+ GSimpleAsyncResult *simple;
+} RequestScanInfo;
+
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_HW_ADDRESS,
+ PROP_GROUP_OWNER,
+ PROP_WFDIES,
+ PROP_PEERS,
+);
+
+enum {
+ PEER_ADDED,
+ PEER_REMOVED,
+
+ LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
+typedef struct {
+ NMDBusDeviceWifiP2P *proxy;
+
+ char *hw_address;
+
+ GByteArray *wfd_ies;
+ GPtrArray *peers;
+
+ gboolean group_owner;
+} NMDeviceWifiP2PPrivate;
+
+/**
+ * NMDeviceWifiP2P:
+ *
+ * Since: 1.16
+ */
+struct _NMDeviceWifiP2P {
+ NMDevice parent;
+ NMDeviceWifiP2PPrivate _priv;
+};
+
+struct _NMDeviceWifiP2PClass {
+ NMDeviceClass parent;
+};
+
+G_DEFINE_TYPE (NMDeviceWifiP2P, nm_device_wifi_p2p, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_WIFI_P2P_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceWifiP2P, NM_IS_DEVICE_WIFI_P2P, NMDevice, NMObject)
+
+/*****************************************************************************/
+
+/**
+ * nm_device_wifi_p2p_get_hw_address:
+ * @device: a #NMDeviceWifiP2P
+ *
+ * Gets the actual hardware (MAC) address of the #NMDeviceWifiP2P
+ *
+ * Returns: the actual hardware address. This is the internal string used by the
+ * device, and must not be modified.
+ *
+ * Since: 1.16
+ **/
+const char *
+nm_device_wifi_p2p_get_hw_address (NMDeviceWifiP2P *device)
+{
+ g_return_val_if_fail (NM_IS_DEVICE_WIFI_P2P (device), NULL);
+
+ return nm_str_not_empty (NM_DEVICE_WIFI_P2P_GET_PRIVATE (device)->hw_address);
+}
+
+/**
+ * nm_device_wifi_p2p_get_group_owner:
+ * @device: a #NMDeviceWifiP2P
+ *
+ * Gets whether the device is currently the P2P group owner. This is only
+ * valid when a connection is established.
+ *
+ * Returns: Whether the device is the P2P group owner.
+ *
+ * Since: 1.16
+ **/
+gboolean
+nm_device_wifi_p2p_get_group_owner (NMDeviceWifiP2P *device)
+{
+ g_return_val_if_fail (NM_IS_DEVICE_WIFI_P2P (device), FALSE);
+
+ return NM_DEVICE_WIFI_P2P_GET_PRIVATE (device)->group_owner;
+}
+
+/**
+ * nm_device_wifi_p2p_get_peers:
+ * @device: a #NMDeviceWifiP2P
+ *
+ * Gets all the found peers of the #NMDeviceWifiP2P.
+ *
+ * Returns: (element-type NMWifiP2PPeer): a #GPtrArray containing all the
+ * found #NMWifiP2PPeers.
+ * The returned array is owned by the client and should not be modified.
+ *
+ * Since: 1.16
+ **/
+const GPtrArray *
+nm_device_wifi_p2p_get_peers (NMDeviceWifiP2P *device)
+{
+ g_return_val_if_fail (NM_IS_DEVICE_WIFI_P2P (device), NULL);
+
+ return NM_DEVICE_WIFI_P2P_GET_PRIVATE (device)->peers;
+}
+
+/**
+ * nm_device_wifi_p2p_get_peer_by_path:
+ * @device: a #NMDeviceWifiP2P
+ * @path: the object path of the peer
+ *
+ * Gets a #NMWifiP2PPeer by path.
+ *
+ * Returns: (transfer none): the peer or %NULL if none is found.
+ *
+ * Since: 1.16
+ **/
+NMWifiP2PPeer *
+nm_device_wifi_p2p_get_peer_by_path (NMDeviceWifiP2P *device,
+ const char *path)
+{
+ const GPtrArray *peers;
+ int i;
+ NMWifiP2PPeer *peer = NULL;
+
+ g_return_val_if_fail (NM_IS_DEVICE_WIFI_P2P (device), NULL);
+ g_return_val_if_fail (path != NULL, NULL);
+
+ peers = nm_device_wifi_p2p_get_peers (device);
+ if (!peers)
+ return NULL;
+
+ for (i = 0; i < peers->len; i++) {
+ NMWifiP2PPeer *candidate = g_ptr_array_index (peers, i);
+ if (!strcmp (nm_object_get_path (NM_OBJECT (candidate)), path)) {
+ peer = candidate;
+ break;
+ }
+ }
+
+ return peer;
+}
+
+static void
+clean_up_peers (NMDeviceWifiP2P *self)
+{
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
+
+ while (priv->peers->len > 0) {
+ NMWifiP2PPeer *peer;
+
+ peer = priv->peers->pdata[priv->peers->len - 1];
+ g_ptr_array_remove_index (priv->peers, priv->peers->len - 1);
+
+ g_signal_emit (self, signals[PEER_REMOVED], 0, peer);
+ }
+}
+
+static gboolean
+connection_compatible (NMDevice *device, NMConnection *connection, GError **error)
+{
+ if (!NM_DEVICE_CLASS (nm_device_wifi_p2p_parent_class)->connection_compatible (device, connection, error))
+ return FALSE;
+
+ if (!nm_connection_is_type (connection, NM_SETTING_WIFI_P2P_SETTING_NAME)) {
+ g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION,
+ _("The connection was not a Wi-Fi P2P connection."));
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static GType
+get_setting_type (NMDevice *device)
+{
+ return NM_TYPE_SETTING_WIRELESS;
+}
+
+static const char *
+get_hw_address (NMDevice *device)
+{
+ return nm_device_wifi_p2p_get_hw_address (NM_DEVICE_WIFI_P2P (device));
+}
+
+static GVariant *
+nm_device_wifi_p2p_get_wfdies_as_variant (const NMDeviceWifiP2P *self)
+{
+ const NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
+
+ if (priv->wfd_ies) {
+ return g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE,
+ priv->wfd_ies->data, priv->wfd_ies->len, 1);
+ } else
+ return g_variant_new_array (G_VARIANT_TYPE_BYTE, NULL, 0);
+}
+
+/*****************************************************************************/
+
+static void
+get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (object);
+
+ switch (prop_id) {
+ case PROP_HW_ADDRESS:
+ g_value_set_string (value, nm_device_wifi_p2p_get_hw_address (self));
+ break;
+ case PROP_GROUP_OWNER:
+ g_value_set_enum (value, nm_device_wifi_p2p_get_group_owner (self));
+ break;
+ case PROP_WFDIES:
+ g_value_take_variant (value, nm_device_wifi_p2p_get_wfdies_as_variant (self));
+ break;
+ case PROP_PEERS:
+ g_value_take_boxed (value, _nm_utils_copy_object_array (nm_device_wifi_p2p_get_peers (self)));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+nm_device_wifi_p2p_init (NMDeviceWifiP2P *device)
+{
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (device);
+
+ priv->peers = g_ptr_array_new ();
+}
+
+static void
+init_dbus (NMObject *object)
+{
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (object);
+ const NMPropertiesInfo property_info[] = {
+ { NM_DEVICE_WIFI_P2P_HW_ADDRESS, &priv->hw_address },
+ { NM_DEVICE_WIFI_P2P_GROUP_OWNER, &priv->group_owner },
+ { NM_DEVICE_WIFI_P2P_WFDIES, &priv->wfd_ies },
+ { NM_DEVICE_WIFI_P2P_PEERS, &priv->peers, NULL, NM_TYPE_WIFI_P2P_PEER, "peer" },
+ { NULL },
+ };
+
+ NM_OBJECT_CLASS (nm_device_wifi_p2p_parent_class)->init_dbus (object);
+
+ priv->proxy = NMDBUS_DEVICE_WIFI_P2P (_nm_object_get_proxy (object, NM_DBUS_INTERFACE_DEVICE_WIFI_P2P));
+ _nm_object_register_properties (object,
+ NM_DBUS_INTERFACE_DEVICE_WIFI_P2P,
+ property_info);
+}
+
+static void
+dispose (GObject *object)
+{
+ clean_up_peers (NM_DEVICE_WIFI_P2P (object));
+
+ G_OBJECT_CLASS (nm_device_wifi_p2p_parent_class)->dispose (object);
+}
+
+static void
+finalize (GObject *object)
+{
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (object);
+
+ g_clear_object (&priv->proxy);
+ g_free (priv->hw_address);
+ if (priv->wfd_ies)
+ g_byte_array_unref (priv->wfd_ies);
+ if (priv->peers)
+ g_ptr_array_unref (priv->peers);
+
+ G_OBJECT_CLASS (nm_device_wifi_p2p_parent_class)->finalize (object);
+}
+
+static void
+nm_device_wifi_p2p_class_init (NMDeviceWifiP2PClass *wifi_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (wifi_class);
+ NMObjectClass *nm_object_class = NM_OBJECT_CLASS (wifi_class);
+ NMDeviceClass *device_class = NM_DEVICE_CLASS (wifi_class);
+
+ object_class->get_property = get_property;
+ object_class->dispose = dispose;
+ object_class->finalize = finalize;
+
+ device_class->connection_compatible = connection_compatible;
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
+
+ nm_object_class->init_dbus = init_dbus;
+
+ /**
+ * NMDeviceWifiP2P:hw-address:
+ *
+ * The hardware (MAC) address of the device.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_WIFI_P2P_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+
+ /**
+ * NMDeviceWifiP2P:group-owner:
+ *
+ * Whether the device is currently the group owner.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_GROUP_OWNER] =
+ g_param_spec_boolean (NM_DEVICE_WIFI_P2P_GROUP_OWNER, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ /**
+ * NMDeviceWifiP2P:wfd-ies:
+ *
+ * Whether the device is currently the group owner.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_WFDIES] =
+ g_param_spec_variant (NM_DEVICE_WIFI_P2P_WFDIES, "", "",
+ G_VARIANT_TYPE ("ay"),
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ /**
+ * NMDeviceWifiP2P:peers: (type GPtrArray(NMWifiP2PPeer))
+ *
+ * List of all Wi-Fi P2P peers the device can see.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_PEERS] =
+ g_param_spec_boxed (NM_DEVICE_WIFI_P2P_PEERS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
+
+ /**
+ * NMDeviceWifiP2P::peer-added:
+ * @device: the Wi-Fi P2P device that received the signal
+ * @peer: the new access point
+ *
+ * Notifies that a #NMWifiP2PPeer is added to the Wi-Fi P2P device.
+ *
+ * Since: 1.16
+ **/
+ signals[PEER_ADDED] =
+ g_signal_new ("peer-added",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
+
+ /**
+ * NMDeviceWifiP2P::peer-removed:
+ * @device: the Wi-Fi P2P device that received the signal
+ * @peer: the removed access point
+ *
+ * Notifies that a #NMWifiP2PPeer is removed from the Wi-Fi P2P device.
+ *
+ * Since: 1.16
+ **/
+ signals[PEER_REMOVED] =
+ g_signal_new ("peer-removed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
+}
diff --git a/libnm/nm-device-wifi-p2p.h b/libnm/nm-device-wifi-p2p.h
new file mode 100644
index 0000000000..4ff4d03842
--- /dev/null
+++ b/libnm/nm-device-wifi-p2p.h
@@ -0,0 +1,63 @@
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright 2018 - 2019 Red Hat, Inc.
+ */
+
+#ifndef __NM_DEVICE_WIFI_P2P_H__
+#define __NM_DEVICE_WIFI_P2P_H__
+
+#if !defined (__NETWORKMANAGER_H_INSIDE__) && !defined (NETWORKMANAGER_COMPILATION)
+#error "Only <NetworkManager.h> can be included directly."
+#endif
+
+#include "nm-device.h"
+
+G_BEGIN_DECLS
+
+#define NM_TYPE_DEVICE_WIFI_P2P (nm_device_wifi_p2p_get_type ())
+#define NM_DEVICE_WIFI_P2P(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_WIFI_P2P, NMDeviceWifiP2P))
+#define NM_DEVICE_WIFI_P2P_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_WIFI_P2P, NMDeviceWifiP2PClass))
+#define NM_IS_DEVICE_WIFI_P2P(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_WIFI_P2P))
+#define NM_IS_DEVICE_WIFI_P2P_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_WIFI_P2P))
+#define NM_DEVICE_WIFI_P2P_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_WIFI_P2P, NMDeviceWifiP2PClass))
+
+#define NM_DEVICE_WIFI_P2P_HW_ADDRESS "hw-address"
+#define NM_DEVICE_WIFI_P2P_GROUP_OWNER "group-owner"
+#define NM_DEVICE_WIFI_P2P_PEERS "peers"
+#define NM_DEVICE_WIFI_P2P_WFDIES "wfdies"
+
+typedef struct _NMDeviceWifiP2PClass NMDeviceWifiP2PClass;
+
+NM_AVAILABLE_IN_1_16
+GType nm_device_wifi_p2p_get_type (void);
+
+NM_AVAILABLE_IN_1_16
+const char * nm_device_wifi_p2p_get_hw_address (NMDeviceWifiP2P *device);
+
+NM_AVAILABLE_IN_1_16
+gboolean nm_device_wifi_p2p_get_group_owner (NMDeviceWifiP2P *device);
+
+NM_AVAILABLE_IN_1_16
+NMWifiP2PPeer * nm_device_wifi_p2p_get_peer_by_path (NMDeviceWifiP2P *device,
+ const char *path);
+
+NM_AVAILABLE_IN_1_16
+const GPtrArray * nm_device_wifi_p2p_get_peers (NMDeviceWifiP2P *device);
+
+G_END_DECLS
+
+#endif /* __NM_DEVICE_WIFI_P2P_H__ */
diff --git a/libnm/nm-p2p-peer.c b/libnm/nm-p2p-peer.c
deleted file mode 100644
index 7919424210..0000000000
--- a/libnm/nm-p2p-peer.c
+++ /dev/null
@@ -1,596 +0,0 @@
-/*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA.
- *
- * Copyright 2007 - 2008 Novell, Inc.
- * Copyright 2007 - 2018 Red Hat, Inc.
- */
-
-#include "nm-default.h"
-
-#include "nm-p2p-peer.h"
-
-#include <string.h>
-
-#include "nm-connection.h"
-#include "nm-setting-connection.h"
-#include "nm-setting-p2p-wireless.h"
-#include "nm-utils.h"
-
-#include "nm-dbus-interface.h"
-#include "nm-object-private.h"
-
-G_DEFINE_TYPE (NMP2PPeer, nm_p2p_peer, NM_TYPE_OBJECT)
-
-#define NM_P2P_PEER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_P2P_PEER, NMP2PPeerPrivate))
-
-typedef struct {
- NM80211ApFlags flags;
-
- char *name;
- char *manufacturer;
- char *model;
- char *model_number;
- char *serial;
-
- GBytes *wfd_ies;
-
- char *hw_address;
-
- guint8 strength;
- int last_seen;
-} NMP2PPeerPrivate;
-
-enum {
- PROP_0,
- PROP_FLAGS,
- PROP_NAME,
- PROP_MANUFACTURER,
- PROP_MODEL,
- PROP_MODEL_NUMBER,
- PROP_SERIAL,
- PROP_WFD_IES,
- PROP_HW_ADDRESS,
- PROP_STRENGTH,
- PROP_LAST_SEEN,
-
- LAST_PROP
-};
-
-/**
- * nm_p2p_peer_get_flags:
- * @peer: a #NMP2PPeer
- *
- * Gets the flags of the P2P peer.
- *
- * Returns: the flags
- *
- * Since: 1.16
- **/
-NM80211ApFlags
-nm_p2p_peer_get_flags (NMP2PPeer *peer)
-{
- g_return_val_if_fail (NM_IS_P2P_PEER (peer), NM_802_11_AP_FLAGS_NONE);
-
- return NM_P2P_PEER_GET_PRIVATE (peer)->flags;
-}
-
-/**
- * nm_p2p_peer_get_name:
- * @peer: a #NMP2PPeer
- *
- * Gets the name of the P2P peer.
- *
- * Returns: the name
- *
- * Since: 1.16
- **/
-const char *
-nm_p2p_peer_get_name (NMP2PPeer *peer)
-{
- g_return_val_if_fail (NM_IS_P2P_PEER (peer), NULL);
-
- return NM_P2P_PEER_GET_PRIVATE (peer)->name;
-}
-
-/**
- * nm_p2p_peer_get_manufacturer:
- * @peer: a #NMP2PPeer
- *
- * Gets the manufacturer of the P2P peer.
- *
- * Returns: the manufacturer
- *
- * Since: 1.16
- **/
-const char *
-nm_p2p_peer_get_manufacturer (NMP2PPeer *peer)
-{
- g_return_val_if_fail (NM_IS_P2P_PEER (peer), NULL);
-
- return NM_P2P_PEER_GET_PRIVATE (peer)->manufacturer;
-}
-
-/**
- * nm_p2p_peer_get_model:
- * @peer: a #NMP2PPeer
- *
- * Gets the model of the P2P peer.
- *
- * Returns: the model
- *
- * Since: 1.16
- **/
-const char *
-nm_p2p_peer_get_model (NMP2PPeer *peer)
-{
- g_return_val_if_fail (NM_IS_P2P_PEER (peer), NULL);
-
- return NM_P2P_PEER_GET_PRIVATE (peer)->model;
-}
-
-/**
- * nm_p2p_peer_get_model_number:
- * @peer: a #NMP2PPeer
- *
- * Gets the model number of the P2P peer.
- *
- * Returns: the model number
- *
- * Since: 1.16
- **/
-const char *
-nm_p2p_peer_get_model_number (NMP2PPeer *peer)
-{
- g_return_val_if_fail (NM_IS_P2P_PEER (peer), NULL);
-
- return NM_P2P_PEER_GET_PRIVATE (peer)->model_number;
-}
-
-/**
- * nm_p2p_peer_get_serial:
- * @peer: a #NMP2PPeer
- *
- * Gets the serial number of the P2P peer.
- *
- * Returns: the serial number
- *
- * Since: 1.16
- **/
-const char *
-nm_p2p_peer_get_serial (NMP2PPeer *peer)
-{
- g_return_val_if_fail (NM_IS_P2P_PEER (peer), NULL);
-
- return NM_P2P_PEER_GET_PRIVATE (peer)->serial;
-}
-
-/**
- * nm_p2p_peer_get_wfd_ies:
- * @peer: a #NMP2PPeer
- *
- * Gets the WFD information elements of the P2P peer.
- *
- * Returns: (transfer none): the #GBytes containing the WFD IEs, or %NULL.
- *
- * Since: 1.16
- **/
-GBytes *
-nm_p2p_peer_get_wfd_ies (NMP2PPeer *peer)
-{
- NMP2PPeerPrivate *priv;
-
- g_return_val_if_fail (NM_IS_P2P_PEER (peer), NULL);
-
- priv = NM_P2P_PEER_GET_PRIVATE (peer);
- if (!priv->wfd_ies || g_bytes_get_size (priv->wfd_ies) == 0)
- return NULL;
-
- return priv->wfd_ies;
-}
-
-/**
- * nm_p2p_peer_get_hw_address:
- * @peer: a #NMP2PPeer
- *
- * Gets the hardware address of the P2P peer.
- *
- * Returns: the hardware adress
- *
- * Since: 1.16
- **/
-const char *
-nm_p2p_peer_get_hw_address (NMP2PPeer *peer)
-{
- g_return_val_if_fail (NM_IS_P2P_PEER (peer), NULL);
-
- return NM_P2P_PEER_GET_PRIVATE (peer)->hw_address;
-}
-
-/**
- * nm_p2p_peer_get_strength:
- * @peer: a #NMP2PPeer
- *
- * Gets the current signal strength of the P2P peer as a percentage.
- *
- * Returns: the signal strength (0 to 100)
- *
- * Since: 1.16
- **/
-guint8
-nm_p2p_peer_get_strength (NMP2PPeer *peer)
-{
- g_return_val_if_fail (NM_IS_P2P_PEER (peer), 0);
-
- return NM_P2P_PEER_GET_PRIVATE (peer)->strength;
-}
-
-/**
- * nm_p2p_peer_get_last_seen:
- * @peer: a #NMP2PPeer
- *
- * Returns the timestamp (in CLOCK_BOOTTIME seconds) for the last time the
- * P2P peer was seen. A value of -1 means the P2P peer has never been seen.
- *
- * Returns: the last seen time in seconds
- *
- * Since: 1.16
- **/
-int
-nm_p2p_peer_get_last_seen (NMP2PPeer *peer)
-{
- g_return_val_if_fail (NM_IS_P2P_PEER (peer), -1);
-
- return NM_P2P_PEER_GET_PRIVATE (peer)->last_seen;
-}
-
-/**
- * nm_p2p_peer_connection_valid:
- * @peer: an #NMP2PPeer to validate @connection against
- * @connection: an #NMConnection to validate against @peer
- *
- * Validates a given connection against a given Wi-Fi P2P peer to ensure that
- * the connection may be activated with that peer. The connection must match the
- * @peer's address and in the future possibly other attributes.
- *
- * Returns: %TRUE if the connection may be activated with this Wi-Fi P2P Peer,
- * %FALSE if it cannot be.
- *
- * Since: 1.16
- **/
-gboolean
-nm_p2p_peer_connection_valid (NMP2PPeer *peer, NMConnection *connection)
-{
- NMSettingConnection *s_con;
- NMSettingP2PWireless *s_p2p_wifi;
- const char *ctype;
- const char *hw_address;
- const char *setting_peer;
-
- s_con = nm_connection_get_setting_connection (connection);
- if (!s_con)
- return FALSE;
-
- ctype = nm_setting_connection_get_connection_type (s_con);
- if (!ctype || !nm_streq (ctype, NM_SETTING_P2P_WIRELESS_SETTING_NAME))
- return FALSE;
-
- s_p2p_wifi = (NMSettingP2PWireless*) nm_connection_get_setting (connection, NM_TYPE_SETTING_P2P_WIRELESS);
- if (!s_p2p_wifi)
- return FALSE;
-
- /* HW Address check */
- hw_address = nm_p2p_peer_get_hw_address (peer);
- if (!hw_address)
- return FALSE;
- setting_peer = nm_setting_p2p_wireless_get_peer (s_p2p_wifi);
- if ( !setting_peer
- || g_strcmp0 (hw_address, setting_peer))
- return FALSE;
-
- return TRUE;
-}
-
-/**
- * nm_p2p_peer_filter_connections:
- * @peer: an #NMP2PPeer to filter connections for
- * @connections: (element-type NMConnection): an array of #NMConnections to
- * filter
- *
- * Filters a given array of connections for a given #NMP2PPeer object and
- * returns connections which may be activated with the P2P peer. Any
- * returned connections will match the @peers's HW address and in the future
- * possibly other attributes.
- *
- * To obtain the list of connections that are compatible with this P2P peer,
- * use nm_client_get_connections() and then filter the returned list for a given
- * #NMDevice using nm_device_filter_connections() and finally filter that list
- * with this function.
- *
- * Returns: (transfer container) (element-type NMConnection): an array of
- * #NMConnections that could be activated with the given @peer. The array should
- * be freed with g_ptr_array_unref() when it is no longer required.
- *
- * Since: 1.16
- **/
-GPtrArray *
-nm_p2p_peer_filter_connections (NMP2PPeer *peer, const GPtrArray *connections)
-{
- GPtrArray *filtered;
- int i;
-
- filtered = g_ptr_array_new_with_free_func (g_object_unref);
- for (i = 0; i < connections->len; i++) {
- NMConnection *candidate = connections->pdata[i];
-
- if (nm_p2p_peer_connection_valid (peer, candidate))
- g_ptr_array_add (filtered, g_object_ref (candidate));
- }
-
- return filtered;
-}
-
-/*****************************************************************************/
-
-static void
-get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- NMP2PPeer *peer = NM_P2P_PEER (object);
-
- switch (prop_id) {
- case PROP_FLAGS:
- g_value_set_flags (value, nm_p2p_peer_get_flags (peer));
- break;
- case PROP_NAME:
- g_value_set_string (value, nm_p2p_peer_get_name (peer));
- break;
- case PROP_MANUFACTURER:
- g_value_set_string (value, nm_p2p_peer_get_manufacturer (peer));
- break;
- case PROP_MODEL:
- g_value_set_string (value, nm_p2p_peer_get_model (peer));
- break;
- case PROP_MODEL_NUMBER:
- g_value_set_string (value, nm_p2p_peer_get_model_number (peer));
- break;
- case PROP_SERIAL:
- g_value_set_string (value, nm_p2p_peer_get_serial (peer));
- break;
- case PROP_WFD_IES:
- g_value_set_boxed (value, nm_p2p_peer_get_wfd_ies (peer));
- break;
- case PROP_HW_ADDRESS:
- g_value_set_string (value, nm_p2p_peer_get_hw_address (peer));
- break;
- case PROP_STRENGTH:
- g_value_set_uchar (value, nm_p2p_peer_get_strength (peer));
- break;
- case PROP_LAST_SEEN:
- g_value_set_int (value, nm_p2p_peer_get_last_seen (peer));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-nm_p2p_peer_init (NMP2PPeer *peer)
-{
- NM_P2P_PEER_GET_PRIVATE (peer)->last_seen = -1;
-}
-
-static void
-finalize (GObject *object)
-{
- NMP2PPeerPrivate *priv = NM_P2P_PEER_GET_PRIVATE (object);
-
- g_free (priv->name);
- g_free (priv->manufacturer);
- g_free (priv->model);
- g_free (priv->model_number);
- g_free (priv->serial);
-
- if (priv->wfd_ies)
- g_bytes_unref (priv->wfd_ies);
-
- G_OBJECT_CLASS (nm_p2p_peer_parent_class)->finalize (object);
-}
-
-static void
-init_dbus (NMObject *object)
-{
- NMP2PPeerPrivate *priv = NM_P2P_PEER_GET_PRIVATE (object);
- const NMPropertiesInfo property_info[] = {
- { NM_P2P_PEER_FLAGS, &priv->flags },
- { NM_P2P_PEER_NAME, &priv->name },
- { NM_P2P_PEER_MANUFACTURER, &priv->manufacturer },
- { NM_P2P_PEER_MODEL, &priv->model },
- { NM_P2P_PEER_MODEL_NUMBER, &priv->model_number },
- { NM_P2P_PEER_SERIAL, &priv->serial },
- { NM_P2P_PEER_WFD_IES, &priv->wfd_ies },
- { NM_P2P_PEER_HW_ADDRESS, &priv->hw_address },
- { NM_P2P_PEER_STRENGTH, &priv->strength },
- { NM_P2P_PEER_LAST_SEEN, &priv->last_seen },
- { NULL },
- };
-
- NM_OBJECT_CLASS (nm_p2p_peer_parent_class)->init_dbus (object);
-
- _nm_object_register_properties (object,
- NM_DBUS_INTERFACE_P2P_PEER,
- property_info);
-}
-
-static void
-nm_p2p_peer_class_init (NMP2PPeerClass *peer_class)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (peer_class);
- NMObjectClass *nm_object_class = NM_OBJECT_CLASS (peer_class);
-
- g_type_class_add_private (peer_class, sizeof (NMP2PPeerPrivate));
-
- /* virtual methods */
- object_class->get_property = get_property;
- object_class->finalize = finalize;
-
- nm_object_class->init_dbus = init_dbus;
-
- /* properties */
-
- /**
- * NMP2PPeer:flags:
- *
- * The flags of the P2P peer.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_FLAGS,
- g_param_spec_flags (NM_P2P_PEER_FLAGS, "", "",
- NM_TYPE_802_11_AP_FLAGS,
- NM_802_11_AP_FLAGS_NONE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /**
- * NMP2PPeer:name:
- *
- * The name of the P2P peer.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_NAME,
- g_param_spec_string (NM_P2P_PEER_NAME, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /**
- * NMP2PPeer:manufacturer:
- *
- * The manufacturer of the P2P peer.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_MANUFACTURER,
- g_param_spec_string (NM_P2P_PEER_MANUFACTURER, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /**
- * NMP2PPeer:model:
- *
- * The model of the P2P peer.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_MODEL,
- g_param_spec_string (NM_P2P_PEER_MODEL, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /**
- * NMP2PPeer:model-number:
- *
- * The hardware address of the P2P peer.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_MODEL_NUMBER,
- g_param_spec_string (NM_P2P_PEER_MODEL_NUMBER, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /**
- * NMP2PPeer:serial:
- *
- * The serial number of the P2P peer.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_SERIAL,
- g_param_spec_string (NM_P2P_PEER_SERIAL, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /**
- * NMP2PPeer:wfd-ies:
- *
- * The WFD information elements of the P2P peer.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_WFD_IES,
- g_param_spec_boxed (NM_P2P_PEER_WFD_IES, "", "",
- G_TYPE_BYTES,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- /**
- * NMP2PPeer:hw-address:
- *
- * The hardware address of the P2P peer.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_P2P_PEER_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /**
- * NMP2PPeer:strength:
- *
- * The current signal strength of the P2P peer.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_STRENGTH,
- g_param_spec_uchar (NM_P2P_PEER_STRENGTH, "", "",
- 0, G_MAXUINT8, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /**
- * NMP2PPeer:last-seen:
- *
- * The timestamp (in CLOCK_BOOTTIME seconds) for the last time the
- * P2P peer was found. A value of -1 means the peer has never been seen.
- *
- * Since: 1.16
- **/
- g_object_class_install_property
- (object_class, PROP_LAST_SEEN,
- g_param_spec_int (NM_P2P_PEER_LAST_SEEN, "", "",
- -1, G_MAXINT, -1,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-}
diff --git a/libnm/nm-p2p-peer.h b/libnm/nm-p2p-peer.h
deleted file mode 100644
index bb96df4312..0000000000
--- a/libnm/nm-p2p-peer.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA.
- *
- * Copyright 2007 - 2008 Novell, Inc.
- * Copyright 2007 - 2011 Red Hat, Inc.
- */
-
-#ifndef __NM_P2P_PEER_H__
-#define __NM_P2P_PEER_H__
-
-#if !defined (__NETWORKMANAGER_H_INSIDE__) && !defined (NETWORKMANAGER_COMPILATION)
-#error "Only <NetworkManager.h> can be included directly."
-#endif
-
-#include "nm-object.h"
-
-G_BEGIN_DECLS
-
-#define NM_TYPE_P2P_PEER (nm_p2p_peer_get_type ())
-#define NM_P2P_PEER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_P2P_PEER, NMP2PPeer))
-#define NM_P2P_PEER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_P2P_PEER, NMP2PPeerClass))
-#define NM_IS_P2P_PEER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_P2P_PEER))
-#define NM_IS_P2P_PEER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_P2P_PEER))
-#define NM_P2P_PEER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_P2P_PEER, NMP2PPeerClass))
-
-#define NM_P2P_PEER_FLAGS "flags"
-#define NM_P2P_PEER_NAME "name"
-#define NM_P2P_PEER_MANUFACTURER "manufacturer"
-#define NM_P2P_PEER_MODEL "model"
-#define NM_P2P_PEER_MODEL_NUMBER "model-number"
-#define NM_P2P_PEER_SERIAL "serial"
-#define NM_P2P_PEER_WFD_IES "wfd-ies"
-#define NM_P2P_PEER_HW_ADDRESS "hw-address"
-#define NM_P2P_PEER_STRENGTH "strength"
-#define NM_P2P_PEER_LAST_SEEN "last-seen"
-
-/**
- * NMP2PPeer:
- */
-NM_AVAILABLE_IN_1_16
-struct _NMP2PPeer {
- NMObject parent;
-};
-
-NM_AVAILABLE_IN_1_16
-typedef struct {
- NMObjectClass parent;
-
- /*< private >*/
- gpointer padding[4];
-} NMP2PPeerClass;
-
-NM_AVAILABLE_IN_1_16
-GType nm_p2p_peer_get_type (void);
-
-NM_AVAILABLE_IN_1_16
-NM80211ApFlags nm_p2p_peer_get_flags (NMP2PPeer *peer);
-
-NM_AVAILABLE_IN_1_16
-const char * nm_p2p_peer_get_name (NMP2PPeer *peer);
-NM_AVAILABLE_IN_1_16
-const char * nm_p2p_peer_get_manufacturer (NMP2PPeer *peer);
-NM_AVAILABLE_IN_1_16
-const char * nm_p2p_peer_get_model (NMP2PPeer *peer);
-NM_AVAILABLE_IN_1_16
-const char * nm_p2p_peer_get_model_number (NMP2PPeer *peer);
-NM_AVAILABLE_IN_1_16
-const char * nm_p2p_peer_get_serial (NMP2PPeer *peer);
-
-NM_AVAILABLE_IN_1_16
-GBytes * nm_p2p_peer_get_wfd_ies (NMP2PPeer *peer);
-
-NM_AVAILABLE_IN_1_16
-const char * nm_p2p_peer_get_hw_address (NMP2PPeer *peer);
-
-NM_AVAILABLE_IN_1_16
-guint8 nm_p2p_peer_get_strength (NMP2PPeer *peer);
-NM_AVAILABLE_IN_1_16
-int nm_p2p_peer_get_last_seen (NMP2PPeer *peer);
-
-NM_AVAILABLE_IN_1_16
-GPtrArray * nm_p2p_peer_filter_connections (NMP2PPeer *peer,
- const GPtrArray *connections);
-
-NM_AVAILABLE_IN_1_16
-gboolean nm_p2p_peer_connection_valid (NMP2PPeer *peer,
- NMConnection *connection);
-
-G_END_DECLS
-
-#endif /* __NM_P2P_PEER_H__ */
diff --git a/libnm/nm-types.h b/libnm/nm-types.h
index 0cf8186f5c..16a2ba188c 100644
--- a/libnm/nm-types.h
+++ b/libnm/nm-types.h
@@ -39,8 +39,8 @@ typedef struct _NMDeviceBt NMDeviceBt;
typedef struct _NMDeviceDummy NMDeviceDummy;
typedef struct _NMDeviceEthernet NMDeviceEthernet;
typedef struct _NMDeviceGeneric NMDeviceGeneric;
-typedef struct _NMDeviceInfiniband NMDeviceInfiniband;
typedef struct _NMDeviceIPTunnel NMDeviceIPTunnel;
+typedef struct _NMDeviceInfiniband NMDeviceInfiniband;
typedef struct _NMDeviceMacsec NMDeviceMacsec;
typedef struct _NMDeviceMacvlan NMDeviceMacvlan;
typedef struct _NMDeviceModem NMDeviceModem;
@@ -54,16 +54,16 @@ typedef struct _NMDeviceTun NMDeviceTun;
typedef struct _NMDeviceVlan NMDeviceVlan;
typedef struct _NMDeviceVxlan NMDeviceVxlan;
typedef struct _NMDeviceWifi NMDeviceWifi;
-typedef struct _NMDeviceP2PWifi NMDeviceP2PWifi;
+typedef struct _NMDeviceWifiP2P NMDeviceWifiP2P;
typedef struct _NMDeviceWimax NMDeviceWimax;
typedef struct _NMDeviceWireGuard NMDeviceWireGuard;
typedef struct _NMDeviceWpan NMDeviceWpan;
typedef struct _NMDhcpConfig NMDhcpConfig;
typedef struct _NMIPConfig NMIPConfig;
-typedef struct _NMP2PPeer NMP2PPeer;
typedef struct _NMObject NMObject;
typedef struct _NMRemoteConnection NMRemoteConnection;
typedef struct _NMVpnConnection NMVpnConnection;
+typedef struct _NMWifiP2PPeer NMWifiP2PPeer;
typedef struct _NMWimaxNsp NMWimaxNsp;
#endif /* NM_TYPES_H */
diff --git a/libnm/nm-wifi-p2p-peer.c b/libnm/nm-wifi-p2p-peer.c
new file mode 100644
index 0000000000..d17010ce0f
--- /dev/null
+++ b/libnm/nm-wifi-p2p-peer.c
@@ -0,0 +1,603 @@
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright 2018 - 2019 Red Hat, Inc.
+ */
+
+#include "nm-default.h"
+
+#include "nm-wifi-p2p-peer.h"
+
+#include <string.h>
+
+#include "nm-connection.h"
+#include "nm-setting-connection.h"
+#include "nm-setting-wifi-p2p.h"
+#include "nm-utils.h"
+
+#include "nm-dbus-interface.h"
+#include "nm-object-private.h"
+
+/*****************************************************************************/
+
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_FLAGS,
+ PROP_NAME,
+ PROP_MANUFACTURER,
+ PROP_MODEL,
+ PROP_MODEL_NUMBER,
+ PROP_SERIAL,
+ PROP_WFD_IES,
+ PROP_HW_ADDRESS,
+ PROP_STRENGTH,
+ PROP_LAST_SEEN,
+);
+
+typedef struct {
+ char *name;
+ char *manufacturer;
+ char *model;
+ char *model_number;
+ char *serial;
+
+ GBytes *wfd_ies;
+
+ char *hw_address;
+
+ int last_seen;
+
+ NM80211ApFlags flags;
+
+ guint8 strength;
+} NMWifiP2PPeerPrivate;
+
+/**
+ * NMWifiP2PPeer:
+ */
+struct _NMWifiP2PPeer {
+ NMObject parent;
+ NMWifiP2PPeerPrivate _priv;
+};
+
+struct _NMWifiP2PPeerClass {
+ NMObjectClass parent;
+};
+
+G_DEFINE_TYPE (NMWifiP2PPeer, nm_wifi_p2p_peer, NM_TYPE_OBJECT)
+
+#define NM_WIFI_P2P_PEER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMWifiP2PPeer, NM_IS_WIFI_P2P_PEER, NMObject)
+
+/*****************************************************************************/
+
+/**
+ * nm_wifi_p2p_peer_get_flags:
+ * @peer: a #NMWifiP2PPeer
+ *
+ * Gets the flags of the P2P peer.
+ *
+ * Returns: the flags
+ *
+ * Since: 1.16
+ **/
+NM80211ApFlags
+nm_wifi_p2p_peer_get_flags (NMWifiP2PPeer *peer)
+{
+ g_return_val_if_fail (NM_IS_WIFI_P2P_PEER (peer), NM_802_11_AP_FLAGS_NONE);
+
+ return NM_WIFI_P2P_PEER_GET_PRIVATE (peer)->flags;
+}
+
+/**
+ * nm_wifi_p2p_peer_get_name:
+ * @peer: a #NMWifiP2PPeer
+ *
+ * Gets the name of the P2P peer.
+ *
+ * Returns: the name
+ *
+ * Since: 1.16
+ **/
+const char *
+nm_wifi_p2p_peer_get_name (NMWifiP2PPeer *peer)
+{
+ g_return_val_if_fail (NM_IS_WIFI_P2P_PEER (peer), NULL);
+
+ return NM_WIFI_P2P_PEER_GET_PRIVATE (peer)->name;
+}
+
+/**
+ * nm_wifi_p2p_peer_get_manufacturer:
+ * @peer: a #NMWifiP2PPeer
+ *
+ * Gets the manufacturer of the P2P peer.
+ *
+ * Returns: the manufacturer
+ *
+ * Since: 1.16
+ **/
+const char *
+nm_wifi_p2p_peer_get_manufacturer (NMWifiP2PPeer *peer)
+{
+ g_return_val_if_fail (NM_IS_WIFI_P2P_PEER (peer), NULL);
+
+ return NM_WIFI_P2P_PEER_GET_PRIVATE (peer)->manufacturer;
+}
+
+/**
+ * nm_wifi_p2p_peer_get_model:
+ * @peer: a #NMWifiP2PPeer
+ *
+ * Gets the model of the P2P peer.
+ *
+ * Returns: the model
+ *
+ * Since: 1.16
+ **/
+const char *
+nm_wifi_p2p_peer_get_model (NMWifiP2PPeer *peer)
+{
+ g_return_val_if_fail (NM_IS_WIFI_P2P_PEER (peer), NULL);
+
+ return NM_WIFI_P2P_PEER_GET_PRIVATE (peer)->model;
+}
+
+/**
+ * nm_wifi_p2p_peer_get_model_number:
+ * @peer: a #NMWifiP2PPeer
+ *
+ * Gets the model number of the P2P peer.
+ *
+ * Returns: the model number
+ *
+ * Since: 1.16
+ **/
+const char *
+nm_wifi_p2p_peer_get_model_number (NMWifiP2PPeer *peer)
+{
+ g_return_val_if_fail (NM_IS_WIFI_P2P_PEER (peer), NULL);
+
+ return NM_WIFI_P2P_PEER_GET_PRIVATE (peer)->model_number;
+}
+
+/**
+ * nm_wifi_p2p_peer_get_serial:
+ * @peer: a #NMWifiP2PPeer
+ *
+ * Gets the serial number of the P2P peer.
+ *
+ * Returns: the serial number
+ *
+ * Since: 1.16
+ **/
+const char *
+nm_wifi_p2p_peer_get_serial (NMWifiP2PPeer *peer)
+{
+ g_return_val_if_fail (NM_IS_WIFI_P2P_PEER (peer), NULL);
+
+ return NM_WIFI_P2P_PEER_GET_PRIVATE (peer)->serial;
+}
+
+/**
+ * nm_wifi_p2p_peer_get_wfd_ies:
+ * @peer: a #NMWifiP2PPeer
+ *
+ * Gets the WFD information elements of the P2P peer.
+ *
+ * Returns: (transfer none): the #GBytes containing the WFD IEs, or %NULL.
+ *
+ * Since: 1.16
+ **/
+GBytes *
+nm_wifi_p2p_peer_get_wfd_ies (NMWifiP2PPeer *peer)
+{
+ NMWifiP2PPeerPrivate *priv;
+
+ g_return_val_if_fail (NM_IS_WIFI_P2P_PEER (peer), NULL);
+
+ priv = NM_WIFI_P2P_PEER_GET_PRIVATE (peer);
+ if (!priv->wfd_ies || g_bytes_get_size (priv->wfd_ies) == 0)
+ return NULL;
+
+ return priv->wfd_ies;
+}
+
+/**
+ * nm_wifi_p2p_peer_get_hw_address:
+ * @peer: a #NMWifiP2PPeer
+ *
+ * Gets the hardware address of the P2P peer.
+ *
+ * Returns: the hardware adress
+ *
+ * Since: 1.16
+ **/
+const char *
+nm_wifi_p2p_peer_get_hw_address (NMWifiP2PPeer *peer)
+{
+ g_return_val_if_fail (NM_IS_WIFI_P2P_PEER (peer), NULL);
+
+ return NM_WIFI_P2P_PEER_GET_PRIVATE (peer)->hw_address;
+}
+
+/**
+ * nm_wifi_p2p_peer_get_strength:
+ * @peer: a #NMWifiP2PPeer
+ *
+ * Gets the current signal strength of the P2P peer as a percentage.
+ *
+ * Returns: the signal strength (0 to 100)
+ *
+ * Since: 1.16
+ **/
+guint8
+nm_wifi_p2p_peer_get_strength (NMWifiP2PPeer *peer)
+{
+ g_return_val_if_fail (NM_IS_WIFI_P2P_PEER (peer), 0);
+
+ return NM_WIFI_P2P_PEER_GET_PRIVATE (peer)->strength;
+}
+
+/**
+ * nm_wifi_p2p_peer_get_last_seen:
+ * @peer: a #NMWifiP2PPeer
+ *
+ * Returns the timestamp (in CLOCK_BOOTTIME seconds) for the last time the
+ * P2P peer was seen. A value of -1 means the P2P peer has never been seen.
+ *
+ * Returns: the last seen time in seconds
+ *
+ * Since: 1.16
+ **/
+int
+nm_wifi_p2p_peer_get_last_seen (NMWifiP2PPeer *peer)
+{
+ g_return_val_if_fail (NM_IS_WIFI_P2P_PEER (peer), -1);
+
+ return NM_WIFI_P2P_PEER_GET_PRIVATE (peer)->last_seen;
+}
+
+/**
+ * nm_wifi_p2p_peer_connection_valid:
+ * @peer: an #NMWifiP2PPeer to validate @connection against
+ * @connection: an #NMConnection to validate against @peer
+ *
+ * Validates a given connection against a given Wi-Fi P2P peer to ensure that
+ * the connection may be activated with that peer. The connection must match the
+ * @peer's address and in the future possibly other attributes.
+ *
+ * Returns: %TRUE if the connection may be activated with this Wi-Fi P2P Peer,
+ * %FALSE if it cannot be.
+ *
+ * Since: 1.16
+ **/
+gboolean
+nm_wifi_p2p_peer_connection_valid (NMWifiP2PPeer *peer, NMConnection *connection)
+{
+ NMSettingConnection *s_con;
+ NMSettingWifiP2P *s_wifi_p2p;
+ const char *ctype;
+ const char *hw_address;
+ const char *setting_peer;
+
+ s_wifi_p2p = (NMSettingWifiP2P *) nm_connection_get_setting (connection, NM_TYPE_SETTING_WIFI_P2P);
+ if (!s_wifi_p2p)
+ return FALSE;
+
+ s_con = nm_connection_get_setting_connection (connection);
+ if (!s_con)
+ return FALSE;
+
+ ctype = nm_setting_connection_get_connection_type (s_con);
+ if ( !ctype
+ || !nm_streq (ctype, NM_SETTING_WIFI_P2P_SETTING_NAME))
+ return FALSE;
+
+ /* HW Address check */
+ hw_address = nm_wifi_p2p_peer_get_hw_address (peer);
+ if (!hw_address)
+ return FALSE;
+
+ setting_peer = nm_setting_wifi_p2p_get_peer (s_wifi_p2p);
+ if ( !setting_peer
+ || !nm_streq (hw_address, setting_peer))
+ return FALSE;
+
+ return TRUE;
+}
+
+/**
+ * nm_wifi_p2p_peer_filter_connections:
+ * @peer: an #NMWifiP2PPeer to filter connections for
+ * @connections: (element-type NMConnection): an array of #NMConnections to
+ * filter
+ *
+ * Filters a given array of connections for a given #NMWifiP2PPeer object and
+ * returns connections which may be activated with the P2P peer. Any
+ * returned connections will match the @peers's HW address and in the future
+ * possibly other attributes.
+ *
+ * To obtain the list of connections that are compatible with this P2P peer,
+ * use nm_client_get_connections() and then filter the returned list for a given
+ * #NMDevice using nm_device_filter_connections() and finally filter that list
+ * with this function.
+ *
+ * Returns: (transfer container) (element-type NMConnection): an array of
+ * #NMConnections that could be activated with the given @peer. The array should
+ * be freed with g_ptr_array_unref() when it is no longer required.
+ *
+ * Since: 1.16
+ **/
+GPtrArray *
+nm_wifi_p2p_peer_filter_connections (NMWifiP2PPeer *peer, const GPtrArray *connections)
+{
+ GPtrArray *filtered;
+ guint i;
+
+ filtered = g_ptr_array_new_with_free_func (g_object_unref);
+ for (i = 0; i < connections->len; i++) {
+ NMConnection *candidate = connections->pdata[i];
+
+ if (nm_wifi_p2p_peer_connection_valid (peer, candidate))
+ g_ptr_array_add (filtered, g_object_ref (candidate));
+ }
+
+ return filtered;
+}
+
+/*****************************************************************************/
+
+static void
+init_dbus (NMObject *object)
+{
+ NMWifiP2PPeerPrivate *priv = NM_WIFI_P2P_PEER_GET_PRIVATE (object);
+ const NMPropertiesInfo property_info[] = {
+ { NM_WIFI_P2P_PEER_FLAGS, &priv->flags },
+ { NM_WIFI_P2P_PEER_NAME, &priv->name },
+ { NM_WIFI_P2P_PEER_MANUFACTURER, &priv->manufacturer },
+ { NM_WIFI_P2P_PEER_MODEL, &priv->model },
+ { NM_WIFI_P2P_PEER_MODEL_NUMBER, &priv->model_number },
+ { NM_WIFI_P2P_PEER_SERIAL, &priv->serial },
+ { NM_WIFI_P2P_PEER_WFD_IES, &priv->wfd_ies },
+ { NM_WIFI_P2P_PEER_HW_ADDRESS, &priv->hw_address },
+ { NM_WIFI_P2P_PEER_STRENGTH, &priv->strength },
+ { NM_WIFI_P2P_PEER_LAST_SEEN, &priv->last_seen },
+ { NULL },
+ };
+
+ NM_OBJECT_CLASS (nm_wifi_p2p_peer_parent_class)->init_dbus (object);
+
+ _nm_object_register_properties (object,
+ NM_DBUS_INTERFACE_WIFI_P2P_PEER,
+ property_info);
+}
+
+/*****************************************************************************/
+
+static void
+get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ NMWifiP2PPeer *peer = NM_WIFI_P2P_PEER (object);
+
+ switch (prop_id) {
+ case PROP_FLAGS:
+ g_value_set_flags (value, nm_wifi_p2p_peer_get_flags (peer));
+ break;
+ case PROP_NAME:
+ g_value_set_string (value, nm_wifi_p2p_peer_get_name (peer));
+ break;
+ case PROP_MANUFACTURER:
+ g_value_set_string (value, nm_wifi_p2p_peer_get_manufacturer (peer));
+ break;
+ case PROP_MODEL:
+ g_value_set_string (value, nm_wifi_p2p_peer_get_model (peer));
+ break;
+ case PROP_MODEL_NUMBER:
+ g_value_set_string (value, nm_wifi_p2p_peer_get_model_number (peer));
+ break;
+ case PROP_SERIAL:
+ g_value_set_string (value, nm_wifi_p2p_peer_get_serial (peer));
+ break;
+ case PROP_WFD_IES:
+ g_value_set_boxed (value, nm_wifi_p2p_peer_get_wfd_ies (peer));
+ break;
+ case PROP_HW_ADDRESS:
+ g_value_set_string (value, nm_wifi_p2p_peer_get_hw_address (peer));
+ break;
+ case PROP_STRENGTH:
+ g_value_set_uchar (value, nm_wifi_p2p_peer_get_strength (peer));
+ break;
+ case PROP_LAST_SEEN:
+ g_value_set_int (value, nm_wifi_p2p_peer_get_last_seen (peer));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
+static void
+nm_wifi_p2p_peer_init (NMWifiP2PPeer *peer)
+{
+ NM_WIFI_P2P_PEER_GET_PRIVATE (peer)->last_seen = -1;
+}
+
+static void
+finalize (GObject *object)
+{
+ NMWifiP2PPeerPrivate *priv = NM_WIFI_P2P_PEER_GET_PRIVATE (object);
+
+ g_free (priv->name);
+ g_free (priv->manufacturer);
+ g_free (priv->model);
+ g_free (priv->model_number);
+ g_free (priv->serial);
+
+ g_free (priv->hw_address);
+
+ g_bytes_unref (priv->wfd_ies);
+
+ G_OBJECT_CLASS (nm_wifi_p2p_peer_parent_class)->finalize (object);
+}
+
+static void
+nm_wifi_p2p_peer_class_init (NMWifiP2PPeerClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass);
+
+ object_class->get_property = get_property;
+ object_class->finalize = finalize;
+
+ nm_object_class->init_dbus = init_dbus;
+
+ /**
+ * NMWifiP2PPeer:flags:
+ *
+ * The flags of the P2P peer.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_FLAGS] =
+ g_param_spec_flags (NM_WIFI_P2P_PEER_FLAGS, "", "",
+ NM_TYPE_802_11_AP_FLAGS,
+ NM_802_11_AP_FLAGS_NONE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ /**
+ * NMWifiP2PPeer:name:
+ *
+ * The name of the P2P peer.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_NAME] =
+ g_param_spec_string (NM_WIFI_P2P_PEER_NAME, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ /**
+ * NMWifiP2PPeer:manufacturer:
+ *
+ * The manufacturer of the P2P peer.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_MANUFACTURER] =
+ g_param_spec_string (NM_WIFI_P2P_PEER_MANUFACTURER, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ /**
+ * NMWifiP2PPeer:model:
+ *
+ * The model of the P2P peer.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_MODEL] =
+ g_param_spec_string (NM_WIFI_P2P_PEER_MODEL, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ /**
+ * NMWifiP2PPeer:model-number:
+ *
+ * The hardware address of the P2P peer.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_MODEL_NUMBER] =
+ g_param_spec_string (NM_WIFI_P2P_PEER_MODEL_NUMBER, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ /**
+ * NMWifiP2PPeer:serial:
+ *
+ * The serial number of the P2P peer.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_SERIAL] =
+ g_param_spec_string (NM_WIFI_P2P_PEER_SERIAL, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ /**
+ * NMWifiP2PPeer:wfd-ies:
+ *
+ * The WFD information elements of the P2P peer.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_WFD_IES] =
+ g_param_spec_boxed (NM_WIFI_P2P_PEER_WFD_IES, "", "",
+ G_TYPE_BYTES,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ /**
+ * NMWifiP2PPeer:hw-address:
+ *
+ * The hardware address of the P2P peer.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_WIFI_P2P_PEER_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ /**
+ * NMWifiP2PPeer:strength:
+ *
+ * The current signal strength of the P2P peer.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_STRENGTH] =
+ g_param_spec_uchar (NM_WIFI_P2P_PEER_STRENGTH, "", "",
+ 0, G_MAXUINT8, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ /**
+ * NMWifiP2PPeer:last-seen:
+ *
+ * The timestamp (in CLOCK_BOOTTIME seconds) for the last time the
+ * P2P peer was found. A value of -1 means the peer has never been seen.
+ *
+ * Since: 1.16
+ **/
+ obj_properties[PROP_LAST_SEEN] =
+ g_param_spec_int (NM_WIFI_P2P_PEER_LAST_SEEN, "", "",
+ -1, G_MAXINT, -1,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
+}
diff --git a/libnm/nm-wifi-p2p-peer.h b/libnm/nm-wifi-p2p-peer.h
new file mode 100644
index 0000000000..7d48883b3b
--- /dev/null
+++ b/libnm/nm-wifi-p2p-peer.h
@@ -0,0 +1,89 @@
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright 2018 - 2019 Red Hat, Inc.
+ */
+
+#ifndef __NM_WIFI_P2P_PEER_H__
+#define __NM_WIFI_P2P_PEER_H__
+
+#if !defined (__NETWORKMANAGER_H_INSIDE__) && !defined (NETWORKMANAGER_COMPILATION)
+#error "Only <NetworkManager.h> can be included directly."
+#endif
+
+#include "nm-object.h"
+
+G_BEGIN_DECLS
+
+#define NM_TYPE_WIFI_P2P_PEER (nm_wifi_p2p_peer_get_type ())
+#define NM_WIFI_P2P_PEER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_WIFI_P2P_PEER, NMWifiP2PPeer))
+#define NM_WIFI_P2P_PEER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_WIFI_P2P_PEER, NMWifiP2PPeerClass))
+#define NM_IS_WIFI_P2P_PEER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_WIFI_P2P_PEER))
+#define NM_IS_WIFI_P2P_PEER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_WIFI_P2P_PEER))
+#define NM_WIFI_P2P_PEER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_WIFI_P2P_PEER, NMWifiP2PPeerClass))
+
+#define NM_WIFI_P2P_PEER_FLAGS "flags"
+#define NM_WIFI_P2P_PEER_NAME "name"
+#define NM_WIFI_P2P_PEER_MANUFACTURER "manufacturer"
+#define NM_WIFI_P2P_PEER_MODEL "model"
+#define NM_WIFI_P2P_PEER_MODEL_NUMBER "model-number"
+#define NM_WIFI_P2P_PEER_SERIAL "serial"
+#define NM_WIFI_P2P_PEER_WFD_IES "wfd-ies"
+#define NM_WIFI_P2P_PEER_HW_ADDRESS "hw-address"
+#define NM_WIFI_P2P_PEER_STRENGTH "strength"
+#define NM_WIFI_P2P_PEER_LAST_SEEN "last-seen"
+
+typedef struct _NMWifiP2PPeerClass NMWifiP2PPeerClass;
+
+NM_AVAILABLE_IN_1_16
+GType nm_wifi_p2p_peer_get_type (void);
+
+NM_AVAILABLE_IN_1_16
+NM80211ApFlags nm_wifi_p2p_peer_get_flags (NMWifiP2PPeer *peer);
+
+NM_AVAILABLE_IN_1_16
+const char * nm_wifi_p2p_peer_get_name (NMWifiP2PPeer *peer);
+NM_AVAILABLE_IN_1_16
+const char * nm_wifi_p2p_peer_get_manufacturer (NMWifiP2PPeer *peer);
+NM_AVAILABLE_IN_1_16
+const char * nm_wifi_p2p_peer_get_model (NMWifiP2PPeer *peer);
+NM_AVAILABLE_IN_1_16
+const char * nm_wifi_p2p_peer_get_model_number (NMWifiP2PPeer *peer);
+NM_AVAILABLE_IN_1_16
+const char * nm_wifi_p2p_peer_get_serial (NMWifiP2PPeer *peer);
+
+NM_AVAILABLE_IN_1_16
+GBytes * nm_wifi_p2p_peer_get_wfd_ies (NMWifiP2PPeer *peer);
+
+NM_AVAILABLE_IN_1_16
+const char * nm_wifi_p2p_peer_get_hw_address (NMWifiP2PPeer *peer);
+
+NM_AVAILABLE_IN_1_16
+guint8 nm_wifi_p2p_peer_get_strength (NMWifiP2PPeer *peer);
+NM_AVAILABLE_IN_1_16
+int nm_wifi_p2p_peer_get_last_seen (NMWifiP2PPeer *peer);
+
+NM_AVAILABLE_IN_1_16
+GPtrArray * nm_wifi_p2p_peer_filter_connections (NMWifiP2PPeer *peer,
+ const GPtrArray *connections);
+
+NM_AVAILABLE_IN_1_16
+gboolean nm_wifi_p2p_peer_connection_valid (NMWifiP2PPeer *peer,
+ NMConnection *connection);
+
+G_END_DECLS
+
+#endif /* __NM_WIFI_P2P_PEER_H__ */
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 31a614fc8a..393f84e8ca 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -72,29 +72,29 @@ libnm-core/nm-setting-ethtool.c
libnm-core/nm-setting-gsm.c
libnm-core/nm-setting-infiniband.c
libnm-core/nm-setting-ip-config.c
+libnm-core/nm-setting-ip-tunnel.c
libnm-core/nm-setting-ip4-config.c
libnm-core/nm-setting-ip6-config.c
-libnm-core/nm-setting-ip-tunnel.c
libnm-core/nm-setting-macsec.c
libnm-core/nm-setting-macvlan.c
libnm-core/nm-setting-olpc-mesh.c
+libnm-core/nm-setting-ovs-bridge.c
libnm-core/nm-setting-ovs-interface.c
libnm-core/nm-setting-ovs-patch.c
libnm-core/nm-setting-ovs-port.c
-libnm-core/nm-setting-ovs-bridge.c
-libnm-core/nm-setting-p2p-wireless.c
libnm-core/nm-setting-ppp.c
libnm-core/nm-setting-pppoe.c
libnm-core/nm-setting-proxy.c
libnm-core/nm-setting-sriov.c
libnm-core/nm-setting-tc-config.c
-libnm-core/nm-setting-team.c
libnm-core/nm-setting-team-port.c
+libnm-core/nm-setting-team.c
libnm-core/nm-setting-tun.c
libnm-core/nm-setting-user.c
libnm-core/nm-setting-vlan.c
libnm-core/nm-setting-vpn.c
libnm-core/nm-setting-vxlan.c
+libnm-core/nm-setting-wifi-p2p.c
libnm-core/nm-setting-wimax.c
libnm-core/nm-setting-wired.c
libnm-core/nm-setting-wireless-security.c
@@ -143,7 +143,6 @@ libnm/nm-device-bt.c
libnm/nm-device-dummy.c
libnm/nm-device-ethernet.c
libnm/nm-device-generic.c
-libnm/nm-device-tun.c
libnm/nm-device-infiniband.c
libnm/nm-device-ip-tunnel.c
libnm/nm-device-macvlan.c
@@ -152,10 +151,11 @@ libnm/nm-device-olpc-mesh.c
libnm/nm-device-ovs-bridge.c
libnm/nm-device-ovs-interface.c
libnm/nm-device-ovs-port.c
-libnm/nm-device-p2p-wifi.c
libnm/nm-device-team.c
+libnm/nm-device-tun.c
libnm/nm-device-vlan.c
libnm/nm-device-vxlan.c
+libnm/nm-device-wifi-p2p.c
libnm/nm-device-wifi.c
libnm/nm-device-wimax.c
libnm/nm-device-wpan.c
diff --git a/shared/nm-meta-setting.c b/shared/nm-meta-setting.c
index 6256b06c00..e7e73bd88e 100644
--- a/shared/nm-meta-setting.c
+++ b/shared/nm-meta-setting.c
@@ -28,8 +28,8 @@
#include "nm-setting-adsl.h"
#include "nm-setting-bluetooth.h"
#include "nm-setting-bond.h"
-#include "nm-setting-bridge.h"
#include "nm-setting-bridge-port.h"
+#include "nm-setting-bridge.h"
#include "nm-setting-cdma.h"
#include "nm-setting-connection.h"
#include "nm-setting-dcb.h"
@@ -38,10 +38,10 @@
#include "nm-setting-generic.h"
#include "nm-setting-gsm.h"
#include "nm-setting-infiniband.h"
-#include "nm-setting-ip4-config.h"
-#include "nm-setting-ip6-config.h"
#include "nm-setting-ip-config.h"
#include "nm-setting-ip-tunnel.h"
+#include "nm-setting-ip4-config.h"
+#include "nm-setting-ip6-config.h"
#include "nm-setting-macsec.h"
#include "nm-setting-macvlan.h"
#include "nm-setting-match.h"
@@ -50,23 +50,23 @@
#include "nm-setting-ovs-interface.h"
#include "nm-setting-ovs-patch.h"
#include "nm-setting-ovs-port.h"
-#include "nm-setting-p2p-wireless.h"
#include "nm-setting-ppp.h"
#include "nm-setting-pppoe.h"
#include "nm-setting-proxy.h"
#include "nm-setting-serial.h"
#include "nm-setting-tc-config.h"
-#include "nm-setting-team.h"
#include "nm-setting-team-port.h"
+#include "nm-setting-team.h"
#include "nm-setting-tun.h"
#include "nm-setting-user.h"
#include "nm-setting-vlan.h"
#include "nm-setting-vpn.h"
#include "nm-setting-vxlan.h"
+#include "nm-setting-wifi-p2p.h"
#include "nm-setting-wimax.h"
#include "nm-setting-wired.h"
-#include "nm-setting-wireless.h"
#include "nm-setting-wireless-security.h"
+#include "nm-setting-wireless.h"
#include "nm-setting-wpan.h"
/*****************************************************************************/
@@ -306,12 +306,6 @@ const NMMetaSettingInfo nm_meta_setting_infos[] = {
.setting_name = NM_SETTING_OVS_PORT_SETTING_NAME,
.get_setting_gtype = nm_setting_ovs_port_get_type,
},
- [NM_META_SETTING_TYPE_P2P_WIRELESS] = {
- .meta_type = NM_META_SETTING_TYPE_P2P_WIRELESS,
- .setting_priority = NM_SETTING_PRIORITY_HW_BASE,
- .setting_name = NM_SETTING_P2P_WIRELESS_SETTING_NAME,
- .get_setting_gtype = nm_setting_p2p_wireless_get_type,
- },
[NM_META_SETTING_TYPE_PPPOE] = {
.meta_type = NM_META_SETTING_TYPE_PPPOE,
.setting_priority = NM_SETTING_PRIORITY_AUX,
@@ -390,6 +384,12 @@ const NMMetaSettingInfo nm_meta_setting_infos[] = {
.setting_name = NM_SETTING_VXLAN_SETTING_NAME,
.get_setting_gtype = nm_setting_vxlan_get_type,
},
+ [NM_META_SETTING_TYPE_WIFI_P2P] = {
+ .meta_type = NM_META_SETTING_TYPE_WIFI_P2P,
+ .setting_priority = NM_SETTING_PRIORITY_HW_BASE,
+ .setting_name = NM_SETTING_WIFI_P2P_SETTING_NAME,
+ .get_setting_gtype = nm_setting_wifi_p2p_get_type,
+ },
[NM_META_SETTING_TYPE_WIMAX] = {
.meta_type = NM_META_SETTING_TYPE_WIMAX,
.setting_priority = NM_SETTING_PRIORITY_HW_BASE,
diff --git a/shared/nm-meta-setting.h b/shared/nm-meta-setting.h
index 089acc8e9c..883d8ca195 100644
--- a/shared/nm-meta-setting.h
+++ b/shared/nm-meta-setting.h
@@ -132,7 +132,6 @@ typedef enum {
NM_META_SETTING_TYPE_OVS_INTERFACE,
NM_META_SETTING_TYPE_OVS_PATCH,
NM_META_SETTING_TYPE_OVS_PORT,
- NM_META_SETTING_TYPE_P2P_WIRELESS,
NM_META_SETTING_TYPE_PPP,
NM_META_SETTING_TYPE_PPPOE,
NM_META_SETTING_TYPE_PROXY,
@@ -146,6 +145,7 @@ typedef enum {
NM_META_SETTING_TYPE_VLAN,
NM_META_SETTING_TYPE_VPN,
NM_META_SETTING_TYPE_VXLAN,
+ NM_META_SETTING_TYPE_WIFI_P2P,
NM_META_SETTING_TYPE_WIMAX,
NM_META_SETTING_TYPE_WPAN,
diff --git a/src/devices/wifi/meson.build b/src/devices/wifi/meson.build
index d2b807fc95..4dfbe4c8da 100644
--- a/src/devices/wifi/meson.build
+++ b/src/devices/wifi/meson.build
@@ -6,7 +6,7 @@ common_sources = files(
sources = common_sources + files(
'nm-device-olpc-mesh.c',
- 'nm-device-p2p-wifi.c',
+ 'nm-device-wifi-p2p.c',
'nm-device-wifi.c',
'nm-wifi-common.c',
'nm-wifi-factory.c',
diff --git a/src/devices/wifi/nm-device-p2p-wifi.h b/src/devices/wifi/nm-device-p2p-wifi.h
deleted file mode 100644
index 128914e055..0000000000
--- a/src/devices/wifi/nm-device-p2p-wifi.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* NetworkManager -- P2P Wi-Fi Device
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA.
- *
- * (C) Copyright 2018 Red Hat, Inc.
- */
-
-#ifndef __NM_DEVICE_P2P_WIFI_H__
-#define __NM_DEVICE_P2P_WIFI_H__
-
-#include "devices/nm-device.h"
-#include "supplicant/nm-supplicant-interface.h"
-
-#define NM_TYPE_DEVICE_P2P_WIFI (nm_device_p2p_wifi_get_type ())
-#define NM_DEVICE_P2P_WIFI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_P2P_WIFI, NMDeviceP2PWifi))
-#define NM_DEVICE_P2P_WIFI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_P2P_WIFI, NMDeviceP2PWifiClass))
-#define NM_IS_DEVICE_P2P_WIFI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_P2P_WIFI))
-#define NM_IS_DEVICE_P2P_WIFI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_P2P_WIFI))
-#define NM_DEVICE_P2P_WIFI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_P2P_WIFI, NMDeviceP2PWifiClass))
-
-#define NM_DEVICE_P2P_WIFI_GROUP_OWNER "group-owner"
-#define NM_DEVICE_P2P_WIFI_PEERS "peers"
-#define NM_DEVICE_P2P_WIFI_GROUPS "groups"
-#define NM_DEVICE_P2P_WIFI_WFDIES "WFDIEs"
-
-#define NM_DEVICE_P2P_WIFI_MGMT_IFACE "mgmt-iface"
-
-
-typedef struct _NMDeviceP2PWifi NMDeviceP2PWifi;
-typedef struct _NMDeviceP2PWifiClass NMDeviceP2PWifiClass;
-
-GType nm_device_p2p_wifi_get_type (void);
-
-NMDevice* nm_device_p2p_wifi_new (NMSupplicantInterface *mgmt_iface,
- const char* iface);
-
-NMSupplicantInterface * nm_device_p2p_wifi_get_mgmt_iface (NMDeviceP2PWifi *self);
-void nm_device_p2p_wifi_set_mgmt_iface (NMDeviceP2PWifi *self,
- NMSupplicantInterface *iface);
-
-void nm_device_p2p_wifi_remove (NMDeviceP2PWifi *self);
-
-#endif /* __NM_DEVICE_P2P_WIFI_H__ */
diff --git a/src/devices/wifi/nm-device-p2p-wifi.c b/src/devices/wifi/nm-device-wifi-p2p.c
index e9b7f68c71..1043b69a14 100644
--- a/src/devices/wifi/nm-device-p2p-wifi.c
+++ b/src/devices/wifi/nm-device-wifi-p2p.c
@@ -1,4 +1,4 @@
-/* NetworkManager -- P2P Wi-Fi Device
+/* NetworkManager -- Wi-Fi P2P Device
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,7 +20,7 @@
#include "nm-default.h"
-#include "nm-device-p2p-wifi.h"
+#include "nm-device-wifi-p2p.h"
#include <sys/socket.h>
@@ -33,7 +33,7 @@
#include "NetworkManagerUtils.h"
#include "devices/nm-device-private.h"
#include "settings/nm-settings.h"
-#include "nm-setting-p2p-wireless.h"
+#include "nm-setting-wifi-p2p.h"
#include "nm-act-request.h"
#include "nm-ip4-config.h"
#include "platform/nm-platform.h"
@@ -42,14 +42,12 @@
#include "platform/nmp-object.h"
#include "devices/nm-device-logging.h"
-_LOG_DECLARE_SELF(NMDeviceP2PWifi);
+_LOG_DECLARE_SELF(NMDeviceWifiP2P);
/*****************************************************************************/
-NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceP2PWifi,
+NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceWifiP2P,
PROP_GROUP_OWNER,
- //PROP_SSID,
- //PROP_BSSID,
PROP_PEERS,
PROP_WFDIES, /* TODO: Make this a property of the setting and Find feature
* making the device stateless.
@@ -58,19 +56,11 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceP2PWifi,
PROP_MGMT_IFACE,
);
-enum {
- SCANNING_PROHIBITED,
-
- LAST_SIGNAL
-};
-
-//static guint signals[LAST_SIGNAL] = { 0 };
-
typedef struct {
NMSupplicantManager *sup_mgr;
/* NOTE: In theory management and group ifaces could be identical. However,
- * in practice, this cannot happen currently as NMDeviceP2PWifi is only
+ * in practice, this cannot happen currently as NMDeviceWifiP2P is only
* created for existing non-P2P interfaces.
* (i.e. a single standalone P2P interface is not supported at this point)
*/
@@ -85,34 +75,34 @@ typedef struct {
guint peer_missing_id;
gboolean group_owner;
-} NMDeviceP2PWifiPrivate;
+} NMDeviceWifiP2PPrivate;
-struct _NMDeviceP2PWifi {
+struct _NMDeviceWifiP2P {
NMDevice parent;
- NMDeviceP2PWifiPrivate _priv;
+ NMDeviceWifiP2PPrivate _priv;
};
-struct _NMDeviceP2PWifiClass {
+struct _NMDeviceWifiP2PClass {
NMDeviceClass parent;
};
-G_DEFINE_TYPE (NMDeviceP2PWifi, nm_device_p2p_wifi, NM_TYPE_DEVICE)
+G_DEFINE_TYPE (NMDeviceWifiP2P, nm_device_wifi_p2p, NM_TYPE_DEVICE)
-#define NM_DEVICE_P2P_WIFI_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceP2PWifi, NM_IS_DEVICE_P2P_WIFI, NMDevice)
+#define NM_DEVICE_WIFI_P2P_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceWifiP2P, NM_IS_DEVICE_WIFI_P2P, NMDevice)
/*****************************************************************************/
-static const NMDBusInterfaceInfoExtended interface_info_device_p2p_wifi;
-static const GDBusSignalInfo nm_signal_info_p2p_wireless_peer_added;
-static const GDBusSignalInfo nm_signal_info_p2p_wireless_peer_removed;
+static const NMDBusInterfaceInfoExtended interface_info_device_wifi_p2p;
+static const GDBusSignalInfo nm_signal_info_wifi_p2p_peer_added;
+static const GDBusSignalInfo nm_signal_info_wifi_p2p_peer_removed;
-static void supplicant_group_interface_release (NMDeviceP2PWifi *self);
-static void supplicant_interfaces_release (NMDeviceP2PWifi *self);
+static void supplicant_group_interface_release (NMDeviceWifiP2P *self);
+static void supplicant_interfaces_release (NMDeviceWifiP2P *self);
/*****************************************************************************/
static void
-_peer_dump (NMDeviceP2PWifi *self,
+_peer_dump (NMDeviceWifiP2P *self,
NMLogLevel log_level,
const NMWifiP2PPeer *peer,
const char *prefix,
@@ -128,8 +118,8 @@ _peer_dump (NMDeviceP2PWifi *self,
static gboolean
peer_list_dump (gpointer user_data)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (user_data);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (user_data);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
priv->peer_dump_id = 0;
@@ -145,9 +135,9 @@ peer_list_dump (gpointer user_data)
}
static void
-schedule_peer_list_dump (NMDeviceP2PWifi *self)
+schedule_peer_list_dump (NMDeviceWifiP2P *self)
{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
if ( !priv->peer_dump_id
&& _LOGD_ENABLED (LOGD_WIFI_SCAN))
@@ -157,9 +147,9 @@ schedule_peer_list_dump (NMDeviceP2PWifi *self)
/*****************************************************************************/
static gboolean
-check_connection_peer_joined (NMDeviceP2PWifi *device)
+check_connection_peer_joined (NMDeviceWifiP2P *device)
{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (device);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (device);
NMConnection *conn = nm_device_get_applied_connection (NM_DEVICE (device));
NMWifiP2PPeer *peer;
const char* group;
@@ -191,8 +181,8 @@ static gboolean
disconnect_on_connection_peer_missing_cb (gpointer user_data)
{
NMDevice *device = NM_DEVICE (user_data);
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (device);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (device);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
_LOGW (LOGD_WIFI, "Peer requested in connection is missing for too long, failing connection.");
@@ -205,9 +195,9 @@ disconnect_on_connection_peer_missing_cb (gpointer user_data)
}
static void
-update_disconnect_on_connection_peer_missing (NMDeviceP2PWifi *self)
+update_disconnect_on_connection_peer_missing (NMDeviceWifiP2P *self)
{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
NMDeviceState state;
state = nm_device_get_state (NM_DEVICE (self));
@@ -232,8 +222,8 @@ update_disconnect_on_connection_peer_missing (NMDeviceP2PWifi *self)
static gboolean
is_available (NMDevice *device, NMDeviceCheckDevAvailableFlags flags)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (device);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (device);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
NMSupplicantInterfaceState supplicant_state;
if (!priv->mgmt_iface)
@@ -250,7 +240,7 @@ is_available (NMDevice *device, NMDeviceCheckDevAvailableFlags flags)
static gboolean
check_connection_compatible (NMDevice *device, NMConnection *connection, GError **error)
{
- if (!NM_DEVICE_CLASS (nm_device_p2p_wifi_parent_class)->check_connection_compatible (device, connection, error))
+ if (!NM_DEVICE_CLASS (nm_device_wifi_p2p_parent_class)->check_connection_compatible (device, connection, error))
return FALSE;
/* TODO: Allow limitting the interface using the HW-address? */
@@ -270,30 +260,32 @@ complete_connection (NMDevice *device,
NMConnection *const*existing_connections,
GError **error)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (device);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (device);
gs_free char *setting_name = NULL;
- NMSettingP2PWireless *s_p2p_wireless;
+ NMSettingWifiP2P *s_wifi_p2p;
NMWifiP2PPeer *peer;
const char *setting_peer;
- s_p2p_wireless = NM_SETTING_P2P_WIRELESS (nm_connection_get_setting (connection, NM_TYPE_SETTING_P2P_WIRELESS));
+ s_wifi_p2p = NM_SETTING_WIFI_P2P (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIFI_P2P));
if (!specific_object) {
/* If not given a specific object, we need at minimum a peer address */
- if (!s_p2p_wireless) {
- g_set_error_literal (error,
- NM_DEVICE_ERROR,
- NM_DEVICE_ERROR_INVALID_CONNECTION,
- "A 'p2p-wireless' setting is required if no Peer path was given.");
+ if (!s_wifi_p2p) {
+ g_set_error (error,
+ NM_DEVICE_ERROR,
+ NM_DEVICE_ERROR_INVALID_CONNECTION,
+ "A '%s' setting is required if no Peer path was given",
+ NM_SETTING_WIFI_P2P_SETTING_NAME);
return FALSE;
}
- setting_peer = nm_setting_p2p_wireless_get_peer (s_p2p_wireless);
+ setting_peer = nm_setting_wifi_p2p_get_peer (s_wifi_p2p);
if (!setting_peer) {
- g_set_error_literal (error,
- NM_DEVICE_ERROR,
- NM_DEVICE_ERROR_INVALID_CONNECTION,
- "A 'p2p-wireless' setting with a valid Peer is required if no Peer path was given.");
+ g_set_error (error,
+ NM_DEVICE_ERROR,
+ NM_DEVICE_ERROR_INVALID_CONNECTION,
+ "A '%s' setting with a valid Peer is required if no Peer path was given",
+ NM_SETTING_WIFI_P2P_SETTING_NAME);
return FALSE;
}
@@ -303,27 +295,27 @@ complete_connection (NMDevice *device,
g_set_error (error,
NM_DEVICE_ERROR,
NM_DEVICE_ERROR_SPECIFIC_OBJECT_NOT_FOUND,
- "The P2P peer %s is unknown.",
+ "The P2P peer %s is unknown",
specific_object);
return FALSE;
}
setting_peer = nm_wifi_p2p_peer_get_address (peer);
- g_assert (setting_peer);
+ g_return_val_if_fail (setting_peer, FALSE);
}
- /* Add a P2P wifi setting if one doesn't exist yet */
- if (!s_p2p_wireless) {
- s_p2p_wireless = NM_SETTING_P2P_WIRELESS (nm_setting_p2p_wireless_new ());
- nm_connection_add_setting (connection, NM_SETTING (s_p2p_wireless));
+ /* Add a Wi-Fi P2P setting if one doesn't exist yet */
+ if (!s_wifi_p2p) {
+ s_wifi_p2p = NM_SETTING_WIFI_P2P (nm_setting_wifi_p2p_new ());
+ nm_connection_add_setting (connection, NM_SETTING (s_wifi_p2p));
}
- g_object_set (G_OBJECT (s_p2p_wireless), NM_SETTING_P2P_WIRELESS_PEER, setting_peer, NULL);
+ g_object_set (G_OBJECT (s_wifi_p2p), NM_SETTING_WIFI_P2P_PEER, setting_peer, NULL);
- setting_name = g_strdup_printf ("P2P Peer %s", setting_peer);
+ setting_name = g_strdup_printf ("Wi-Fi P2P Peer %s", setting_peer);
nm_utils_complete_generic (nm_device_get_platform (device),
connection,
- NM_SETTING_P2P_WIRELESS_SETTING_NAME,
+ NM_SETTING_WIFI_P2P_SETTING_NAME,
existing_connections,
setting_name,
setting_name,
@@ -342,8 +334,8 @@ static gboolean
supplicant_find_timeout_cb (gpointer user_data)
{
NMDevice *device = NM_DEVICE (user_data);
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (user_data);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (user_data);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
priv->sup_timeout_id = 0;
@@ -351,7 +343,7 @@ supplicant_find_timeout_cb (gpointer user_data)
if (nm_device_is_activating (device)) {
_LOGW (LOGD_DEVICE | LOGD_WIFI,
- "Activation: (p2p-wifi) could not find peer, failing activation");
+ "Activation: (wifi-p2p) could not find peer, failing activation");
nm_device_state_changed (device, NM_DEVICE_STATE_FAILED,
NM_DEVICE_STATE_REASON_PEER_NOT_FOUND);
}
@@ -362,17 +354,17 @@ supplicant_find_timeout_cb (gpointer user_data)
static NMActStageReturn
act_stage1_prepare (NMDevice *device, NMDeviceStateReason *out_failure_reason)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (device);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (device);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
NMActStageReturn ret;
NMActRequest *req;
NMConnection *connection;
- NMSettingP2PWireless *s_p2p_wireless;
+ NMSettingWifiP2P *s_wifi_p2p;
NMWifiP2PPeer *peer;
nm_clear_g_source (&priv->sup_timeout_id);
- ret = NM_DEVICE_CLASS (nm_device_p2p_wifi_parent_class)->act_stage1_prepare (device, out_failure_reason);
+ ret = NM_DEVICE_CLASS (nm_device_wifi_p2p_parent_class)->act_stage1_prepare (device, out_failure_reason);
if (ret != NM_ACT_STAGE_RETURN_SUCCESS)
return ret;
@@ -387,8 +379,8 @@ act_stage1_prepare (NMDevice *device, NMDeviceStateReason *out_failure_reason)
connection = nm_act_request_get_applied_connection (req);
g_return_val_if_fail (connection, NM_ACT_STAGE_RETURN_FAILURE);
- s_p2p_wireless = NM_SETTING_P2P_WIRELESS (nm_connection_get_setting (connection, NM_TYPE_SETTING_P2P_WIRELESS));
- g_return_val_if_fail (s_p2p_wireless, NM_ACT_STAGE_RETURN_FAILURE);
+ s_wifi_p2p = NM_SETTING_WIFI_P2P (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIFI_P2P));
+ g_return_val_if_fail (s_wifi_p2p, NM_ACT_STAGE_RETURN_FAILURE);
peer = nm_wifi_p2p_peers_find_first_compatible (&priv->peers_lst_head, connection);
if (!peer) {
@@ -408,9 +400,9 @@ act_stage1_prepare (NMDevice *device, NMDeviceStateReason *out_failure_reason)
}
static void
-cleanup_p2p_connect_attempt (NMDeviceP2PWifi *self, gboolean disconnect)
+cleanup_p2p_connect_attempt (NMDeviceWifiP2P *self, gboolean disconnect)
{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
nm_clear_g_source (&priv->sup_timeout_id);
nm_clear_g_source (&priv->peer_missing_id);
@@ -432,8 +424,8 @@ static gboolean
supplicant_connection_timeout_cb (gpointer user_data)
{
NMDevice *device = NM_DEVICE (user_data);
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (user_data);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (user_data);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
priv->sup_timeout_id = 0;
@@ -441,7 +433,7 @@ supplicant_connection_timeout_cb (gpointer user_data)
if (nm_device_is_activating (device)) {
_LOGW (LOGD_DEVICE | LOGD_WIFI,
- "Activation: (p2p-wifi) connecting took too long, failing activation");
+ "Activation: (wifi-p2p) connecting took too long, failing activation");
nm_device_state_changed (device, NM_DEVICE_STATE_FAILED,
NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT);
}
@@ -452,8 +444,8 @@ supplicant_connection_timeout_cb (gpointer user_data)
static NMActStageReturn
act_stage2_config (NMDevice *device, NMDeviceStateReason *out_failure_reason)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (device);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (device);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
NMConnection *connection;
NMWifiP2PPeer *peer;
@@ -462,7 +454,7 @@ act_stage2_config (NMDevice *device, NMDeviceStateReason *out_failure_reason)
connection = nm_device_get_applied_connection (device);
g_return_val_if_fail (connection, NM_ACT_STAGE_RETURN_FAILURE);
- nm_assert (NM_IS_SETTING_P2P_WIRELESS (nm_connection_get_setting (connection, NM_TYPE_SETTING_P2P_WIRELESS)));
+ nm_assert (NM_IS_SETTING_WIFI_P2P (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIFI_P2P)));
/* The prepare stage ensures that the peer has been found */
peer = nm_wifi_p2p_peers_find_first_compatible (&priv->peers_lst_head, connection);
@@ -490,27 +482,27 @@ act_stage2_config (NMDevice *device, NMDeviceStateReason *out_failure_reason)
/*****************************************************************************/
static void
-emit_signal_p2p_peer_add_remove (NMDeviceP2PWifi *device,
+emit_signal_p2p_peer_add_remove (NMDeviceWifiP2P *device,
NMWifiP2PPeer *peer,
gboolean is_added /* or else is_removed */)
{
nm_dbus_object_emit_signal (NM_DBUS_OBJECT (device),
- &interface_info_device_p2p_wifi,
+ &interface_info_device_wifi_p2p,
is_added
- ? &nm_signal_info_p2p_wireless_peer_added
- : &nm_signal_info_p2p_wireless_peer_removed,
+ ? &nm_signal_info_wifi_p2p_peer_added
+ : &nm_signal_info_wifi_p2p_peer_removed,
"(o)",
nm_dbus_object_get_path (NM_DBUS_OBJECT (peer)));
}
static void
-peer_add_remove (NMDeviceP2PWifi *self,
+peer_add_remove (NMDeviceWifiP2P *self,
gboolean is_adding, /* or else removing */
NMWifiP2PPeer *peer,
gboolean recheck_available_connections)
{
NMDevice *device = NM_DEVICE (self);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
if (is_adding) {
g_object_ref (peer);
@@ -554,18 +546,12 @@ peer_add_remove (NMDeviceP2PWifi *self,
}
update_disconnect_on_connection_peer_missing (self);
-
-#if 0
- nm_device_emit_recheck_auto_activate (NM_DEVICE (self));
- if (recheck_available_connections)
- nm_device_recheck_available_connections (NM_DEVICE (self));
-#endif
}
static void
-remove_all_peers (NMDeviceP2PWifi *self)
+remove_all_peers (NMDeviceWifiP2P *self)
{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
NMWifiP2PPeer *peer;
if (c_list_is_empty (&priv->peers_lst_head))
@@ -585,8 +571,8 @@ act_stage3_ip4_config_start (NMDevice *device,
NMIP4Config **out_config,
NMDeviceStateReason *out_failure_reason)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (device);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (device);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
NMConnection *connection;
NMSettingIPConfig *s_ip4;
const char *method = NM_SETTING_IP4_CONFIG_METHOD_AUTO;
@@ -603,7 +589,7 @@ act_stage3_ip4_config_start (NMDevice *device,
&& nm_streq (method, NM_SETTING_IP4_CONFIG_METHOD_AUTO))
nm_platform_wifi_indicate_addressing_running (nm_device_get_platform (device), nm_device_get_ip_ifindex (device), TRUE);
- return NM_DEVICE_CLASS (nm_device_p2p_wifi_parent_class)->act_stage3_ip4_config_start (device, out_config, out_failure_reason);
+ return NM_DEVICE_CLASS (nm_device_wifi_p2p_parent_class)->act_stage3_ip4_config_start (device, out_config, out_failure_reason);
}
static NMActStageReturn
@@ -627,13 +613,13 @@ act_stage3_ip6_config_start (NMDevice *device,
NM_SETTING_IP6_CONFIG_METHOD_DHCP))
nm_platform_wifi_indicate_addressing_running (nm_device_get_platform (device), nm_device_get_ip_ifindex (device), TRUE);
- return NM_DEVICE_CLASS (nm_device_p2p_wifi_parent_class)->act_stage3_ip6_config_start (device, out_config, out_failure_reason);
+ return NM_DEVICE_CLASS (nm_device_wifi_p2p_parent_class)->act_stage3_ip6_config_start (device, out_config, out_failure_reason);
}
static void
deactivate (NMDevice *device)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (device);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (device);
int ifindex = nm_device_get_ip_ifindex (device);
cleanup_p2p_connect_attempt (self, TRUE);
@@ -653,8 +639,8 @@ get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source)
static const char *
get_auto_ip_config_method (NMDevice *device, int addr_family)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (device);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (device);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
/* Override the AUTO method to mean shared if we are group owner. */
if ( priv->group_iface
@@ -682,7 +668,7 @@ supplicant_iface_state_cb (NMSupplicantInterface *iface,
int disconnect_reason,
gpointer user_data)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (user_data);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (user_data);
NMDevice *device = NM_DEVICE (self);
NMSupplicantInterfaceState new_state = new_state_i;
NMSupplicantInterfaceState old_state = old_state_i;
@@ -721,15 +707,15 @@ static void
supplicant_iface_peer_updated_cb (NMSupplicantInterface *iface,
const char *object_path,
GVariant *properties,
- NMDeviceP2PWifi *self)
+ NMDeviceWifiP2P *self)
{
- NMDeviceP2PWifiPrivate *priv;
+ NMDeviceWifiP2PPrivate *priv;
NMWifiP2PPeer *found_peer;
g_return_if_fail (self != NULL);
g_return_if_fail (object_path != NULL);
- priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
found_peer = nm_wifi_p2p_peers_find_by_supplicant_path (&priv->peers_lst_head, object_path);
if (found_peer) {
@@ -756,15 +742,15 @@ supplicant_iface_peer_updated_cb (NMSupplicantInterface *iface,
static void
supplicant_iface_peer_removed_cb (NMSupplicantInterface *iface,
const char *object_path,
- NMDeviceP2PWifi *self)
+ NMDeviceWifiP2P *self)
{
- NMDeviceP2PWifiPrivate *priv;
+ NMDeviceWifiP2PPrivate *priv;
NMWifiP2PPeer *peer;
g_return_if_fail (self != NULL);
g_return_if_fail (object_path != NULL);
- priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
peer = nm_wifi_p2p_peers_find_by_supplicant_path (&priv->peers_lst_head, object_path);
if (!peer)
return;
@@ -774,9 +760,9 @@ supplicant_iface_peer_removed_cb (NMSupplicantInterface *iface,
}
static void
-check_group_iface_ready (NMDeviceP2PWifi *self)
+check_group_iface_ready (NMDeviceWifiP2P *self)
{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);;
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);;
if (!priv->group_iface)
return;
@@ -800,8 +786,8 @@ supplicant_group_iface_state_cb (NMSupplicantInterface *iface,
int disconnect_reason,
gpointer user_data)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (user_data);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (user_data);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
NMDevice *device = NM_DEVICE (self);
NMSupplicantInterfaceState new_state = new_state_i;
NMSupplicantInterfaceState old_state = old_state_i;
@@ -846,7 +832,7 @@ static void
supplicant_group_iface_group_finished_cb (NMSupplicantInterface *iface,
void *user_data)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (user_data);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (user_data);
supplicant_group_interface_release (self);
@@ -860,7 +846,7 @@ supplicant_iface_group_joined_updated_cb (NMSupplicantInterface *iface,
GParamSpec *pspec,
void *user_data)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (user_data);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (user_data);
check_group_iface_ready (self);
}
@@ -868,9 +854,9 @@ supplicant_iface_group_joined_updated_cb (NMSupplicantInterface *iface,
static void
supplicant_iface_group_started_cb (NMSupplicantInterface *iface,
NMSupplicantInterface *group_iface,
- NMDeviceP2PWifi *self)
+ NMDeviceWifiP2P *self)
{
- NMDeviceP2PWifiPrivate *priv;
+ NMDeviceWifiP2PPrivate *priv;
g_return_if_fail (self != NULL);
@@ -879,7 +865,7 @@ supplicant_iface_group_started_cb (NMSupplicantInterface *iface,
return;
}
- priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
supplicant_group_interface_release (self);
priv->group_iface = g_object_ref (group_iface);
@@ -907,13 +893,13 @@ supplicant_iface_group_started_cb (NMSupplicantInterface *iface,
}
static void
-supplicant_group_interface_release (NMDeviceP2PWifi *self)
+supplicant_group_interface_release (NMDeviceWifiP2P *self)
{
- NMDeviceP2PWifiPrivate *priv;
+ NMDeviceWifiP2PPrivate *priv;
g_return_if_fail (self != NULL);
- priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
if (priv->group_iface) {
/* Tell the supplicant to disconnect from the current Group/Peer */
@@ -927,13 +913,13 @@ supplicant_group_interface_release (NMDeviceP2PWifi *self)
}
static void
-supplicant_interfaces_release (NMDeviceP2PWifi *self)
+supplicant_interfaces_release (NMDeviceWifiP2P *self)
{
- NMDeviceP2PWifiPrivate *priv;
+ NMDeviceWifiP2PPrivate *priv;
g_return_if_fail (self != NULL);
- priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
_LOGD (LOGD_DEVICE | LOGD_WIFI, "P2P: Releasing WPA supplicant interfaces.");
@@ -958,13 +944,8 @@ device_state_changed (NMDevice *device,
NMDeviceState old_state,
NMDeviceStateReason reason)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (device);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
-
-#if 0
- if (new_state > NM_DEVICE_STATE_ACTIVATED)
- wifi_secrets_cancel (self);
-#endif
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (device);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
update_disconnect_on_connection_peer_missing (self);
@@ -1014,7 +995,7 @@ device_state_changed (NMDevice *device,
}
static void
-impl_device_p2p_wifi_start_find (NMDBusObject *obj,
+impl_device_wifi_p2p_start_find (NMDBusObject *obj,
const NMDBusInterfaceInfoExtended *interface_info,
const NMDBusMethodInfoExtended *method_info,
GDBusConnection *connection,
@@ -1022,8 +1003,8 @@ impl_device_p2p_wifi_start_find (NMDBusObject *obj,
GDBusMethodInvocation *invocation,
GVariant *parameters)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (obj);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (obj);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
gs_unref_variant GVariant *options = NULL;
int timeout;
@@ -1059,7 +1040,7 @@ impl_device_p2p_wifi_start_find (NMDBusObject *obj,
}
static void
-impl_device_p2p_wifi_stop_find (NMDBusObject *obj,
+impl_device_wifi_p2p_stop_find (NMDBusObject *obj,
const NMDBusInterfaceInfoExtended *interface_info,
const NMDBusMethodInfoExtended *method_info,
GDBusConnection *connection,
@@ -1067,8 +1048,8 @@ impl_device_p2p_wifi_stop_find (NMDBusObject *obj,
GDBusMethodInvocation *invocation,
GVariant *parameters)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (obj);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (obj);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
nm_supplicant_interface_p2p_stop_find (priv->mgmt_iface);
@@ -1078,18 +1059,18 @@ impl_device_p2p_wifi_stop_find (NMDBusObject *obj,
/*****************************************************************************/
NMSupplicantInterface *
-nm_device_p2p_wifi_get_mgmt_iface (NMDeviceP2PWifi *self)
+nm_device_wifi_p2p_get_mgmt_iface (NMDeviceWifiP2P *self)
{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
return priv->mgmt_iface;
}
void
-nm_device_p2p_wifi_set_mgmt_iface (NMDeviceP2PWifi *self,
+nm_device_wifi_p2p_set_mgmt_iface (NMDeviceWifiP2P *self,
NMSupplicantInterface *iface)
{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
/* Don't do anything if nothing changed. */
if (priv->mgmt_iface == iface)
@@ -1129,30 +1110,30 @@ nm_device_p2p_wifi_set_mgmt_iface (NMDeviceP2PWifi *self,
}
void
-nm_device_p2p_wifi_remove (NMDeviceP2PWifi* self)
+nm_device_wifi_p2p_remove (NMDeviceWifiP2P* self)
{
- g_signal_emit_by_name (self, NM_DEVICE_REMOVED);
+ g_signal_emit_by_name (self, NM_DEVICE_REMOVED);
}
/*****************************************************************************/
-static const GDBusSignalInfo nm_signal_info_p2p_wireless_peer_added = NM_DEFINE_GDBUS_SIGNAL_INFO_INIT (
+static const GDBusSignalInfo nm_signal_info_wifi_p2p_peer_added = NM_DEFINE_GDBUS_SIGNAL_INFO_INIT (
"PeerAdded",
.args = NM_DEFINE_GDBUS_ARG_INFOS (
NM_DEFINE_GDBUS_ARG_INFO ("peer", "o"),
),
);
-static const GDBusSignalInfo nm_signal_info_p2p_wireless_peer_removed = NM_DEFINE_GDBUS_SIGNAL_INFO_INIT (
+static const GDBusSignalInfo nm_signal_info_wifi_p2p_peer_removed = NM_DEFINE_GDBUS_SIGNAL_INFO_INIT (
"PeerRemoved",
.args = NM_DEFINE_GDBUS_ARG_INFOS (
NM_DEFINE_GDBUS_ARG_INFO ("peer", "o"),
),
);
-static const NMDBusInterfaceInfoExtended interface_info_device_p2p_wifi = {
+static const NMDBusInterfaceInfoExtended interface_info_device_wifi_p2p = {
.parent = NM_DEFINE_GDBUS_INTERFACE_INFO_INIT (
- NM_DBUS_INTERFACE_DEVICE_P2P_WIRELESS,
+ NM_DBUS_INTERFACE_DEVICE_WIFI_P2P,
.methods = NM_DEFINE_GDBUS_METHOD_INFOS (
NM_DEFINE_DBUS_METHOD_INFO_EXTENDED (
NM_DEFINE_GDBUS_METHOD_INFO_INIT (
@@ -1161,24 +1142,24 @@ static const NMDBusInterfaceInfoExtended interface_info_device_p2p_wifi = {
NM_DEFINE_GDBUS_ARG_INFO ("options", "a{sv}"),
),
),
- .handle = impl_device_p2p_wifi_start_find,
+ .handle = impl_device_wifi_p2p_start_find,
),
NM_DEFINE_DBUS_METHOD_INFO_EXTENDED (
NM_DEFINE_GDBUS_METHOD_INFO_INIT (
"StopFind",
),
- .handle = impl_device_p2p_wifi_stop_find,
+ .handle = impl_device_wifi_p2p_stop_find,
),
),
.signals = NM_DEFINE_GDBUS_SIGNAL_INFOS (
- &nm_signal_info_p2p_wireless_peer_added,
- &nm_signal_info_p2p_wireless_peer_removed,
+ &nm_signal_info_wifi_p2p_peer_added,
+ &nm_signal_info_wifi_p2p_peer_removed,
),
.properties = NM_DEFINE_GDBUS_PROPERTY_INFOS (
NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE ("HwAddress", "s", NM_DEVICE_HW_ADDRESS),
- NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE ("GroupOwner", "b", NM_DEVICE_P2P_WIFI_GROUP_OWNER),
- NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE ("Peers", "ao", NM_DEVICE_P2P_WIFI_PEERS),
- NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE ("WFDIEs", "ay", NM_DEVICE_P2P_WIFI_WFDIES),
+ NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE ("GroupOwner", "b", NM_DEVICE_WIFI_P2P_GROUP_OWNER),
+ NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE ("Peers", "ao", NM_DEVICE_WIFI_P2P_PEERS),
+ NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE ("WFDIEs", "ay", NM_DEVICE_WIFI_P2P_WFDIES),
),
),
.legacy_property_changed = FALSE,
@@ -1190,8 +1171,8 @@ static void
get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (object);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (object);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
const char **list;
switch (prop_id) {
@@ -1218,12 +1199,12 @@ static void
set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (object);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (object);
switch (prop_id) {
case PROP_MGMT_IFACE:
/* construct-only */
- nm_device_p2p_wifi_set_mgmt_iface (self, g_value_get_object (value));
+ nm_device_wifi_p2p_set_mgmt_iface (self, g_value_get_object (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -1234,67 +1215,66 @@ set_property (GObject *object, guint prop_id,
/*****************************************************************************/
static void
-nm_device_p2p_wifi_init (NMDeviceP2PWifi * self)
+nm_device_wifi_p2p_init (NMDeviceWifiP2P * self)
{
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
c_list_init (&priv->peers_lst_head);
}
static void
constructed (GObject *object)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (object);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (self);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (object);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self);
- G_OBJECT_CLASS (nm_device_p2p_wifi_parent_class)->constructed (object);
+ G_OBJECT_CLASS (nm_device_wifi_p2p_parent_class)->constructed (object);
- /* Connect to the supplicant manager */
priv->sup_mgr = g_object_ref (nm_supplicant_manager_get ());
nm_device_add_pending_action (NM_DEVICE (self), NM_PENDING_ACTION_WAITING_FOR_SUPPLICANT, FALSE);
}
NMDevice*
-nm_device_p2p_wifi_new (NMSupplicantInterface *mgmt_iface, const char *iface)
+nm_device_wifi_p2p_new (NMSupplicantInterface *mgmt_iface, const char *iface)
{
- return g_object_new (NM_TYPE_DEVICE_P2P_WIFI,
+ return g_object_new (NM_TYPE_DEVICE_WIFI_P2P,
NM_DEVICE_IFACE, iface,
- NM_DEVICE_TYPE_DESC, "802.11 P2P WiFi",
- NM_DEVICE_DEVICE_TYPE, NM_TYPE_DEVICE_P2P_WIFI,
+ NM_DEVICE_TYPE_DESC, "802.11 Wi-Fi P2P",
+ NM_DEVICE_DEVICE_TYPE, NM_TYPE_DEVICE_WIFI_P2P,
NM_DEVICE_LINK_TYPE, NM_LINK_TYPE_WIFI,
NM_DEVICE_RFKILL_TYPE, RFKILL_TYPE_WLAN,
- NM_DEVICE_P2P_WIFI_MGMT_IFACE, mgmt_iface,
+ NM_DEVICE_WIFI_P2P_MGMT_IFACE, mgmt_iface,
NULL);
}
static void
dispose (GObject *object)
{
- NMDeviceP2PWifi *self = NM_DEVICE_P2P_WIFI (object);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (object);
+ NMDeviceWifiP2P *self = NM_DEVICE_WIFI_P2P (object);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (object);
g_clear_object (&priv->sup_mgr);
supplicant_interfaces_release (self);
- G_OBJECT_CLASS (nm_device_p2p_wifi_parent_class)->dispose (object);
+ G_OBJECT_CLASS (nm_device_wifi_p2p_parent_class)->dispose (object);
}
static void
finalize (GObject *object)
{
- NMDeviceP2PWifi *peer = NM_DEVICE_P2P_WIFI (object);
- NMDeviceP2PWifiPrivate *priv = NM_DEVICE_P2P_WIFI_GET_PRIVATE (peer);
+ NMDeviceWifiP2P *peer = NM_DEVICE_WIFI_P2P (object);
+ NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (peer);
nm_assert (c_list_is_empty (&priv->peers_lst_head));
g_bytes_unref (priv->wfd_ies);
- G_OBJECT_CLASS (nm_device_p2p_wifi_parent_class)->finalize (object);
+ G_OBJECT_CLASS (nm_device_wifi_p2p_parent_class)->finalize (object);
}
static void
-nm_device_p2p_wifi_class_init (NMDeviceP2PWifiClass *klass)
+nm_device_wifi_p2p_class_init (NMDeviceWifiP2PClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDBusObjectClass *dbus_object_class = NM_DBUS_OBJECT_CLASS (klass);
@@ -1306,11 +1286,11 @@ nm_device_p2p_wifi_class_init (NMDeviceP2PWifiClass *klass)
object_class->dispose = dispose;
object_class->finalize = finalize;
- dbus_object_class->interface_infos = NM_DBUS_INTERFACE_INFOS (&interface_info_device_p2p_wifi);
+ dbus_object_class->interface_infos = NM_DBUS_INTERFACE_INFOS (&interface_info_device_wifi_p2p);
- device_class->connection_type_supported = NM_SETTING_P2P_WIRELESS_SETTING_NAME;
- device_class->connection_type_check_compatible = NM_SETTING_P2P_WIRELESS_SETTING_NAME;
- device_class->link_types = NM_DEVICE_DEFINE_LINK_TYPES (NM_LINK_TYPE_P2P_WIFI);
+ device_class->connection_type_supported = NM_SETTING_WIFI_P2P_SETTING_NAME;
+ device_class->connection_type_check_compatible = NM_SETTING_WIFI_P2P_SETTING_NAME;
+ device_class->link_types = NM_DEVICE_DEFINE_LINK_TYPES (NM_LINK_TYPE_WIFI_P2P);
/* Do we need compatibility checking or is the default good enough? */
device_class->is_available = is_available;
@@ -1332,36 +1312,30 @@ nm_device_p2p_wifi_class_init (NMDeviceP2PWifiClass *klass)
/*klass->scanning_prohibited = scanning_prohibited;*/
obj_properties[PROP_GROUP_OWNER] =
- g_param_spec_boolean (NM_DEVICE_P2P_WIFI_GROUP_OWNER, "", "",
+ g_param_spec_boolean (NM_DEVICE_WIFI_P2P_GROUP_OWNER, "", "",
FALSE,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS);
obj_properties[PROP_PEERS] =
- g_param_spec_boxed (NM_DEVICE_P2P_WIFI_PEERS, "", "",
+ g_param_spec_boxed (NM_DEVICE_WIFI_P2P_PEERS, "", "",
G_TYPE_STRV,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS);
obj_properties[PROP_WFDIES] =
- g_param_spec_variant (NM_DEVICE_P2P_WIFI_WFDIES, "", "",
+ g_param_spec_variant (NM_DEVICE_WIFI_P2P_WFDIES, "", "",
G_VARIANT_TYPE ("ay"),
NULL,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS);
obj_properties[PROP_MGMT_IFACE] =
- g_param_spec_object (NM_DEVICE_P2P_WIFI_MGMT_IFACE, "", "",
+ g_param_spec_object (NM_DEVICE_WIFI_P2P_MGMT_IFACE, "", "",
NM_TYPE_SUPPLICANT_INTERFACE,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS);
- /* obj_properties[PROP_SCANNING] = */
- /* g_param_spec_boolean (NM_DEVICE_WIFI_SCANNING, "", "", */
- /* FALSE, */
- /* G_PARAM_READABLE | */
- /* G_PARAM_STATIC_STRINGS); */
-
g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/src/devices/wifi/nm-device-wifi-p2p.h b/src/devices/wifi/nm-device-wifi-p2p.h
new file mode 100644
index 0000000000..12c0a8ef4d
--- /dev/null
+++ b/src/devices/wifi/nm-device-wifi-p2p.h
@@ -0,0 +1,55 @@
+/* NetworkManager -- Wi-Fi P2P Device
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * (C) Copyright 2018 Red Hat, Inc.
+ */
+
+#ifndef __NM_DEVICE_WIFI_P2P_H__
+#define __NM_DEVICE_WIFI_P2P_H__
+
+#include "devices/nm-device.h"
+#include "supplicant/nm-supplicant-interface.h"
+
+#define NM_TYPE_DEVICE_WIFI_P2P (nm_device_wifi_p2p_get_type ())
+#define NM_DEVICE_WIFI_P2P(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_WIFI_P2P, NMDeviceWifiP2P))
+#define NM_DEVICE_WIFI_P2P_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_WIFI_P2P, NMDeviceWifiP2PClass))
+#define NM_IS_DEVICE_WIFI_P2P(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_WIFI_P2P))
+#define NM_IS_DEVICE_WIFI_P2P_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_WIFI_P2P))
+#define NM_DEVICE_WIFI_P2P_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_WIFI_P2P, NMDeviceWifiP2PClass))
+
+#define NM_DEVICE_WIFI_P2P_GROUP_OWNER "group-owner"
+#define NM_DEVICE_WIFI_P2P_PEERS "peers"
+#define NM_DEVICE_WIFI_P2P_GROUPS "groups"
+#define NM_DEVICE_WIFI_P2P_WFDIES "WFDIEs"
+
+#define NM_DEVICE_WIFI_P2P_MGMT_IFACE "mgmt-iface"
+
+typedef struct _NMDeviceWifiP2P NMDeviceWifiP2P;
+typedef struct _NMDeviceWifiP2PClass NMDeviceWifiP2PClass;
+
+GType nm_device_wifi_p2p_get_type (void);
+
+NMDevice* nm_device_wifi_p2p_new (NMSupplicantInterface *mgmt_iface,
+ const char* iface);
+
+NMSupplicantInterface * nm_device_wifi_p2p_get_mgmt_iface (NMDeviceWifiP2P *self);
+void nm_device_wifi_p2p_set_mgmt_iface (NMDeviceWifiP2P *self,
+ NMSupplicantInterface *iface);
+
+void nm_device_wifi_p2p_remove (NMDeviceWifiP2P *self);
+
+#endif /* __NM_DEVICE_WIFI_P2P_H__ */
diff --git a/src/devices/wifi/nm-device-wifi.c b/src/devices/wifi/nm-device-wifi.c
index 4ba14ac336..edc099493d 100644
--- a/src/devices/wifi/nm-device-wifi.c
+++ b/src/devices/wifi/nm-device-wifi.c
@@ -22,13 +22,13 @@
#include "nm-default.h"
#include "nm-device-wifi.h"
-#include "nm-device-p2p-wifi.h"
#include <netinet/in.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
+#include "nm-device-wifi-p2p.h"
#include "nm-wifi-ap.h"
#include "nm-common-macros.h"
#include "devices/nm-device.h"
@@ -127,7 +127,7 @@ typedef struct {
NMSettingWirelessWakeOnWLan wowlan_restore;
- NMDeviceP2PWifi *p2p_device;
+ NMDeviceWifiP2P *p2p_device;
} NMDeviceWifiPrivate;
struct _NMDeviceWifi
@@ -363,7 +363,7 @@ supplicant_interface_release (NMDeviceWifi *self)
if (priv->p2p_device) {
/* Signal to P2P device to also release its reference */
- nm_device_p2p_wifi_set_mgmt_iface (priv->p2p_device, NULL);
+ nm_device_wifi_p2p_set_mgmt_iface (priv->p2p_device, NULL);
}
_notify_scanning (self);
@@ -2047,8 +2047,8 @@ supplicant_iface_state_cb (NMSupplicantInterface *iface,
&& new_state <= NM_SUPPLICANT_INTERFACE_STATE_COMPLETED)
priv->ssid_found = TRUE;
- if (old_state < NM_SUPPLICANT_INTERFACE_STATE_READY &&
- new_state >= NM_SUPPLICANT_INTERFACE_STATE_READY)
+ if ( old_state < NM_SUPPLICANT_INTERFACE_STATE_READY
+ && new_state >= NM_SUPPLICANT_INTERFACE_STATE_READY)
recheck_p2p_availability (self);
switch (new_state) {
@@ -2239,7 +2239,7 @@ static void
recheck_p2p_availability (NMDeviceWifi *self)
{
NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
- NMDeviceP2PWifi *p2p_device;
+ NMDeviceWifiP2P *p2p_device;
gboolean p2p_available;
g_object_get (priv->sup_iface,
@@ -2247,12 +2247,13 @@ recheck_p2p_availability (NMDeviceWifi *self)
NULL);
if (p2p_available && !priv->p2p_device) {
- g_autofree char *iface_name = NULL;
+ gs_free char *iface_name = NULL;
+
/* Create a P2P device. "p2p-dev-" is the same prefix as chosen by
* wpa_supplicant internally.
*/
iface_name = g_strconcat ("p2p-dev-", nm_device_get_iface (NM_DEVICE (self)), NULL);
- p2p_device = NM_DEVICE_P2P_WIFI (nm_device_p2p_wifi_new (priv->sup_iface, iface_name));
+ p2p_device = NM_DEVICE_WIFI_P2P (nm_device_wifi_p2p_new (priv->sup_iface, iface_name));
priv->p2p_device = p2p_device;
g_signal_emit (self, signals[P2P_DEVICE_CREATED], 0, priv->p2p_device);
@@ -2260,13 +2261,12 @@ recheck_p2p_availability (NMDeviceWifi *self)
g_object_unref (p2p_device);
} else if (p2p_available && priv->p2p_device) {
- nm_device_p2p_wifi_set_mgmt_iface (priv->p2p_device, priv->sup_iface);
+ nm_device_wifi_p2p_set_mgmt_iface (priv->p2p_device, priv->sup_iface);
} else if (!p2p_available && priv->p2p_device) {
/* Destroy the P2P device. */
g_object_remove_weak_pointer (G_OBJECT (priv->p2p_device), (gpointer*) &priv->p2p_device);
- nm_device_p2p_wifi_remove (priv->p2p_device);
- priv->p2p_device = NULL;
+ nm_device_wifi_p2p_remove (g_steal_pointer (&priv->p2p_device));
}
}
@@ -3509,7 +3509,7 @@ nm_device_wifi_class_init (NMDeviceWifiClass *klass)
g_signal_new (NM_DEVICE_WIFI_P2P_DEVICE_CREATED,
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
- 0,
- NULL, NULL, NULL,
+ 0, NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE, 1, NM_TYPE_DEVICE);
}
diff --git a/src/devices/wifi/nm-wifi-factory.c b/src/devices/wifi/nm-wifi-factory.c
index e220c3a4cb..9a89bbe92b 100644
--- a/src/devices/wifi/nm-wifi-factory.c
+++ b/src/devices/wifi/nm-wifi-factory.c
@@ -26,7 +26,7 @@
#include "nm-setting-wireless.h"
#include "nm-setting-olpc-mesh.h"
#include "nm-device-wifi.h"
-#include "nm-device-p2p-wifi.h"
+#include "nm-device-wifi-p2p.h"
#include "nm-device-olpc-mesh.h"
#include "nm-device-iwd.h"
#include "settings/nm-settings-connection.h"
@@ -71,11 +71,11 @@ nm_device_factory_create (GError **error)
static void
p2p_device_created (NMDeviceWifi *device,
- NMDeviceP2PWifi *p2p_device,
+ NMDeviceWifiP2P *p2p_device,
NMDeviceFactory *self)
{
nm_log_info (LOGD_PLATFORM | LOGD_WIFI,
- "P2P Wifi device controlled by wifi interface %s created",
+ "Wi-Fi P2P device controlled by interface %s created",
nm_device_get_iface (NM_DEVICE (device)));
g_signal_emit_by_name (self, NM_DEVICE_FACTORY_DEVICE_ADDED, p2p_device);
diff --git a/src/devices/wifi/nm-wifi-p2p-peer.c b/src/devices/wifi/nm-wifi-p2p-peer.c
index 417365907c..db114381b0 100644
--- a/src/devices/wifi/nm-wifi-p2p-peer.c
+++ b/src/devices/wifi/nm-wifi-p2p-peer.c
@@ -1,4 +1,4 @@
-/* NetworkManager -- P2P Wi-Fi Peer
+/* NetworkManager -- Wi-Fi P2P Peer
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -43,23 +43,12 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMWifiP2PPeer,
PROP_MODEL,
PROP_MODEL_NUMBER,
PROP_SERIAL,
- //PROP_PRIMARY_DEVICE_TYPE, { "PrimaryDeviceType", WPAS_DBUS_NEW_IFACE_P2P_PEER, "ay",
- // "devicecapability", WPAS_DBUS_NEW_IFACE_P2P_PEER, "y",
- // "groupcapability", WPAS_DBUS_NEW_IFACE_P2P_PEER, "y",
- // "SecondaryDeviceTypes", WPAS_DBUS_NEW_IFACE_P2P_PEER, "aay",
- // "VendorExtension", WPAS_DBUS_NEW_IFACE_P2P_PEER, "aay",
PROP_WFD_IES,
PROP_GROUPS,
-
PROP_HW_ADDRESS,
- //PROP_MODE,
PROP_STRENGTH,
PROP_LAST_SEEN,
-
- //PROP_MAX_BITRATE,
- // One of the following (FLAGS would simply mirror/use the same as AP flags)
PROP_FLAGS,
- //PROP_CONFIG_METHOD,
);
struct _NMWifiP2PPeerPrivate {
@@ -97,6 +86,82 @@ G_DEFINE_TYPE (NMWifiP2PPeer, nm_wifi_p2p_peer, NM_TYPE_DBUS_OBJECT)
/*****************************************************************************/
+const char **
+nm_wifi_p2p_peers_get_paths (const CList *peers_lst_head)
+{
+ NMWifiP2PPeer *peer;
+ const char **list;
+ const char *path;
+ gsize i, n;
+
+ n = c_list_length (peers_lst_head);
+ list = g_new (const char *, n + 1);
+
+ i = 0;
+ if (n > 0) {
+ c_list_for_each_entry (peer, peers_lst_head, peers_lst) {
+ nm_assert (i < n);
+ path = nm_dbus_object_get_path (NM_DBUS_OBJECT (peer));
+ nm_assert (path);
+
+ list[i++] = path;
+ }
+ nm_assert (i <= n);
+ }
+ list[i] = NULL;
+ return list;
+}
+
+NMWifiP2PPeer *
+nm_wifi_p2p_peers_find_first_compatible (const CList *peers_lst_head,
+ NMConnection *connection)
+{
+ NMWifiP2PPeer *peer;
+
+ g_return_val_if_fail (connection, NULL);
+
+ c_list_for_each_entry (peer, peers_lst_head, peers_lst) {
+ if (nm_wifi_p2p_peer_check_compatible (peer, connection))
+ return peer;
+ }
+ return NULL;
+}
+
+NMWifiP2PPeer *
+nm_wifi_p2p_peers_find_by_supplicant_path (const CList *peers_lst_head, const char *path)
+{
+ NMWifiP2PPeer *peer;
+
+ g_return_val_if_fail (path != NULL, NULL);
+
+ c_list_for_each_entry (peer, peers_lst_head, peers_lst) {
+ if (nm_streq0 (path, nm_wifi_p2p_peer_get_supplicant_path (peer)))
+ return peer;
+ }
+ return NULL;
+}
+
+/*****************************************************************************/
+
+NMWifiP2PPeer *
+nm_wifi_p2p_peer_lookup_for_device (NMDevice *device, const char *exported_path)
+{
+ NMWifiP2PPeer *peer;
+
+ g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
+
+ peer = (NMWifiP2PPeer *) nm_dbus_manager_lookup_object (nm_dbus_object_get_manager (NM_DBUS_OBJECT (device)),
+ exported_path);
+ if ( !peer
+ || !NM_IS_WIFI_P2P_PEER (peer)
+ || peer->wifi_device != device)
+ return NULL;
+
+ return peer;
+}
+
+/*****************************************************************************/
+
const char *
nm_wifi_p2p_peer_get_supplicant_path (NMWifiP2PPeer *peer)
{
@@ -500,7 +565,7 @@ nm_wifi_p2p_peer_check_compatible (NMWifiP2PPeer *self,
NMConnection *connection)
{
NMWifiP2PPeerPrivate *priv;
- NMSettingP2PWireless *s_p2p_wireless;
+ NMSettingWifiP2P *s_wifi_p2p;
const char *hwaddr;
g_return_val_if_fail (NM_IS_WIFI_P2P_PEER (self), FALSE);
@@ -508,11 +573,11 @@ nm_wifi_p2p_peer_check_compatible (NMWifiP2PPeer *self,
priv = NM_WIFI_P2P_PEER_GET_PRIVATE (self);
- s_p2p_wireless = NM_SETTING_P2P_WIRELESS (nm_connection_get_setting (connection, NM_TYPE_SETTING_P2P_WIRELESS));
- if (s_p2p_wireless == NULL)
+ s_wifi_p2p = NM_SETTING_WIFI_P2P (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIFI_P2P));
+ if (s_wifi_p2p == NULL)
return FALSE;
- hwaddr = nm_setting_p2p_wireless_get_peer (s_p2p_wireless);
+ hwaddr = nm_setting_wifi_p2p_get_peer (s_wifi_p2p);
if ( hwaddr
&& ( !priv->address
|| !nm_utils_hwaddr_matches (hwaddr, -1, priv->address, -1)))
@@ -637,7 +702,7 @@ finalize (GObject *object)
static const NMDBusInterfaceInfoExtended interface_info_p2p_peer = {
.parent = NM_DEFINE_GDBUS_INTERFACE_INFO_INIT (
- NM_DBUS_INTERFACE_P2P_PEER,
+ NM_DBUS_INTERFACE_WIFI_P2P_PEER,
.properties = NM_DEFINE_GDBUS_PROPERTY_INFOS (
NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE ("Flags", "u", NM_WIFI_P2P_PEER_FLAGS),
NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE ("Name", "s", NM_WIFI_P2P_PEER_NAME),
@@ -656,18 +721,18 @@ static const NMDBusInterfaceInfoExtended interface_info_p2p_peer = {
};
static void
-nm_wifi_p2p_peer_class_init (NMWifiP2PPeerClass *p2p_peer_class)
+nm_wifi_p2p_peer_class_init (NMWifiP2PPeerClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (p2p_peer_class);
- NMDBusObjectClass *dbus_object_class = NM_DBUS_OBJECT_CLASS (p2p_peer_class);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ NMDBusObjectClass *dbus_object_class = NM_DBUS_OBJECT_CLASS (klass);
g_type_class_add_private (object_class, sizeof (NMWifiP2PPeerPrivate));
- dbus_object_class->export_path = NM_DBUS_EXPORT_PATH_NUMBERED (NM_DBUS_PATH_P2P_PEER);
+ dbus_object_class->export_path = NM_DBUS_EXPORT_PATH_NUMBERED (NM_DBUS_PATH_WIFI_P2P_PEER);
dbus_object_class->interface_infos = NM_DBUS_INTERFACE_INFOS (&interface_info_p2p_peer);
object_class->get_property = get_property;
- object_class->finalize = finalize;
+ object_class->finalize = finalize;
obj_properties[PROP_FLAGS] =
g_param_spec_uint (NM_WIFI_P2P_PEER_FLAGS, "", "",
@@ -730,79 +795,3 @@ nm_wifi_p2p_peer_class_init (NMWifiP2PPeerClass *p2p_peer_class)
g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
-
-/*****************************************************************************/
-
-const char **
-nm_wifi_p2p_peers_get_paths (const CList *peers_lst_head)
-{
- NMWifiP2PPeer *peer;
- const char **list;
- const char *path;
- gsize i, n;
-
- n = c_list_length (peers_lst_head);
- list = g_new (const char *, n + 1);
-
- i = 0;
- if (n > 0) {
- c_list_for_each_entry (peer, peers_lst_head, peers_lst) {
- nm_assert (i < n);
- path = nm_dbus_object_get_path (NM_DBUS_OBJECT (peer));
- nm_assert (path);
-
- list[i++] = path;
- }
- nm_assert (i <= n);
- }
- list[i] = NULL;
- return list;
-}
-
-NMWifiP2PPeer *
-nm_wifi_p2p_peers_find_first_compatible (const CList *peers_lst_head,
- NMConnection *connection)
-{
- NMWifiP2PPeer *peer;
-
- g_return_val_if_fail (connection, NULL);
-
- c_list_for_each_entry (peer, peers_lst_head, peers_lst) {
- if (nm_wifi_p2p_peer_check_compatible (peer, connection))
- return peer;
- }
- return NULL;
-}
-
-NMWifiP2PPeer *
-nm_wifi_p2p_peers_find_by_supplicant_path (const CList *peers_lst_head, const char *path)
-{
- NMWifiP2PPeer *peer;
-
- g_return_val_if_fail (path != NULL, NULL);
-
- c_list_for_each_entry (peer, peers_lst_head, peers_lst) {
- if (nm_streq0 (path, nm_wifi_p2p_peer_get_supplicant_path (peer)))
- return peer;
- }
- return NULL;
-}
-
-/*****************************************************************************/
-
-NMWifiP2PPeer *
-nm_wifi_p2p_peer_lookup_for_device (NMDevice *device, const char *exported_path)
-{
- NMWifiP2PPeer *peer;
-
- g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
-
- peer = (NMWifiP2PPeer *) nm_dbus_manager_lookup_object (nm_dbus_object_get_manager (NM_DBUS_OBJECT (device)),
- exported_path);
- if ( !peer
- || !NM_IS_WIFI_P2P_PEER (peer)
- || peer->wifi_device != device)
- return NULL;
-
- return peer;
-}
diff --git a/src/devices/wifi/nm-wifi-p2p-peer.h b/src/devices/wifi/nm-wifi-p2p-peer.h
index 13c4add6cd..d6ff7abc56 100644
--- a/src/devices/wifi/nm-wifi-p2p-peer.h
+++ b/src/devices/wifi/nm-wifi-p2p-peer.h
@@ -1,4 +1,4 @@
-/* NetworkManager -- P2P Wi-Fi Peer
+/* NetworkManager -- Wi-Fi P2P Peer
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/src/nm-types.h b/src/nm-types.h
index 9a384e5800..b6b49028ca 100644
--- a/src/nm-types.h
+++ b/src/nm-types.h
@@ -152,7 +152,7 @@ typedef enum {
NM_LINK_TYPE_WIMAX,
NM_LINK_TYPE_WPAN,
NM_LINK_TYPE_6LOWPAN,
- NM_LINK_TYPE_P2P_WIFI,
+ NM_LINK_TYPE_WIFI_P2P,
/* Software types */
NM_LINK_TYPE_BNEP = 0x10000, /* Bluetooth Ethernet emulation */
diff --git a/src/org.freedesktop.NetworkManager.conf b/src/org.freedesktop.NetworkManager.conf
index 2bc7b4de94..720c090ef1 100644
--- a/src/org.freedesktop.NetworkManager.conf
+++ b/src/org.freedesktop.NetworkManager.conf
@@ -85,7 +85,7 @@
<allow send_destination="org.freedesktop.NetworkManager"
send_interface="org.freedesktop.NetworkManager.AccessPoint"/>
<allow send_destination="org.freedesktop.NetworkManager"
- send_interface="org.freedesktop.NetworkManager.P2PPeer"/>
+ send_interface="org.freedesktop.NetworkManager.WifiP2PPeer"/>
<!-- Devices (read-only, no security required) -->
<allow send_destination="org.freedesktop.NetworkManager"
@@ -95,7 +95,7 @@
<allow send_destination="org.freedesktop.NetworkManager"
send_interface="org.freedesktop.NetworkManager.Device.Wireless"/>
<allow send_destination="org.freedesktop.NetworkManager"
- send_interface="org.freedesktop.NetworkManager.Device.P2PWireless"/>
+ send_interface="org.freedesktop.NetworkManager.Device.WifiP2P"/>
<allow send_destination="org.freedesktop.NetworkManager"
send_interface="org.freedesktop.NetworkManager.Device"/>
diff --git a/vapi/NM-1.0.metadata b/vapi/NM-1.0.metadata
index 98fd071e2d..67587af736 100644
--- a/vapi/NM-1.0.metadata
+++ b/vapi/NM-1.0.metadata
@@ -22,15 +22,14 @@ SETTING_DCB_* parent="NM.SettingDcb" name="SETTIN
SETTING_GENERIC_* parent="NM.SettingGeneric" name="SETTING_GENERIC_(.+)"
SETTING_GSM_* parent="NM.SettingGsm" name="SETTING_GSM_(.+)"
SETTING_INFINIBAND_* parent="NM.SettingInfiniband" name="SETTING_INFINIBAND_(.+)"
-SETTING_IP_CONFIG_* parent="NM.SettingIPConfig" name="SETTING_IP_CONFIG_(.+)"
SETTING_IP4_CONFIG_* parent="NM.SettingIP4Config" name="SETTING_IP4_CONFIG_(.+)"
SETTING_IP6_CONFIG_* parent="NM.SettingIP6Config" name="SETTING_IP6_CONFIG_(.+)"
+SETTING_IP_CONFIG_* parent="NM.SettingIPConfig" name="SETTING_IP_CONFIG_(.+)"
SETTING_IP_TUNNEL_* parent="NM.SettingIPTunnel" name="SETTING_IP_TUNNEL_(.+)"
SETTING_MACVLAN_* parent="NM.SettingMacvlan" name="SETTING_MACVLAN_(.+)"
SETTING_OLPC_MESH_* parent="NM.SettingOlpcMesh" name="SETTING_OLPC_MESH_(.+)"
-SETTING_P2P_WIRELESS_* parent="NM.SettingP2PWireless" name="SETTING_P2P_WIRELESS_(.+)"
-SETTING_PPP_* parent="NM.SettingPpp" name="SETTING_PPP_(.+)"
SETTING_PPPOE_* parent="NM.SettingPppoe" name="SETTING_PPPOE_(.+)"
+SETTING_PPP_* parent="NM.SettingPpp" name="SETTING_PPP_(.+)"
SETTING_PROXY_* parent="NM.SettingProxy" name="SETTING_PROXY_(.+)"
SETTING_SERIAL_* parent="NM.SettingSerial" name="SETTING_SERIAL_(.+)"
SETTING_TEAM_* parent="NM.SettingTeam" name="SETTING_TEAM_(.+)"
@@ -38,6 +37,7 @@ SETTING_TUN_* parent="NM.SettingTun" name="SETTIN
SETTING_VLAN_* parent="NM.SettingVlan" name="SETTING_VLAN_(.+)"
SETTING_VPN_* parent="NM.SettingVpn" name="SETTING_VPN_(.+)"
SETTING_VXLAN_* parent="NM.SettingVxlan" name="SETTING_VXLAN_(.+)"
+SETTING_WIFI_P2P_* parent="NM.SettingWifiP2P" name="SETTING_WIFI_P2P_(.+)"
SETTING_WIMAX_* parent="NM.SettingWimax" name="SETTING_WIMAX_(.+)"
SETTING_WIRED_* parent="NM.SettingWired" name="SETTING_WIRED_(.+)"
SETTING_WIRELESS_* parent="NM.SettingWireless" name="SETTING_WIRELESS_(.+)"