libnm: retire deprecated WiMAX NMObject types
WiMAX is deprecated since NetworkManager 1.2.0. Note that also NetworkManager on server side no longer supports this type, hence the server's D-Bus API will never expose devices of this type. Note that NMDeviceWimax and NMWimaxNsp are NMObject types. That means, they are instantiated by NMClient to represent information on the D-Bus interface. As NetworkManager no longer exposes WiMAX devices, such devices are never created. Note that it makes no sense that a user would directly instantiate NMObject types, because they only work together with NMClient. Don't drop the related symbols and definitions from libnm, so that there is no API/ABI change (as far as building and linking is concerned). But make the types defunctional (which of course is a behavioral API change). Calling the API now triggers a g_return_*() warning. Also belatedly mark the WimaxNsp API as deprecated. It should have been done in 1.2. Note that here we deprecate the API and retire it at the same time. Optimally, we would have deprecated it a few releases ago, before retiring it. However, marking something for deprecation is anyway no excuse for anything. I mean, removing or retiring API is usually painful, regardless whether it was marked for deprecation or not. In this case, there is no possibility that a libnm user gets hold on a NMDeviceWimax or NMWimaxNsp instance, because NMClient simply no longer instantiates them. Hence, this change should not affect any user in practice. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/316
This commit is contained in:
3
NEWS
3
NEWS
@@ -20,6 +20,9 @@ USE AT YOUR OWN RISK. NOT RECOMMENDED FOR PRODUCTION USE!
|
|||||||
* libnm: hide NMObject and NMClient typedefs from header files. This prevents
|
* libnm: hide NMObject and NMClient typedefs from header files. This prevents
|
||||||
the user from subclassing these types and is an ABI change (in case somebody
|
the user from subclassing these types and is an ABI change (in case somebody
|
||||||
was doing so).
|
was doing so).
|
||||||
|
* libnm: retire deprecated WiMAX API NMDeviceWimax and NMWimaxNsp.
|
||||||
|
WiMAX support was removed from NetworkManager in version 1.2 (2016) and no such
|
||||||
|
type instances would have been created by NMClient for a while now.
|
||||||
|
|
||||||
=============================================
|
=============================================
|
||||||
NetworkManager-1.20
|
NetworkManager-1.20
|
||||||
|
@@ -4,6 +4,7 @@
|
|||||||
org.freedesktop.NetworkManager.Device.WiMax:
|
org.freedesktop.NetworkManager.Device.WiMax:
|
||||||
@short_description: WiMax Device
|
@short_description: WiMax Device
|
||||||
|
|
||||||
|
DEPRECATED: NetworkManager no longer supports WiMAX since version 1.2. This interface is no longer used.
|
||||||
-->
|
-->
|
||||||
<interface name="org.freedesktop.NetworkManager.Device.WiMax">
|
<interface name="org.freedesktop.NetworkManager.Device.WiMax">
|
||||||
|
|
||||||
|
@@ -4,6 +4,7 @@
|
|||||||
org.freedesktop.NetworkManager.WiMax.Nsp:
|
org.freedesktop.NetworkManager.WiMax.Nsp:
|
||||||
@short_description: WiMax Network Service Provider
|
@short_description: WiMax Network Service Provider
|
||||||
|
|
||||||
|
DEPRECATED: NetworkManager no longer supports WiMAX since version 1.2. This interface is no longer used.
|
||||||
-->
|
-->
|
||||||
<interface name="org.freedesktop.NetworkManager.WiMax.Nsp">
|
<interface name="org.freedesktop.NetworkManager.WiMax.Nsp">
|
||||||
|
|
||||||
|
@@ -3080,8 +3080,6 @@ obj_nm_for_gdbus_object (NMClient *self, GDBusObject *object, GDBusObjectManager
|
|||||||
type = NM_TYPE_DEVICE_VXLAN;
|
type = NM_TYPE_DEVICE_VXLAN;
|
||||||
else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_WIRELESS) == 0)
|
else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_WIRELESS) == 0)
|
||||||
type = NM_TYPE_DEVICE_WIFI;
|
type = NM_TYPE_DEVICE_WIFI;
|
||||||
else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_WIMAX) == 0)
|
|
||||||
type = NM_TYPE_DEVICE_WIMAX;
|
|
||||||
else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_WIREGUARD) == 0)
|
else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_WIREGUARD) == 0)
|
||||||
type = NM_TYPE_DEVICE_WIREGUARD;
|
type = NM_TYPE_DEVICE_WIREGUARD;
|
||||||
else if (strcmp (ifname, NM_DBUS_INTERFACE_DHCP4_CONFIG) == 0)
|
else if (strcmp (ifname, NM_DBUS_INTERFACE_DHCP4_CONFIG) == 0)
|
||||||
@@ -3102,8 +3100,6 @@ obj_nm_for_gdbus_object (NMClient *self, GDBusObject *object, GDBusObjectManager
|
|||||||
type = NM_TYPE_DNS_MANAGER;
|
type = NM_TYPE_DNS_MANAGER;
|
||||||
else if (strcmp (ifname, NM_DBUS_INTERFACE_VPN_CONNECTION) == 0)
|
else if (strcmp (ifname, NM_DBUS_INTERFACE_VPN_CONNECTION) == 0)
|
||||||
type = NM_TYPE_VPN_CONNECTION;
|
type = NM_TYPE_VPN_CONNECTION;
|
||||||
else if (strcmp (ifname, NM_DBUS_INTERFACE_WIMAX_NSP) == 0)
|
|
||||||
type = NM_TYPE_WIMAX_NSP;
|
|
||||||
else if (strcmp (ifname, NM_DBUS_INTERFACE_CHECKPOINT) == 0)
|
else if (strcmp (ifname, NM_DBUS_INTERFACE_CHECKPOINT) == 0)
|
||||||
type = NM_TYPE_CHECKPOINT;
|
type = NM_TYPE_CHECKPOINT;
|
||||||
|
|
||||||
|
@@ -8,12 +8,7 @@
|
|||||||
|
|
||||||
#include "nm-device-wimax.h"
|
#include "nm-device-wimax.h"
|
||||||
|
|
||||||
#include "nm-setting-connection.h"
|
|
||||||
#include "nm-setting-wimax.h"
|
|
||||||
#include "nm-utils.h"
|
|
||||||
#include "nm-wimax-nsp.h"
|
#include "nm-wimax-nsp.h"
|
||||||
#include "nm-object-private.h"
|
|
||||||
#include "nm-core-internal.h"
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
@@ -37,27 +32,12 @@ enum {
|
|||||||
|
|
||||||
static guint signals[LAST_SIGNAL] = { 0 };
|
static guint signals[LAST_SIGNAL] = { 0 };
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
char *hw_address;
|
|
||||||
NMWimaxNsp *active_nsp;
|
|
||||||
GPtrArray *nsps;
|
|
||||||
|
|
||||||
guint center_freq;
|
|
||||||
int rssi;
|
|
||||||
int cinr;
|
|
||||||
int tx_power;
|
|
||||||
char *bsid;
|
|
||||||
} NMDeviceWimaxPrivate;
|
|
||||||
|
|
||||||
struct _NMDeviceWimax {
|
struct _NMDeviceWimax {
|
||||||
NMDevice parent;
|
NMDevice parent;
|
||||||
NMDeviceWimaxPrivate _priv;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _NMDeviceWimaxClass {
|
struct _NMDeviceWimaxClass {
|
||||||
NMDeviceClass parent;
|
NMDeviceClass parent;
|
||||||
|
|
||||||
void (*nsp_removed) (NMDeviceWimax *self, NMWimaxNsp *nsp);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE (NMDeviceWimax, nm_device_wimax, NM_TYPE_DEVICE)
|
G_DEFINE_TYPE (NMDeviceWimax, nm_device_wimax, NM_TYPE_DEVICE)
|
||||||
@@ -66,11 +46,6 @@ G_DEFINE_TYPE (NMDeviceWimax, nm_device_wimax, NM_TYPE_DEVICE)
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void _nm_device_wimax_set_wireless_enabled (NMDeviceWimax *wimax, gboolean enabled);
|
|
||||||
static void state_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data);
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* nm_device_wimax_get_hw_address:
|
* nm_device_wimax_get_hw_address:
|
||||||
* @wimax: a #NMDeviceWimax
|
* @wimax: a #NMDeviceWimax
|
||||||
@@ -85,9 +60,7 @@ static void state_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user
|
|||||||
const char *
|
const char *
|
||||||
nm_device_wimax_get_hw_address (NMDeviceWimax *wimax)
|
nm_device_wimax_get_hw_address (NMDeviceWimax *wimax)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), NULL);
|
g_return_val_if_reached (NULL);
|
||||||
|
|
||||||
return nm_str_not_empty (NM_DEVICE_WIMAX_GET_PRIVATE (wimax)->hw_address);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -103,27 +76,7 @@ nm_device_wimax_get_hw_address (NMDeviceWimax *wimax)
|
|||||||
NMWimaxNsp *
|
NMWimaxNsp *
|
||||||
nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax)
|
nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax)
|
||||||
{
|
{
|
||||||
NMDeviceState state;
|
g_return_val_if_reached (NULL);
|
||||||
|
|
||||||
g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), NULL);
|
|
||||||
|
|
||||||
state = nm_device_get_state (NM_DEVICE (wimax));
|
|
||||||
switch (state) {
|
|
||||||
case NM_DEVICE_STATE_PREPARE:
|
|
||||||
case NM_DEVICE_STATE_CONFIG:
|
|
||||||
case NM_DEVICE_STATE_NEED_AUTH:
|
|
||||||
case NM_DEVICE_STATE_IP_CONFIG:
|
|
||||||
case NM_DEVICE_STATE_IP_CHECK:
|
|
||||||
case NM_DEVICE_STATE_SECONDARIES:
|
|
||||||
case NM_DEVICE_STATE_ACTIVATED:
|
|
||||||
case NM_DEVICE_STATE_DEACTIVATING:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return NULL;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NM_DEVICE_WIMAX_GET_PRIVATE (wimax)->active_nsp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -141,9 +94,7 @@ nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax)
|
|||||||
const GPtrArray *
|
const GPtrArray *
|
||||||
nm_device_wimax_get_nsps (NMDeviceWimax *wimax)
|
nm_device_wimax_get_nsps (NMDeviceWimax *wimax)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), NULL);
|
g_return_val_if_reached (NULL);
|
||||||
|
|
||||||
return NM_DEVICE_WIMAX_GET_PRIVATE (wimax)->nsps;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -161,43 +112,7 @@ NMWimaxNsp *
|
|||||||
nm_device_wimax_get_nsp_by_path (NMDeviceWimax *wimax,
|
nm_device_wimax_get_nsp_by_path (NMDeviceWimax *wimax,
|
||||||
const char *path)
|
const char *path)
|
||||||
{
|
{
|
||||||
const GPtrArray *nsps;
|
g_return_val_if_reached (NULL);
|
||||||
int i;
|
|
||||||
NMWimaxNsp *nsp = NULL;
|
|
||||||
|
|
||||||
g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), NULL);
|
|
||||||
g_return_val_if_fail (path != NULL, NULL);
|
|
||||||
|
|
||||||
nsps = nm_device_wimax_get_nsps (wimax);
|
|
||||||
if (!nsps)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
for (i = 0; i < nsps->len; i++) {
|
|
||||||
NMWimaxNsp *candidate = g_ptr_array_index (nsps, i);
|
|
||||||
if (!strcmp (nm_object_get_path (NM_OBJECT (candidate)), path)) {
|
|
||||||
nsp = candidate;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nsp;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
clean_up_nsps (NMDeviceWimax *self)
|
|
||||||
{
|
|
||||||
NMDeviceWimaxPrivate *priv;
|
|
||||||
|
|
||||||
g_return_if_fail (NM_IS_DEVICE_WIMAX (self));
|
|
||||||
|
|
||||||
priv = NM_DEVICE_WIMAX_GET_PRIVATE (self);
|
|
||||||
|
|
||||||
if (priv->active_nsp) {
|
|
||||||
g_object_unref (priv->active_nsp);
|
|
||||||
priv->active_nsp = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_clear_pointer (&priv->nsps, g_ptr_array_unref);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -215,9 +130,7 @@ clean_up_nsps (NMDeviceWimax *self)
|
|||||||
guint
|
guint
|
||||||
nm_device_wimax_get_center_frequency (NMDeviceWimax *self)
|
nm_device_wimax_get_center_frequency (NMDeviceWimax *self)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), 0);
|
g_return_val_if_reached (0);
|
||||||
|
|
||||||
return NM_DEVICE_WIMAX_GET_PRIVATE (self)->center_freq;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -236,9 +149,7 @@ nm_device_wimax_get_center_frequency (NMDeviceWimax *self)
|
|||||||
int
|
int
|
||||||
nm_device_wimax_get_rssi (NMDeviceWimax *self)
|
nm_device_wimax_get_rssi (NMDeviceWimax *self)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), 0);
|
g_return_val_if_reached (0);
|
||||||
|
|
||||||
return NM_DEVICE_WIMAX_GET_PRIVATE (self)->rssi;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -256,9 +167,7 @@ nm_device_wimax_get_rssi (NMDeviceWimax *self)
|
|||||||
int
|
int
|
||||||
nm_device_wimax_get_cinr (NMDeviceWimax *self)
|
nm_device_wimax_get_cinr (NMDeviceWimax *self)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), 0);
|
g_return_val_if_reached (0);
|
||||||
|
|
||||||
return NM_DEVICE_WIMAX_GET_PRIVATE (self)->cinr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -276,9 +185,7 @@ nm_device_wimax_get_cinr (NMDeviceWimax *self)
|
|||||||
int
|
int
|
||||||
nm_device_wimax_get_tx_power (NMDeviceWimax *self)
|
nm_device_wimax_get_tx_power (NMDeviceWimax *self)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), 0);
|
g_return_val_if_reached (0);
|
||||||
|
|
||||||
return NM_DEVICE_WIMAX_GET_PRIVATE (self)->tx_power;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -294,245 +201,32 @@ nm_device_wimax_get_tx_power (NMDeviceWimax *self)
|
|||||||
const char *
|
const char *
|
||||||
nm_device_wimax_get_bsid (NMDeviceWimax *self)
|
nm_device_wimax_get_bsid (NMDeviceWimax *self)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), NULL);
|
g_return_val_if_reached (0);
|
||||||
|
|
||||||
return nm_str_not_empty (NM_DEVICE_WIMAX_GET_PRIVATE (self)->bsid);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
connection_compatible (NMDevice *device, NMConnection *connection, GError **error)
|
|
||||||
{
|
|
||||||
NMSettingWimax *s_wimax;
|
|
||||||
const char *hwaddr, *setting_hwaddr;
|
|
||||||
|
|
||||||
if (!NM_DEVICE_CLASS (nm_device_wimax_parent_class)->connection_compatible (device, connection, error))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
if (!nm_connection_is_type (connection, NM_SETTING_WIMAX_SETTING_NAME)) {
|
|
||||||
g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION,
|
|
||||||
_("The connection was not a WiMAX connection."));
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check MAC address */
|
|
||||||
hwaddr = nm_device_wimax_get_hw_address (NM_DEVICE_WIMAX (device));
|
|
||||||
if (hwaddr) {
|
|
||||||
if (!nm_utils_hwaddr_valid (hwaddr, ETH_ALEN)) {
|
|
||||||
g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED,
|
|
||||||
_("Invalid device MAC address."));
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
s_wimax = nm_connection_get_setting_wimax (connection);
|
|
||||||
setting_hwaddr = nm_setting_wimax_get_mac_address (s_wimax);
|
|
||||||
if (setting_hwaddr && !nm_utils_hwaddr_matches (setting_hwaddr, -1, hwaddr, -1)) {
|
|
||||||
g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION,
|
|
||||||
_("The MACs of the device and the connection didn't match."));
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static GType
|
|
||||||
get_setting_type (NMDevice *device)
|
|
||||||
{
|
|
||||||
return NM_TYPE_SETTING_WIMAX;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char *
|
|
||||||
get_hw_address (NMDevice *device)
|
|
||||||
{
|
|
||||||
return nm_device_wimax_get_hw_address (NM_DEVICE_WIMAX (device));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void
|
|
||||||
nm_device_wimax_init (NMDeviceWimax *device)
|
|
||||||
{
|
|
||||||
g_signal_connect (device,
|
|
||||||
"notify::" NM_DEVICE_STATE,
|
|
||||||
G_CALLBACK (state_changed_cb),
|
|
||||||
NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
get_property (GObject *object,
|
get_property (GObject *object,
|
||||||
guint prop_id,
|
guint prop_id,
|
||||||
GValue *value,
|
GValue *value,
|
||||||
GParamSpec *pspec)
|
GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
NMDeviceWimax *self = NM_DEVICE_WIMAX (object);
|
g_return_if_reached ();
|
||||||
|
|
||||||
switch (prop_id) {
|
|
||||||
case PROP_HW_ADDRESS:
|
|
||||||
g_value_set_string (value, nm_device_wimax_get_hw_address (self));
|
|
||||||
break;
|
|
||||||
case PROP_ACTIVE_NSP:
|
|
||||||
g_value_set_object (value, nm_device_wimax_get_active_nsp (self));
|
|
||||||
break;
|
|
||||||
case PROP_CENTER_FREQ:
|
|
||||||
g_value_set_uint (value, nm_device_wimax_get_center_frequency (self));
|
|
||||||
break;
|
|
||||||
case PROP_RSSI:
|
|
||||||
g_value_set_int (value, nm_device_wimax_get_rssi (self));
|
|
||||||
break;
|
|
||||||
case PROP_CINR:
|
|
||||||
g_value_set_int (value, nm_device_wimax_get_cinr (self));
|
|
||||||
break;
|
|
||||||
case PROP_TX_POWER:
|
|
||||||
g_value_set_int (value, nm_device_wimax_get_tx_power (self));
|
|
||||||
break;
|
|
||||||
case PROP_BSID:
|
|
||||||
g_value_set_string (value, nm_device_wimax_get_bsid (self));
|
|
||||||
break;
|
|
||||||
case PROP_NSPS:
|
|
||||||
g_value_take_boxed (value, _nm_utils_copy_object_array (nm_device_wimax_get_nsps (self)));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clear_link_status (NMDeviceWimax *self)
|
nm_device_wimax_init (NMDeviceWimax *device)
|
||||||
{
|
{
|
||||||
NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (self);
|
g_return_if_reached ();
|
||||||
|
|
||||||
if (priv->center_freq) {
|
|
||||||
priv->center_freq = 0;
|
|
||||||
_nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_CENTER_FREQUENCY);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (priv->rssi) {
|
|
||||||
priv->rssi = 0;
|
|
||||||
_nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_RSSI);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (priv->cinr) {
|
|
||||||
priv->cinr = 0;
|
|
||||||
_nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_CINR);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (priv->tx_power) {
|
|
||||||
priv->tx_power = 0;
|
|
||||||
_nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_TX_POWER);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (priv->bsid) {
|
|
||||||
g_free (priv->bsid);
|
|
||||||
priv->bsid = NULL;
|
|
||||||
_nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_BSID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
state_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data)
|
|
||||||
{
|
|
||||||
NMDeviceWimax *self = NM_DEVICE_WIMAX (device);
|
|
||||||
NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (self);
|
|
||||||
NMDeviceState state;
|
|
||||||
|
|
||||||
state = nm_device_get_state (device);
|
|
||||||
switch (state) {
|
|
||||||
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:
|
|
||||||
if (priv->active_nsp) {
|
|
||||||
g_object_unref (priv->active_nsp);
|
|
||||||
priv->active_nsp = NULL;
|
|
||||||
}
|
|
||||||
_nm_object_queue_notify (NM_OBJECT (device), NM_DEVICE_WIMAX_ACTIVE_NSP);
|
|
||||||
clear_link_status (self);
|
|
||||||
break;
|
|
||||||
case NM_DEVICE_STATE_PREPARE:
|
|
||||||
case NM_DEVICE_STATE_CONFIG:
|
|
||||||
case NM_DEVICE_STATE_NEED_AUTH:
|
|
||||||
case NM_DEVICE_STATE_IP_CONFIG:
|
|
||||||
clear_link_status (self);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
init_dbus (NMObject *object)
|
|
||||||
{
|
|
||||||
NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (object);
|
|
||||||
const NMPropertiesInfo property_info[] = {
|
|
||||||
{ NM_DEVICE_WIMAX_HW_ADDRESS, &priv->hw_address },
|
|
||||||
{ NM_DEVICE_WIMAX_ACTIVE_NSP, &priv->active_nsp, NULL, NM_TYPE_WIMAX_NSP },
|
|
||||||
{ NM_DEVICE_WIMAX_CENTER_FREQUENCY, &priv->center_freq },
|
|
||||||
{ NM_DEVICE_WIMAX_RSSI, &priv->rssi },
|
|
||||||
{ NM_DEVICE_WIMAX_CINR, &priv->cinr },
|
|
||||||
{ NM_DEVICE_WIMAX_TX_POWER, &priv->tx_power },
|
|
||||||
{ NM_DEVICE_WIMAX_BSID, &priv->bsid },
|
|
||||||
{ NM_DEVICE_WIMAX_NSPS, &priv->nsps, NULL, NM_TYPE_WIMAX_NSP, "nsp" },
|
|
||||||
{ NULL },
|
|
||||||
};
|
|
||||||
|
|
||||||
NM_OBJECT_CLASS (nm_device_wimax_parent_class)->init_dbus (object);
|
|
||||||
|
|
||||||
_nm_object_register_properties (object,
|
|
||||||
NM_DBUS_INTERFACE_DEVICE_WIMAX,
|
|
||||||
property_info);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
nsp_removed (NMDeviceWimax *self, NMWimaxNsp *nsp)
|
|
||||||
{
|
|
||||||
NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (self);
|
|
||||||
|
|
||||||
if (nsp == priv->active_nsp) {
|
|
||||||
g_object_unref (priv->active_nsp);
|
|
||||||
priv->active_nsp = NULL;
|
|
||||||
_nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_ACTIVE_NSP);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
dispose (GObject *object)
|
|
||||||
{
|
|
||||||
NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (object);
|
|
||||||
|
|
||||||
if (priv->hw_address) {
|
|
||||||
g_free (priv->hw_address);
|
|
||||||
priv->hw_address = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (priv->bsid) {
|
|
||||||
g_free (priv->bsid);
|
|
||||||
priv->bsid = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (priv->nsps)
|
|
||||||
clean_up_nsps (NM_DEVICE_WIMAX (object));
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (nm_device_wimax_parent_class)->dispose (object);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
|
nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
|
||||||
{
|
{
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (wimax_class);
|
GObjectClass *object_class = G_OBJECT_CLASS (wimax_class);
|
||||||
NMObjectClass *nm_object_class = NM_OBJECT_CLASS (wimax_class);
|
|
||||||
NMDeviceClass *device_class = NM_DEVICE_CLASS (wimax_class);
|
|
||||||
|
|
||||||
object_class->get_property = get_property;
|
object_class->get_property = get_property;
|
||||||
object_class->dispose = dispose;
|
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
wimax_class->nsp_removed = nsp_removed;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NMDeviceWimax:hw-address:
|
* NMDeviceWimax:hw-address:
|
||||||
@@ -679,8 +373,7 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
|
|||||||
g_signal_new ("nsp-removed",
|
g_signal_new ("nsp-removed",
|
||||||
G_OBJECT_CLASS_TYPE (object_class),
|
G_OBJECT_CLASS_TYPE (object_class),
|
||||||
G_SIGNAL_RUN_FIRST,
|
G_SIGNAL_RUN_FIRST,
|
||||||
G_STRUCT_OFFSET (NMDeviceWimaxClass, nsp_removed),
|
0, NULL, NULL,
|
||||||
NULL, NULL,
|
|
||||||
g_cclosure_marshal_VOID__OBJECT,
|
g_cclosure_marshal_VOID__OBJECT,
|
||||||
G_TYPE_NONE, 1,
|
G_TYPE_NONE, 1,
|
||||||
G_TYPE_OBJECT);
|
G_TYPE_OBJECT);
|
||||||
|
@@ -33,6 +33,8 @@ G_BEGIN_DECLS
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* NMDeviceWimax:
|
* NMDeviceWimax:
|
||||||
|
*
|
||||||
|
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
|
||||||
*/
|
*/
|
||||||
typedef struct _NMDeviceWimaxClass NMDeviceWimaxClass;
|
typedef struct _NMDeviceWimaxClass NMDeviceWimaxClass;
|
||||||
|
|
||||||
|
@@ -7,13 +7,6 @@
|
|||||||
|
|
||||||
#include "nm-wimax-nsp.h"
|
#include "nm-wimax-nsp.h"
|
||||||
|
|
||||||
#include "nm-connection.h"
|
|
||||||
#include "nm-setting-connection.h"
|
|
||||||
#include "nm-setting-wimax.h"
|
|
||||||
#include "nm-dbus-interface.h"
|
|
||||||
#include "nm-object-private.h"
|
|
||||||
#include "nm-enum-types.h"
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
NM_GOBJECT_PROPERTIES_DEFINE_BASE (
|
NM_GOBJECT_PROPERTIES_DEFINE_BASE (
|
||||||
@@ -22,15 +15,8 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE (
|
|||||||
PROP_NETWORK_TYPE,
|
PROP_NETWORK_TYPE,
|
||||||
);
|
);
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
char *name;
|
|
||||||
guint32 signal_quality;
|
|
||||||
NMWimaxNspNetworkType network_type;
|
|
||||||
} NMWimaxNspPrivate;
|
|
||||||
|
|
||||||
struct _NMWimaxNsp {
|
struct _NMWimaxNsp {
|
||||||
NMObject parent;
|
NMObject parent;
|
||||||
NMWimaxNspPrivate _priv;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _NMWimaxNspClass {
|
struct _NMWimaxNspClass {
|
||||||
@@ -50,13 +36,13 @@ G_DEFINE_TYPE (NMWimaxNsp, nm_wimax_nsp, NM_TYPE_OBJECT)
|
|||||||
* Gets the name of the wimax NSP
|
* Gets the name of the wimax NSP
|
||||||
*
|
*
|
||||||
* Returns: the name
|
* Returns: the name
|
||||||
|
*
|
||||||
|
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
|
||||||
**/
|
**/
|
||||||
const char *
|
const char *
|
||||||
nm_wimax_nsp_get_name (NMWimaxNsp *nsp)
|
nm_wimax_nsp_get_name (NMWimaxNsp *nsp)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (NM_IS_WIMAX_NSP (nsp), NULL);
|
g_return_val_if_reached (NULL);
|
||||||
|
|
||||||
return NM_WIMAX_NSP_GET_PRIVATE (nsp)->name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -66,13 +52,13 @@ nm_wimax_nsp_get_name (NMWimaxNsp *nsp)
|
|||||||
* Gets the WPA signal quality of the wimax NSP.
|
* Gets the WPA signal quality of the wimax NSP.
|
||||||
*
|
*
|
||||||
* Returns: the signal quality
|
* Returns: the signal quality
|
||||||
|
*
|
||||||
|
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
|
||||||
**/
|
**/
|
||||||
guint32
|
guint32
|
||||||
nm_wimax_nsp_get_signal_quality (NMWimaxNsp *nsp)
|
nm_wimax_nsp_get_signal_quality (NMWimaxNsp *nsp)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (NM_IS_WIMAX_NSP (nsp), 0);
|
g_return_val_if_reached (0);
|
||||||
|
|
||||||
return NM_WIMAX_NSP_GET_PRIVATE (nsp)->signal_quality;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -82,13 +68,13 @@ nm_wimax_nsp_get_signal_quality (NMWimaxNsp *nsp)
|
|||||||
* Gets the network type of the wimax NSP.
|
* Gets the network type of the wimax NSP.
|
||||||
*
|
*
|
||||||
* Returns: the network type
|
* Returns: the network type
|
||||||
|
*
|
||||||
|
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
|
||||||
**/
|
**/
|
||||||
NMWimaxNspNetworkType
|
NMWimaxNspNetworkType
|
||||||
nm_wimax_nsp_get_network_type (NMWimaxNsp *nsp)
|
nm_wimax_nsp_get_network_type (NMWimaxNsp *nsp)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (NM_IS_WIMAX_NSP (nsp), NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN);
|
g_return_val_if_reached (NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN);
|
||||||
|
|
||||||
return NM_WIMAX_NSP_GET_PRIVATE (nsp)->network_type;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -102,36 +88,13 @@ nm_wimax_nsp_get_network_type (NMWimaxNsp *nsp)
|
|||||||
*
|
*
|
||||||
* Returns: %TRUE if the connection may be activated with this WiMAX NSP,
|
* Returns: %TRUE if the connection may be activated with this WiMAX NSP,
|
||||||
* %FALSE if it cannot be.
|
* %FALSE if it cannot be.
|
||||||
|
*
|
||||||
|
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
|
||||||
**/
|
**/
|
||||||
gboolean
|
gboolean
|
||||||
nm_wimax_nsp_connection_valid (NMWimaxNsp *nsp, NMConnection *connection)
|
nm_wimax_nsp_connection_valid (NMWimaxNsp *nsp, NMConnection *connection)
|
||||||
{
|
{
|
||||||
NMSettingConnection *s_con;
|
g_return_val_if_reached (FALSE);
|
||||||
NMSettingWimax *s_wimax;
|
|
||||||
const char *ctype;
|
|
||||||
const char *nsp_name;
|
|
||||||
const char *setting_name;
|
|
||||||
|
|
||||||
s_con = nm_connection_get_setting_connection (connection);
|
|
||||||
g_assert (s_con);
|
|
||||||
ctype = nm_setting_connection_get_connection_type (s_con);
|
|
||||||
if (strcmp (ctype, NM_SETTING_WIMAX_SETTING_NAME) != 0)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
s_wimax = nm_connection_get_setting_wimax (connection);
|
|
||||||
if (!s_wimax)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
setting_name = nm_setting_wimax_get_network_name (s_wimax);
|
|
||||||
if (!setting_name)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
nsp_name = nm_wimax_nsp_get_name (nsp);
|
|
||||||
g_warn_if_fail (nsp_name != NULL);
|
|
||||||
if (g_strcmp0 (nsp_name, setting_name) != 0)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -147,98 +110,45 @@ nm_wimax_nsp_connection_valid (NMWimaxNsp *nsp, NMConnection *connection)
|
|||||||
* Returns: (transfer full) (element-type NMConnection): an array of
|
* Returns: (transfer full) (element-type NMConnection): an array of
|
||||||
* #NMConnections that could be activated with the given @nsp. The array should
|
* #NMConnections that could be activated with the given @nsp. The array should
|
||||||
* be freed with g_ptr_array_unref() when it is no longer required.
|
* be freed with g_ptr_array_unref() when it is no longer required.
|
||||||
|
*
|
||||||
|
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
|
||||||
**/
|
**/
|
||||||
GPtrArray *
|
GPtrArray *
|
||||||
nm_wimax_nsp_filter_connections (NMWimaxNsp *nsp, const GPtrArray *connections)
|
nm_wimax_nsp_filter_connections (NMWimaxNsp *nsp, const GPtrArray *connections)
|
||||||
{
|
{
|
||||||
GPtrArray *filtered;
|
g_return_val_if_reached (NULL);
|
||||||
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_wimax_nsp_connection_valid (nsp, candidate))
|
|
||||||
g_ptr_array_add (filtered, g_object_ref (candidate));
|
|
||||||
}
|
|
||||||
|
|
||||||
return filtered;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void
|
|
||||||
nm_wimax_nsp_init (NMWimaxNsp *nsp)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
finalize (GObject *object)
|
|
||||||
{
|
|
||||||
NMWimaxNspPrivate *priv = NM_WIMAX_NSP_GET_PRIVATE (object);
|
|
||||||
|
|
||||||
g_free (priv->name);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (nm_wimax_nsp_parent_class)->finalize (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
get_property (GObject *object,
|
get_property (GObject *object,
|
||||||
guint prop_id,
|
guint prop_id,
|
||||||
GValue *value,
|
GValue *value,
|
||||||
GParamSpec *pspec)
|
GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
NMWimaxNsp *nsp = NM_WIMAX_NSP (object);
|
g_return_if_reached ();
|
||||||
|
|
||||||
switch (prop_id) {
|
|
||||||
case PROP_NAME:
|
|
||||||
g_value_set_string (value, nm_wimax_nsp_get_name (nsp));
|
|
||||||
break;
|
|
||||||
case PROP_SIGNAL_QUALITY:
|
|
||||||
g_value_set_uint (value, nm_wimax_nsp_get_signal_quality (nsp));
|
|
||||||
break;
|
|
||||||
case PROP_NETWORK_TYPE:
|
|
||||||
g_value_set_enum (value, nm_wimax_nsp_get_network_type (nsp));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
init_dbus (NMObject *object)
|
nm_wimax_nsp_init (NMWimaxNsp *nsp)
|
||||||
{
|
{
|
||||||
NMWimaxNspPrivate *priv = NM_WIMAX_NSP_GET_PRIVATE (object);
|
g_return_if_reached ();
|
||||||
const NMPropertiesInfo property_info[] = {
|
|
||||||
{ NM_WIMAX_NSP_NAME, &priv->name },
|
|
||||||
{ NM_WIMAX_NSP_SIGNAL_QUALITY, &priv->signal_quality },
|
|
||||||
{ NM_WIMAX_NSP_NETWORK_TYPE, &priv->network_type },
|
|
||||||
{ NULL },
|
|
||||||
};
|
|
||||||
|
|
||||||
NM_OBJECT_CLASS (nm_wimax_nsp_parent_class)->init_dbus (object);
|
|
||||||
|
|
||||||
_nm_object_register_properties (object,
|
|
||||||
NM_DBUS_INTERFACE_WIMAX_NSP,
|
|
||||||
property_info);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
nm_wimax_nsp_class_init (NMWimaxNspClass *nsp_class)
|
nm_wimax_nsp_class_init (NMWimaxNspClass *nsp_class)
|
||||||
{
|
{
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (nsp_class);
|
GObjectClass *object_class = G_OBJECT_CLASS (nsp_class);
|
||||||
NMObjectClass *nm_object_class = NM_OBJECT_CLASS (nsp_class);
|
|
||||||
|
|
||||||
object_class->get_property = get_property;
|
object_class->get_property = get_property;
|
||||||
object_class->finalize = finalize;
|
|
||||||
|
|
||||||
nm_object_class->init_dbus = init_dbus;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NMWimaxNsp:name:
|
* NMWimaxNsp:name:
|
||||||
*
|
*
|
||||||
* The name of the WiMAX NSP.
|
* The name of the WiMAX NSP.
|
||||||
|
*
|
||||||
|
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
|
||||||
**/
|
**/
|
||||||
obj_properties[PROP_NAME] =
|
obj_properties[PROP_NAME] =
|
||||||
g_param_spec_string (NM_WIMAX_NSP_NAME, "", "",
|
g_param_spec_string (NM_WIMAX_NSP_NAME, "", "",
|
||||||
@@ -250,6 +160,8 @@ nm_wimax_nsp_class_init (NMWimaxNspClass *nsp_class)
|
|||||||
* NMWimaxNsp:signal-quality:
|
* NMWimaxNsp:signal-quality:
|
||||||
*
|
*
|
||||||
* The signal quality of the WiMAX NSP.
|
* The signal quality of the WiMAX NSP.
|
||||||
|
*
|
||||||
|
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
|
||||||
**/
|
**/
|
||||||
obj_properties[PROP_SIGNAL_QUALITY] =
|
obj_properties[PROP_SIGNAL_QUALITY] =
|
||||||
g_param_spec_uint (NM_WIMAX_NSP_SIGNAL_QUALITY, "", "",
|
g_param_spec_uint (NM_WIMAX_NSP_SIGNAL_QUALITY, "", "",
|
||||||
@@ -261,6 +173,8 @@ nm_wimax_nsp_class_init (NMWimaxNspClass *nsp_class)
|
|||||||
* NMWimaxNsp:network-type:
|
* NMWimaxNsp:network-type:
|
||||||
*
|
*
|
||||||
* The network type of the WiMAX NSP.
|
* The network type of the WiMAX NSP.
|
||||||
|
*
|
||||||
|
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
|
||||||
**/
|
**/
|
||||||
obj_properties[PROP_NETWORK_TYPE] =
|
obj_properties[PROP_NETWORK_TYPE] =
|
||||||
g_param_spec_enum (NM_WIMAX_NSP_NETWORK_TYPE, "", "",
|
g_param_spec_enum (NM_WIMAX_NSP_NETWORK_TYPE, "", "",
|
||||||
|
@@ -28,18 +28,25 @@ G_BEGIN_DECLS
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* NMWimaxNsp:
|
* NMWimaxNsp:
|
||||||
|
*
|
||||||
|
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
|
||||||
*/
|
*/
|
||||||
typedef struct _NMWimaxNspClass NMWimaxNspClass;
|
typedef struct _NMWimaxNspClass NMWimaxNspClass;
|
||||||
|
|
||||||
GType nm_wimax_nsp_get_type (void);
|
GType nm_wimax_nsp_get_type (void);
|
||||||
|
|
||||||
|
NM_DEPRECATED_IN_1_22
|
||||||
const char * nm_wimax_nsp_get_name (NMWimaxNsp *nsp);
|
const char * nm_wimax_nsp_get_name (NMWimaxNsp *nsp);
|
||||||
|
NM_DEPRECATED_IN_1_22
|
||||||
guint32 nm_wimax_nsp_get_signal_quality (NMWimaxNsp *nsp);
|
guint32 nm_wimax_nsp_get_signal_quality (NMWimaxNsp *nsp);
|
||||||
|
NM_DEPRECATED_IN_1_22
|
||||||
NMWimaxNspNetworkType nm_wimax_nsp_get_network_type (NMWimaxNsp *nsp);
|
NMWimaxNspNetworkType nm_wimax_nsp_get_network_type (NMWimaxNsp *nsp);
|
||||||
|
|
||||||
|
NM_DEPRECATED_IN_1_22
|
||||||
GPtrArray * nm_wimax_nsp_filter_connections (NMWimaxNsp *nsp,
|
GPtrArray * nm_wimax_nsp_filter_connections (NMWimaxNsp *nsp,
|
||||||
const GPtrArray *connections);
|
const GPtrArray *connections);
|
||||||
|
|
||||||
|
NM_DEPRECATED_IN_1_22
|
||||||
gboolean nm_wimax_nsp_connection_valid (NMWimaxNsp *nsp,
|
gboolean nm_wimax_nsp_connection_valid (NMWimaxNsp *nsp,
|
||||||
NMConnection *connection);
|
NMConnection *connection);
|
||||||
|
|
||||||
|
@@ -462,208 +462,6 @@ test_wifi_ap_added_removed (void)
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static const char *expected_nsp_name = "Clear";
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
GMainLoop *loop;
|
|
||||||
gboolean found;
|
|
||||||
char *nsp_path;
|
|
||||||
gboolean signaled;
|
|
||||||
gboolean notified;
|
|
||||||
guint quit_id;
|
|
||||||
guint quit_count;
|
|
||||||
} WimaxNspInfo;
|
|
||||||
|
|
||||||
static void
|
|
||||||
wimax_check_quit (WimaxNspInfo *info)
|
|
||||||
{
|
|
||||||
info->quit_count--;
|
|
||||||
if (info->quit_count == 0) {
|
|
||||||
g_source_remove (info->quit_id);
|
|
||||||
info->quit_id = 0;
|
|
||||||
g_main_loop_quit (info->loop);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
got_nsp_path (WimaxNspInfo *info, const char *path)
|
|
||||||
{
|
|
||||||
if (info->nsp_path)
|
|
||||||
g_assert_cmpstr (info->nsp_path, ==, path);
|
|
||||||
else
|
|
||||||
info->nsp_path = g_strdup (path);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
wimax_nsp_added_cb (NMDeviceWimax *w,
|
|
||||||
NMWimaxNsp *nsp,
|
|
||||||
WimaxNspInfo *info)
|
|
||||||
{
|
|
||||||
g_assert (nsp);
|
|
||||||
g_assert_cmpstr (nm_wimax_nsp_get_name (nsp), ==, expected_nsp_name);
|
|
||||||
got_nsp_path (info, nm_object_get_path (NM_OBJECT (nsp)));
|
|
||||||
|
|
||||||
info->signaled = TRUE;
|
|
||||||
wimax_check_quit (info);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
wimax_nsp_add_notify_cb (NMDeviceWimax *w,
|
|
||||||
GParamSpec *pspec,
|
|
||||||
WimaxNspInfo *info)
|
|
||||||
{
|
|
||||||
const GPtrArray *nsps;
|
|
||||||
NMWimaxNsp *nsp;
|
|
||||||
|
|
||||||
nsps = nm_device_wimax_get_nsps (w);
|
|
||||||
g_assert (nsps);
|
|
||||||
g_assert_cmpint (nsps->len, ==, 1);
|
|
||||||
|
|
||||||
nsp = g_ptr_array_index (nsps, 0);
|
|
||||||
g_assert (nsp);
|
|
||||||
g_assert_cmpstr (nm_wimax_nsp_get_name (nsp), ==, expected_nsp_name);
|
|
||||||
got_nsp_path (info, nm_object_get_path (NM_OBJECT (nsp)));
|
|
||||||
|
|
||||||
info->notified = TRUE;
|
|
||||||
wimax_check_quit (info);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
wimax_nsp_removed_cb (NMDeviceWimax *w,
|
|
||||||
NMWimaxNsp *nsp,
|
|
||||||
WimaxNspInfo *info)
|
|
||||||
{
|
|
||||||
g_assert (nsp);
|
|
||||||
g_assert_cmpstr (info->nsp_path, ==, nm_object_get_path (NM_OBJECT (nsp)));
|
|
||||||
|
|
||||||
info->signaled = TRUE;
|
|
||||||
wimax_check_quit (info);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
wimax_nsp_remove_notify_cb (NMDeviceWimax *w,
|
|
||||||
GParamSpec *pspec,
|
|
||||||
WimaxNspInfo *info)
|
|
||||||
{
|
|
||||||
const GPtrArray *nsps;
|
|
||||||
|
|
||||||
nsps = nm_device_wimax_get_nsps (w);
|
|
||||||
g_assert (nsps->len == 0);
|
|
||||||
|
|
||||||
info->notified = TRUE;
|
|
||||||
wimax_check_quit (info);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
test_wimax_nsp_added_removed (void)
|
|
||||||
{
|
|
||||||
NMClient *client;
|
|
||||||
NMDeviceWimax *wimax;
|
|
||||||
WimaxNspInfo info = { loop, FALSE, FALSE, 0, 0 };
|
|
||||||
GVariant *ret;
|
|
||||||
GError *error = NULL;
|
|
||||||
char *expected_path = NULL;
|
|
||||||
|
|
||||||
sinfo = nmtstc_service_init ();
|
|
||||||
if (!nmtstc_service_available (sinfo))
|
|
||||||
return;
|
|
||||||
|
|
||||||
client = nm_client_new (NULL, &error);
|
|
||||||
g_assert_no_error (error);
|
|
||||||
|
|
||||||
/*************************************/
|
|
||||||
/* Add the wimax device */
|
|
||||||
wimax = (NMDeviceWimax *) nmtstc_service_add_device (sinfo, client, "AddWimaxDevice", "wmx0");
|
|
||||||
g_assert (NM_IS_DEVICE_WIMAX (wimax));
|
|
||||||
|
|
||||||
/*************************************/
|
|
||||||
/* Add the wimax NSP */
|
|
||||||
info.signaled = FALSE;
|
|
||||||
info.notified = FALSE;
|
|
||||||
info.quit_id = 0;
|
|
||||||
|
|
||||||
ret = g_dbus_proxy_call_sync (sinfo->proxy,
|
|
||||||
"AddWimaxNsp",
|
|
||||||
g_variant_new ("(ss)", "wmx0", expected_nsp_name),
|
|
||||||
G_DBUS_CALL_FLAGS_NO_AUTO_START,
|
|
||||||
3000,
|
|
||||||
NULL,
|
|
||||||
&error);
|
|
||||||
g_assert_no_error (error);
|
|
||||||
g_assert (ret);
|
|
||||||
g_assert_cmpstr (g_variant_get_type_string (ret), ==, "(o)");
|
|
||||||
g_variant_get (ret, "(o)", &expected_path);
|
|
||||||
g_variant_unref (ret);
|
|
||||||
|
|
||||||
g_signal_connect (wimax,
|
|
||||||
"nsp-added",
|
|
||||||
(GCallback) wimax_nsp_added_cb,
|
|
||||||
&info);
|
|
||||||
info.quit_count = 1;
|
|
||||||
|
|
||||||
g_signal_connect (wimax,
|
|
||||||
"notify::nsps",
|
|
||||||
(GCallback) wimax_nsp_add_notify_cb,
|
|
||||||
&info);
|
|
||||||
info.quit_count++;
|
|
||||||
|
|
||||||
/* Wait for libnm to find the AP */
|
|
||||||
info.quit_id = g_timeout_add_seconds (5, loop_quit, loop);
|
|
||||||
g_main_loop_run (loop);
|
|
||||||
|
|
||||||
g_assert (info.signaled);
|
|
||||||
g_assert (info.notified);
|
|
||||||
g_assert (info.nsp_path);
|
|
||||||
g_assert_cmpstr (info.nsp_path, ==, expected_path);
|
|
||||||
g_signal_handlers_disconnect_by_func (wimax, wimax_nsp_added_cb, &info);
|
|
||||||
g_signal_handlers_disconnect_by_func (wimax, wimax_nsp_add_notify_cb, &info);
|
|
||||||
|
|
||||||
/*************************************/
|
|
||||||
/* Remove the wimax NSP */
|
|
||||||
info.signaled = FALSE;
|
|
||||||
info.notified = FALSE;
|
|
||||||
info.quit_id = 0;
|
|
||||||
|
|
||||||
ret = g_dbus_proxy_call_sync (sinfo->proxy,
|
|
||||||
"RemoveWimaxNsp",
|
|
||||||
g_variant_new ("(so)", "wmx0", expected_path),
|
|
||||||
G_DBUS_CALL_FLAGS_NO_AUTO_START,
|
|
||||||
3000,
|
|
||||||
NULL,
|
|
||||||
&error);
|
|
||||||
g_assert_no_error (error);
|
|
||||||
g_clear_pointer (&ret, g_variant_unref);
|
|
||||||
|
|
||||||
g_signal_connect (wimax,
|
|
||||||
"nsp-removed",
|
|
||||||
(GCallback) wimax_nsp_removed_cb,
|
|
||||||
&info);
|
|
||||||
info.quit_count = 1;
|
|
||||||
|
|
||||||
g_signal_connect (wimax,
|
|
||||||
"notify::nsps",
|
|
||||||
(GCallback) wimax_nsp_remove_notify_cb,
|
|
||||||
&info);
|
|
||||||
info.quit_count++;
|
|
||||||
|
|
||||||
/* Wait for libnm to find the AP */
|
|
||||||
info.quit_id = g_timeout_add_seconds (5, loop_quit, loop);
|
|
||||||
g_main_loop_run (loop);
|
|
||||||
|
|
||||||
g_assert (info.signaled);
|
|
||||||
g_assert (info.notified);
|
|
||||||
g_signal_handlers_disconnect_by_func (wimax, wimax_nsp_removed_cb, &info);
|
|
||||||
g_signal_handlers_disconnect_by_func (wimax, wimax_nsp_remove_notify_cb, &info);
|
|
||||||
|
|
||||||
g_free (info.nsp_path);
|
|
||||||
g_free (expected_path);
|
|
||||||
|
|
||||||
g_object_unref (client);
|
|
||||||
g_clear_pointer (&sinfo, nmtstc_service_cleanup);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
GMainLoop *loop;
|
GMainLoop *loop;
|
||||||
gboolean signaled;
|
gboolean signaled;
|
||||||
@@ -1655,7 +1453,6 @@ main (int argc, char **argv)
|
|||||||
g_test_add_func ("/libnm/device-added", test_device_added);
|
g_test_add_func ("/libnm/device-added", test_device_added);
|
||||||
g_test_add_func ("/libnm/device-added-signal-after-init", test_device_added_signal_after_init);
|
g_test_add_func ("/libnm/device-added-signal-after-init", test_device_added_signal_after_init);
|
||||||
g_test_add_func ("/libnm/wifi-ap-added-removed", test_wifi_ap_added_removed);
|
g_test_add_func ("/libnm/wifi-ap-added-removed", test_wifi_ap_added_removed);
|
||||||
g_test_add_func ("/libnm/wimax-nsp-added-removed", test_wimax_nsp_added_removed);
|
|
||||||
g_test_add_func ("/libnm/devices-array", test_devices_array);
|
g_test_add_func ("/libnm/devices-array", test_devices_array);
|
||||||
g_test_add_func ("/libnm/client-nm-running", test_client_nm_running);
|
g_test_add_func ("/libnm/client-nm-running", test_client_nm_running);
|
||||||
g_test_add_func ("/libnm/active-connections", test_active_connections);
|
g_test_add_func ("/libnm/active-connections", test_active_connections);
|
||||||
|
@@ -330,7 +330,6 @@ IFACE_OBJECT_MANAGER = 'org.freedesktop.DBus.ObjectManager'
|
|||||||
IFACE_CONNECTION = 'org.freedesktop.NetworkManager.Settings.Connection'
|
IFACE_CONNECTION = 'org.freedesktop.NetworkManager.Settings.Connection'
|
||||||
IFACE_DEVICE = 'org.freedesktop.NetworkManager.Device'
|
IFACE_DEVICE = 'org.freedesktop.NetworkManager.Device'
|
||||||
IFACE_WIFI = 'org.freedesktop.NetworkManager.Device.Wireless'
|
IFACE_WIFI = 'org.freedesktop.NetworkManager.Device.Wireless'
|
||||||
IFACE_WIMAX = 'org.freedesktop.NetworkManager.Device.WiMax'
|
|
||||||
IFACE_TEST = 'org.freedesktop.NetworkManager.LibnmGlibTest'
|
IFACE_TEST = 'org.freedesktop.NetworkManager.LibnmGlibTest'
|
||||||
IFACE_NM = 'org.freedesktop.NetworkManager'
|
IFACE_NM = 'org.freedesktop.NetworkManager'
|
||||||
IFACE_SETTINGS = 'org.freedesktop.NetworkManager.Settings'
|
IFACE_SETTINGS = 'org.freedesktop.NetworkManager.Settings'
|
||||||
@@ -339,7 +338,6 @@ IFACE_AGENT = 'org.freedesktop.NetworkManager.SecretAgent'
|
|||||||
IFACE_WIRED = 'org.freedesktop.NetworkManager.Device.Wired'
|
IFACE_WIRED = 'org.freedesktop.NetworkManager.Device.Wired'
|
||||||
IFACE_VLAN = 'org.freedesktop.NetworkManager.Device.Vlan'
|
IFACE_VLAN = 'org.freedesktop.NetworkManager.Device.Vlan'
|
||||||
IFACE_WIFI_AP = 'org.freedesktop.NetworkManager.AccessPoint'
|
IFACE_WIFI_AP = 'org.freedesktop.NetworkManager.AccessPoint'
|
||||||
IFACE_WIMAX_NSP = 'org.freedesktop.NetworkManager.WiMax.Nsp'
|
|
||||||
IFACE_ACTIVE_CONNECTION = 'org.freedesktop.NetworkManager.Connection.Active'
|
IFACE_ACTIVE_CONNECTION = 'org.freedesktop.NetworkManager.Connection.Active'
|
||||||
IFACE_VPN_CONNECTION = 'org.freedesktop.NetworkManager.VPN.Connection'
|
IFACE_VPN_CONNECTION = 'org.freedesktop.NetworkManager.VPN.Connection'
|
||||||
IFACE_DNS_MANAGER = 'org.freedesktop.NetworkManager.DnsManager'
|
IFACE_DNS_MANAGER = 'org.freedesktop.NetworkManager.DnsManager'
|
||||||
@@ -376,9 +374,6 @@ class BusErr:
|
|||||||
class ApNotFoundException(dbus.DBusException):
|
class ApNotFoundException(dbus.DBusException):
|
||||||
_dbus_error_name = IFACE_WIFI + '.AccessPointNotFound'
|
_dbus_error_name = IFACE_WIFI + '.AccessPointNotFound'
|
||||||
|
|
||||||
class NspNotFoundException(dbus.DBusException):
|
|
||||||
_dbus_error_name = IFACE_WIMAX + '.NspNotFound'
|
|
||||||
|
|
||||||
class PermissionDeniedException(dbus.DBusException):
|
class PermissionDeniedException(dbus.DBusException):
|
||||||
_dbus_error_name = IFACE_NM + '.PermissionDenied'
|
_dbus_error_name = IFACE_NM + '.PermissionDenied'
|
||||||
|
|
||||||
@@ -1086,108 +1081,6 @@ class WifiDevice(Device):
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
PRP_WIMAX_NSP_NAME = "Name"
|
|
||||||
PRP_WIMAX_NSP_SIGNAL_QUALITY = "SignalQuality"
|
|
||||||
PRP_WIMAX_NSP_NETWORK_TYPE = "NetworkType"
|
|
||||||
|
|
||||||
class WimaxNsp(ExportedObj):
|
|
||||||
|
|
||||||
path_counter_next = 1
|
|
||||||
path_prefix = "/org/freedesktop/NetworkManager/Nsp/"
|
|
||||||
|
|
||||||
def __init__(self, name):
|
|
||||||
|
|
||||||
ExportedObj.__init__(self, ExportedObj.create_path(WimaxNsp))
|
|
||||||
|
|
||||||
strength = Util.random_int(self.path, 100)
|
|
||||||
|
|
||||||
props = {
|
|
||||||
PRP_WIMAX_NSP_NAME: name,
|
|
||||||
PRP_WIMAX_NSP_SIGNAL_QUALITY: dbus.UInt32(strength),
|
|
||||||
PRP_WIMAX_NSP_NETWORK_TYPE: dbus.UInt32(NM.WimaxNspNetworkType.HOME),
|
|
||||||
}
|
|
||||||
|
|
||||||
self.dbus_interface_add(IFACE_WIMAX_NSP, props, WimaxNsp.PropertiesChanged)
|
|
||||||
|
|
||||||
@dbus.service.signal(IFACE_WIMAX_NSP, signature='a{sv}')
|
|
||||||
def PropertiesChanged(self, changed):
|
|
||||||
pass
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
PRP_WIMAX_NSPS = "Nsps"
|
|
||||||
PRP_WIMAX_HW_ADDRESS = "HwAddress"
|
|
||||||
PRP_WIMAX_CENTER_FREQUENCY = "CenterFrequency"
|
|
||||||
PRP_WIMAX_RSSI = "Rssi"
|
|
||||||
PRP_WIMAX_CINR = "Cinr"
|
|
||||||
PRP_WIMAX_TX_POWER = "TxPower"
|
|
||||||
PRP_WIMAX_BSID = "Bsid"
|
|
||||||
PRP_WIMAX_ACTIVE_NSP = "ActiveNsp"
|
|
||||||
|
|
||||||
class WimaxDevice(Device):
|
|
||||||
def __init__(self, iface, ident = None):
|
|
||||||
Device.__init__(self, iface, NM.DeviceType.WIMAX, ident)
|
|
||||||
|
|
||||||
mac = Util.random_mac(self.ident)
|
|
||||||
bsid = Util.random_mac(self.ident + '.bsid')
|
|
||||||
|
|
||||||
self.nsps = []
|
|
||||||
|
|
||||||
props = {
|
|
||||||
PRP_WIMAX_HW_ADDRESS: mac,
|
|
||||||
PRP_WIMAX_CENTER_FREQUENCY: dbus.UInt32(2525),
|
|
||||||
PRP_WIMAX_RSSI: dbus.Int32(-48),
|
|
||||||
PRP_WIMAX_CINR: dbus.Int32(24),
|
|
||||||
PRP_WIMAX_TX_POWER: dbus.Int32(9),
|
|
||||||
PRP_WIMAX_BSID: bsid,
|
|
||||||
PRP_WIMAX_NSPS: ExportedObj.to_path_array(self.nsps),
|
|
||||||
PRP_WIMAX_ACTIVE_NSP: ExportedObj.to_path(None),
|
|
||||||
}
|
|
||||||
|
|
||||||
self.dbus_interface_add(IFACE_WIMAX, props, WimaxDevice.PropertiesChanged)
|
|
||||||
|
|
||||||
@dbus.service.method(dbus_interface=IFACE_WIMAX, in_signature='', out_signature='ao')
|
|
||||||
def GetNspList(self):
|
|
||||||
return ExportedObj.to_path_array(self.nsps)
|
|
||||||
|
|
||||||
@dbus.service.signal(IFACE_WIMAX, signature='o')
|
|
||||||
def NspAdded(self, nsp_path):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def add_nsp(self, nsp):
|
|
||||||
nsp.export()
|
|
||||||
self.nsps.append(nsp)
|
|
||||||
self._dbus_property_set(IFACE_WIMAX, PRP_WIMAX_NSPS, ExportedObj.to_path_array(self.nsps))
|
|
||||||
self.NspAdded(ExportedObj.to_path(nsp))
|
|
||||||
|
|
||||||
def remove_nsp(self, nsp):
|
|
||||||
self.nsps.remove(nsp)
|
|
||||||
self._dbus_property_set(IFACE_WIMAX, PRP_WIMAX_NSPS, ExportedObj.to_path_array(self.nsps))
|
|
||||||
self.NspRemoved(ExportedObj.to_path(nsp))
|
|
||||||
nsp.unexport()
|
|
||||||
|
|
||||||
@dbus.service.signal(IFACE_WIMAX, signature='o')
|
|
||||||
def NspRemoved(self, nsp_path):
|
|
||||||
pass
|
|
||||||
|
|
||||||
@dbus.service.signal(IFACE_WIMAX, signature='a{sv}')
|
|
||||||
def PropertiesChanged(self, changed):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def add_test_nsp(self, name):
|
|
||||||
nsp = WimaxNsp(name)
|
|
||||||
self.add_nsp(nsp)
|
|
||||||
return nsp
|
|
||||||
|
|
||||||
def remove_nsp_by_path(self, path):
|
|
||||||
for nsp in self.nsps:
|
|
||||||
if nsp.path == path:
|
|
||||||
self.remove_nsp(nsp)
|
|
||||||
return
|
|
||||||
raise BusErr.NspNotFoundException("NSP %s not found" % path)
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
PRP_ACTIVE_CONNECTION_CONNECTION = "Connection"
|
PRP_ACTIVE_CONNECTION_CONNECTION = "Connection"
|
||||||
PRP_ACTIVE_CONNECTION_SPECIFIC_OBJECT = "SpecificObject"
|
PRP_ACTIVE_CONNECTION_SPECIFIC_OBJECT = "SpecificObject"
|
||||||
PRP_ACTIVE_CONNECTION_ID = "Id"
|
PRP_ACTIVE_CONNECTION_ID = "Id"
|
||||||
@@ -1603,11 +1496,6 @@ class NetworkManager(ExportedObj):
|
|||||||
dev = WifiDevice(ifname)
|
dev = WifiDevice(ifname)
|
||||||
return ExportedObj.to_path(self.add_device(dev))
|
return ExportedObj.to_path(self.add_device(dev))
|
||||||
|
|
||||||
@dbus.service.method(IFACE_TEST, in_signature='s', out_signature='o')
|
|
||||||
def AddWimaxDevice(self, ifname):
|
|
||||||
dev = WimaxDevice(ifname)
|
|
||||||
return ExportedObj.to_path(self.add_device(dev))
|
|
||||||
|
|
||||||
@dbus.service.method(IFACE_TEST, in_signature='o', out_signature='')
|
@dbus.service.method(IFACE_TEST, in_signature='o', out_signature='')
|
||||||
def RemoveDevice(self, path):
|
def RemoveDevice(self, path):
|
||||||
d = self.find_device_first(path = path, require = TestError)
|
d = self.find_device_first(path = path, require = TestError)
|
||||||
@@ -1624,16 +1512,6 @@ class NetworkManager(ExportedObj):
|
|||||||
d = self.find_device_first(ident = ident, require = TestError)
|
d = self.find_device_first(ident = ident, require = TestError)
|
||||||
d.remove_ap_by_path(ap_path)
|
d.remove_ap_by_path(ap_path)
|
||||||
|
|
||||||
@dbus.service.method(IFACE_TEST, in_signature='ss', out_signature='o')
|
|
||||||
def AddWimaxNsp(self, ident, name):
|
|
||||||
d = self.find_device_first(ident = ident, require = TestError)
|
|
||||||
return ExportedObj.to_path(d.add_test_nsp(name))
|
|
||||||
|
|
||||||
@dbus.service.method(IFACE_TEST, in_signature='so', out_signature='')
|
|
||||||
def RemoveWimaxNsp(self, ident, nsp_path):
|
|
||||||
d = self.find_device_first(ident = ident, require = TestError)
|
|
||||||
d.remove_nsp_by_path(nsp_path)
|
|
||||||
|
|
||||||
@dbus.service.method(IFACE_TEST, in_signature='', out_signature='')
|
@dbus.service.method(IFACE_TEST, in_signature='', out_signature='')
|
||||||
def AutoRemoveNextConnection(self):
|
def AutoRemoveNextConnection(self):
|
||||||
gl.settings.auto_remove_next_connection()
|
gl.settings.auto_remove_next_connection()
|
||||||
|
Reference in New Issue
Block a user