libnm: fix NMActiveConnection object-path-valued properties (bgo #738103)

This commit is contained in:
Dan Winship 2014-10-10 13:10:28 -04:00
commit af8fb3da47
39 changed files with 265 additions and 272 deletions

View file

@ -594,7 +594,7 @@ get_ac_device_string (NMActiveConnection *active)
static NMActiveConnection *
get_ac_for_connection (const GPtrArray *active_cons, NMConnection *connection)
{
const char *con_path;
const char *con_path, *ac_con_path;
int i;
NMActiveConnection *ac = NULL;
@ -602,8 +602,11 @@ get_ac_for_connection (const GPtrArray *active_cons, NMConnection *connection)
con_path = nm_connection_get_path (connection);
for (i = 0; i < active_cons->len; i++) {
NMActiveConnection *candidate = g_ptr_array_index (active_cons, i);
NMRemoteConnection *con;
if (!g_strcmp0 (nm_active_connection_get_connection (candidate), con_path)) {
con = nm_active_connection_get_connection (candidate);
ac_con_path = nm_connection_get_path (NM_CONNECTION (con));
if (!g_strcmp0 (ac_con_path, con_path)) {
ac = candidate;
break;
}
@ -611,24 +614,6 @@ get_ac_for_connection (const GPtrArray *active_cons, NMConnection *connection)
return ac;
}
static NMConnection *
get_connection_for_active (const GSList *con_list, NMActiveConnection *active)
{
const GSList *iter;
const char *path;
path = nm_active_connection_get_connection (active);
g_return_val_if_fail (path != NULL, NULL);
for (iter = con_list; iter; iter = g_slist_next (iter)) {
NMConnection *candidate = NM_CONNECTION (iter->data);
if (strcmp (nm_connection_get_path (candidate), path) == 0)
return candidate;
}
return NULL;
}
static gboolean
nmc_connection_profile_details (NMConnection *connection, NmCli *nmc)
{
@ -713,15 +698,15 @@ find_active_connection (const GPtrArray *active_cons,
for (i = start; i < active_cons->len; i++) {
NMActiveConnection *candidate = g_ptr_array_index (active_cons, i);
path = nm_active_connection_get_connection (candidate);
con = NM_CONNECTION (nm_active_connection_get_connection (candidate));
id = nm_connection_get_id (con);
path = nm_connection_get_path (con);
a_path = nm_object_get_path (NM_OBJECT (candidate));
uuid = nm_active_connection_get_uuid (candidate);
path_num = path ? strrchr (path, '/') + 1 : NULL;
a_path_num = a_path ? strrchr (a_path, '/') + 1 : NULL;
con = get_connection_for_active (cons, candidate);
id = nm_connection_get_id (con);
/* When filter_type is NULL, compare connection ID (filter_val)
* against all types. Otherwise, only compare against the specific
* type. If 'path' or 'apath' filter types are specified, comparison
@ -813,21 +798,25 @@ fill_output_active_connection (NMActiveConnection *active,
gboolean with_group,
guint32 o_flags)
{
GSList *iter;
const char *active_path;
NMConnection *con;
NMSettingConnection *s_con;
const GPtrArray *devices;
GString *dev_str;
NMActiveConnectionState state;
NMDevice *master;
int i;
GSList *con_list = nmc->connections;
NmcOutputField *tmpl, *arr;
size_t tmpl_len;
int idx_start = with_group ? 0 : 1;
active_path = nm_active_connection_get_connection (active);
con = NM_CONNECTION (nm_active_connection_get_connection (active));
s_con = nm_connection_get_setting_connection (con);
g_assert (s_con != NULL);
state = nm_active_connection_get_state (active);
master = nm_active_connection_get_master (active);
/* Get devices of the active connection */
dev_str = g_string_new (NULL);
devices = nm_active_connection_get_devices (active);
@ -854,35 +843,19 @@ fill_output_active_connection (NMActiveConnection *active,
arr = nmc_dup_fields_array (tmpl, tmpl_len, o_flags);
if (with_group)
set_val_strc (arr, 0, nmc_fields_con_active_details_groups[0].name);
set_val_strc (arr, 1-idx_start, _("N/A"));
set_val_strc (arr, 1-idx_start, nm_setting_connection_get_id (s_con));
set_val_strc (arr, 2-idx_start, nm_active_connection_get_uuid (active));
set_val_str (arr, 3-idx_start, dev_str->str);
set_val_strc (arr, 4-idx_start, active_connection_state_to_string (state));
set_val_strc (arr, 5-idx_start, nm_active_connection_get_default (active) ? _("yes") : _("no"));
set_val_strc (arr, 6-idx_start, nm_active_connection_get_default6 (active) ? _("yes") : _("no"));
set_val_strc (arr, 7-idx_start, nm_active_connection_get_specific_object (active));
set_val_strc (arr, 7-idx_start, nm_active_connection_get_specific_object_path (active));
set_val_strc (arr, 8-idx_start, NM_IS_VPN_CONNECTION (active) ? _("yes") : _("no"));
set_val_strc (arr, 9-idx_start, nm_object_get_path (NM_OBJECT (active)));
set_val_strc (arr, 10-idx_start, nm_active_connection_get_connection (active));
set_val_strc (arr, 11-idx_start, _("N/A"));
set_val_strc (arr, 12-idx_start, nm_active_connection_get_master (active));
set_val_strc (arr, 10-idx_start, nm_connection_get_path (con));
set_val_strc (arr, 11-idx_start, nm_setting_connection_get_zone (s_con));
set_val_strc (arr, 12-idx_start, master ? nm_object_get_path (NM_OBJECT (master)) : NULL);
for (iter = con_list; iter; iter = g_slist_next (iter)) {
NMConnection *connection = (NMConnection *) iter->data;
const char *con_path = nm_connection_get_path (connection);
if (!strcmp (active_path, con_path)) {
/* This connection is active */
s_con = nm_connection_get_setting_connection (connection);
g_assert (s_con != NULL);
/* Fill field values that depend on NMConnection */
set_val_strc (arr, 1-idx_start, nm_setting_connection_get_id (s_con));
set_val_strc (arr, 11-idx_start, nm_setting_connection_get_zone (s_con));
break;
}
}
g_ptr_array_add (nmc->output_data, arr);
g_string_free (dev_str, FALSE);
@ -1097,7 +1070,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
char **vpn_data_array = NULL;
guint32 items_num;
con = get_connection_for_active (nmc->connections, acon);
con = NM_CONNECTION (nm_active_connection_get_connection (acon));
s_con = nm_connection_get_setting_connection (con);
g_assert (s_con != NULL);
@ -1350,7 +1323,7 @@ do_connections_show (NmCli *nmc, gboolean active_only, int argc, char **argv)
if (!con) {
acon = find_active_connection (active_cons, nmc->connections, selector, *argv, NULL);
if (acon)
con = get_connection_for_active (nmc->connections, acon);
con = NM_CONNECTION (nm_active_connection_get_connection (acon));
}
/* Print connection details */

View file

@ -445,15 +445,14 @@ connection_find_ac (NMConnection *conn,
const GPtrArray *acs)
{
NMActiveConnection *ac;
const char *path, *ac_path;
NMRemoteConnection *ac_conn;
int i;
path = nm_connection_get_path (conn);
for (i = 0; i < acs->len; i++) {
ac = acs->pdata[i];
ac_path = nm_active_connection_get_connection (ac);
ac_conn = nm_active_connection_get_connection (ac);
if (!g_strcmp0 (path, ac_path))
if (conn == NM_CONNECTION (ac_conn))
return ac;
}

View file

@ -51,6 +51,7 @@ libnminclude_HEADERS = \
nm-object.h \
nm-remote-connection.h \
nm-secret-agent.h \
nm-types.h \
nm-vpn-connection.h \
nm-vpn-plugin.h \
nm-vpn-plugin-ui-interface.h \

View file

@ -26,7 +26,7 @@ global:
nm_active_connection_get_ip4_config;
nm_active_connection_get_ip6_config;
nm_active_connection_get_master;
nm_active_connection_get_specific_object;
nm_active_connection_get_specific_object_path;
nm_active_connection_get_state;
nm_active_connection_get_type;
nm_active_connection_get_uuid;

View file

@ -26,11 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <glib.h>
#include <glib-object.h>
#include <nm-dbus-interface.h>
#include <nm-connection.h>
#include "nm-object.h"
#include <nm-object.h>
G_BEGIN_DECLS
@ -55,9 +51,9 @@ G_BEGIN_DECLS
#define NM_ACCESS_POINT_HW_ADDRESS "hw-address"
typedef struct {
struct _NMAccessPoint {
NMObject parent;
} NMAccessPoint;
};
typedef struct {
NMObjectClass parent;

View file

@ -31,6 +31,11 @@
#include "nm-vpn-connection.h"
#include "nm-glib-compat.h"
#include "nm-dbus-helpers.h"
#include "nm-dhcp4-config.h"
#include "nm-dhcp6-config.h"
#include "nm-ip4-config.h"
#include "nm-ip6-config.h"
#include "nm-remote-connection.h"
static GType _nm_active_connection_decide_type (GVariant *value);
@ -44,11 +49,11 @@ G_DEFINE_TYPE_WITH_CODE (NMActiveConnection, nm_active_connection, NM_TYPE_OBJEC
#define NM_ACTIVE_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_ACTIVE_CONNECTION, NMActiveConnectionPrivate))
typedef struct {
char *connection;
NMRemoteConnection *connection;
char *id;
char *uuid;
char *type;
char *specific_object;
char *specific_object_path;
GPtrArray *devices;
NMActiveConnectionState state;
gboolean is_default;
@ -58,7 +63,7 @@ typedef struct {
NMIP6Config *ip6_config;
NMDhcp6Config *dhcp6_config;
gboolean is_vpn;
char *master;
NMDevice *master;
} NMActiveConnectionPrivate;
enum {
@ -67,7 +72,7 @@ enum {
PROP_ID,
PROP_UUID,
PROP_TYPE,
PROP_SPECIFIC_OBJECT,
PROP_SPECIFIC_OBJECT_PATH,
PROP_DEVICES,
PROP_STATE,
PROP_DEFAULT,
@ -96,15 +101,12 @@ _nm_active_connection_decide_type (GVariant *value)
* nm_active_connection_get_connection:
* @connection: a #NMActiveConnection
*
* Gets the #NMConnection's DBus object path. This is often used with
* nm_remote_settings_get_connection_by_path() to retrieve the
* #NMRemoteConnection object that describes the connection.
* Gets the #NMRemoteConnection associated with @connection.
*
* Returns: the object path of the #NMConnection which this #NMActiveConnection
* is an active instance of. This is the internal string used by the
* connection, and must not be modified.
* Returns: (transfer none): the #NMRemoteConnection which this
* #NMActiveConnection is an active instance of.
**/
const char *
NMRemoteConnection *
nm_active_connection_get_connection (NMActiveConnection *connection)
{
g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL);
@ -164,20 +166,26 @@ nm_active_connection_get_connection_type (NMActiveConnection *connection)
}
/**
* nm_active_connection_get_specific_object:
* nm_active_connection_get_specific_object_path:
* @connection: a #NMActiveConnection
*
* Gets the "specific object" used at the activation.
* Gets the path of the "specific object" used at activation.
*
* Returns: the specific object's DBus path. This is the internal string used by the
* connection, and must not be modified.
* Currently there is no single method that will allow you to automatically turn
* this into an appropriate #NMObject; you need to know what kind of object it
* is based on other information. (Eg, if @connection corresponds to a Wi-Fi
* connection, then the specific object will be an #NMAccessPoint, and you can
* resolve it with nm_device_wifi_get_access_point_by_path().)
*
* Returns: the specific object's D-Bus path. This is the internal string used
* by the connection, and must not be modified.
**/
const char *
nm_active_connection_get_specific_object (NMActiveConnection *connection)
nm_active_connection_get_specific_object_path (NMActiveConnection *connection)
{
g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL);
return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->specific_object;
return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->specific_object_path;
}
/**
@ -341,12 +349,11 @@ nm_active_connection_get_vpn (NMActiveConnection *connection)
* nm_active_connection_get_master:
* @connection: a #NMActiveConnection
*
* Gets the path to the master #NMDevice of the connection.
* Gets the master #NMDevice of the connection.
*
* Returns: the path of the master #NMDevice of the #NMActiveConnection.
* This is the internal string used by the connection, and must not be modified.
* Returns: (transfer none): the master #NMDevice of the #NMActiveConnection.
**/
const char *
NMDevice *
nm_active_connection_get_master (NMActiveConnection *connection)
{
g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL);
@ -366,6 +373,8 @@ dispose (GObject *object)
g_clear_pointer (&priv->devices, g_ptr_array_unref);
g_clear_object (&priv->connection);
g_clear_object (&priv->master);
g_clear_object (&priv->ip4_config);
g_clear_object (&priv->dhcp4_config);
g_clear_object (&priv->ip6_config);
@ -379,12 +388,10 @@ finalize (GObject *object)
{
NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (object);
g_free (priv->connection);
g_free (priv->id);
g_free (priv->uuid);
g_free (priv->type);
g_free (priv->specific_object);
g_free (priv->master);
g_free (priv->specific_object_path);
G_OBJECT_CLASS (nm_active_connection_parent_class)->finalize (object);
}
@ -399,7 +406,7 @@ get_property (GObject *object,
switch (prop_id) {
case PROP_CONNECTION:
g_value_set_string (value, nm_active_connection_get_connection (self));
g_value_set_object (value, nm_active_connection_get_connection (self));
break;
case PROP_ID:
g_value_set_string (value, nm_active_connection_get_id (self));
@ -410,8 +417,8 @@ get_property (GObject *object,
case PROP_TYPE:
g_value_set_string (value, nm_active_connection_get_connection_type (self));
break;
case PROP_SPECIFIC_OBJECT:
g_value_set_boxed (value, nm_active_connection_get_specific_object (self));
case PROP_SPECIFIC_OBJECT_PATH:
g_value_set_string (value, nm_active_connection_get_specific_object_path (self));
break;
case PROP_DEVICES:
g_value_take_boxed (value, _nm_utils_copy_object_array (nm_active_connection_get_devices (self)));
@ -441,7 +448,7 @@ get_property (GObject *object,
g_value_set_boolean (value, nm_active_connection_get_vpn (self));
break;
case PROP_MASTER:
g_value_set_string (value, nm_active_connection_get_master (self));
g_value_set_object (value, nm_active_connection_get_master (self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@ -454,21 +461,21 @@ init_dbus (NMObject *object)
{
NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (object);
const NMPropertiesInfo property_info[] = {
{ NM_ACTIVE_CONNECTION_CONNECTION, &priv->connection },
{ NM_ACTIVE_CONNECTION_ID, &priv->id },
{ NM_ACTIVE_CONNECTION_UUID, &priv->uuid },
{ NM_ACTIVE_CONNECTION_TYPE, &priv->type },
{ NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT, &priv->specific_object },
{ NM_ACTIVE_CONNECTION_DEVICES, &priv->devices, NULL, NM_TYPE_DEVICE },
{ NM_ACTIVE_CONNECTION_STATE, &priv->state },
{ NM_ACTIVE_CONNECTION_DEFAULT, &priv->is_default },
{ NM_ACTIVE_CONNECTION_IP4_CONFIG, &priv->ip4_config, NULL, NM_TYPE_IP4_CONFIG },
{ NM_ACTIVE_CONNECTION_DHCP4_CONFIG, &priv->dhcp4_config, NULL, NM_TYPE_DHCP4_CONFIG },
{ NM_ACTIVE_CONNECTION_DEFAULT6, &priv->is_default6 },
{ NM_ACTIVE_CONNECTION_IP6_CONFIG, &priv->ip6_config, NULL, NM_TYPE_IP6_CONFIG },
{ NM_ACTIVE_CONNECTION_DHCP6_CONFIG, &priv->dhcp6_config, NULL, NM_TYPE_DHCP6_CONFIG },
{ NM_ACTIVE_CONNECTION_VPN, &priv->is_vpn },
{ NM_ACTIVE_CONNECTION_MASTER, &priv->master },
{ NM_ACTIVE_CONNECTION_CONNECTION, &priv->connection, NULL, NM_TYPE_REMOTE_CONNECTION },
{ NM_ACTIVE_CONNECTION_ID, &priv->id },
{ NM_ACTIVE_CONNECTION_UUID, &priv->uuid },
{ NM_ACTIVE_CONNECTION_TYPE, &priv->type },
{ NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT_PATH, &priv->specific_object_path },
{ NM_ACTIVE_CONNECTION_DEVICES, &priv->devices, NULL, NM_TYPE_DEVICE },
{ NM_ACTIVE_CONNECTION_STATE, &priv->state },
{ NM_ACTIVE_CONNECTION_DEFAULT, &priv->is_default },
{ NM_ACTIVE_CONNECTION_IP4_CONFIG, &priv->ip4_config, NULL, NM_TYPE_IP4_CONFIG },
{ NM_ACTIVE_CONNECTION_DHCP4_CONFIG, &priv->dhcp4_config, NULL, NM_TYPE_DHCP4_CONFIG },
{ NM_ACTIVE_CONNECTION_DEFAULT6, &priv->is_default6 },
{ NM_ACTIVE_CONNECTION_IP6_CONFIG, &priv->ip6_config, NULL, NM_TYPE_IP6_CONFIG },
{ NM_ACTIVE_CONNECTION_DHCP6_CONFIG, &priv->dhcp6_config, NULL, NM_TYPE_DHCP6_CONFIG },
{ NM_ACTIVE_CONNECTION_VPN, &priv->is_vpn },
{ NM_ACTIVE_CONNECTION_MASTER, &priv->master, NULL, NM_TYPE_DEVICE },
{ NULL },
};
@ -503,12 +510,12 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class)
/**
* NMActiveConnection:connection:
*
* The connection's path of the active connection.
* The connection that this is an active instance of.
**/
g_object_class_install_property
(object_class, PROP_CONNECTION,
g_param_spec_string (NM_ACTIVE_CONNECTION_CONNECTION, "", "",
NULL,
g_param_spec_object (NM_ACTIVE_CONNECTION_CONNECTION, "", "",
NM_TYPE_REMOTE_CONNECTION,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS));
@ -549,13 +556,14 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class)
G_PARAM_STATIC_STRINGS));
/**
* NMActiveConnection:specific-object:
* NMActiveConnection:specific-object-path:
*
* The specific object's path of the active connection.
* The path to the "specific object" of the active connection; see
* nm_active_connection_get_specific_object_path() for more details.
**/
g_object_class_install_property
(object_class, PROP_SPECIFIC_OBJECT,
g_param_spec_string (NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT, "", "",
(object_class, PROP_SPECIFIC_OBJECT_PATH,
g_param_spec_string (NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT_PATH, "", "",
NULL,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS));
@ -674,12 +682,12 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class)
/**
* NMActiveConnection:master:
*
* The path of the master device if one exists.
* The master device if one exists.
**/
g_object_class_install_property
(object_class, PROP_MASTER,
g_param_spec_string (NM_ACTIVE_CONNECTION_MASTER, "", "",
NULL,
g_param_spec_object (NM_ACTIVE_CONNECTION_MASTER, "", "",
NM_TYPE_DEVICE,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS));
}

View file

@ -26,15 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <glib.h>
#include <glib-object.h>
#include "nm-object.h"
#include <nm-connection.h>
#include <nm-dbus-interface.h>
#include "nm-ip4-config.h"
#include "nm-dhcp4-config.h"
#include "nm-ip6-config.h"
#include "nm-dhcp6-config.h"
#include <nm-object.h>
G_BEGIN_DECLS
@ -45,25 +37,25 @@ G_BEGIN_DECLS
#define NM_IS_ACTIVE_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_ACTIVE_CONNECTION))
#define NM_ACTIVE_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_ACTIVE_CONNECTION, NMActiveConnectionClass))
#define NM_ACTIVE_CONNECTION_CONNECTION "connection"
#define NM_ACTIVE_CONNECTION_ID "id"
#define NM_ACTIVE_CONNECTION_UUID "uuid"
#define NM_ACTIVE_CONNECTION_TYPE "type"
#define NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT "specific-object"
#define NM_ACTIVE_CONNECTION_DEVICES "devices"
#define NM_ACTIVE_CONNECTION_STATE "state"
#define NM_ACTIVE_CONNECTION_DEFAULT "default"
#define NM_ACTIVE_CONNECTION_IP4_CONFIG "ip4-config"
#define NM_ACTIVE_CONNECTION_DHCP4_CONFIG "dhcp4-config"
#define NM_ACTIVE_CONNECTION_DEFAULT6 "default6"
#define NM_ACTIVE_CONNECTION_IP6_CONFIG "ip6-config"
#define NM_ACTIVE_CONNECTION_DHCP6_CONFIG "dhcp6-config"
#define NM_ACTIVE_CONNECTION_VPN "vpn"
#define NM_ACTIVE_CONNECTION_MASTER "master"
#define NM_ACTIVE_CONNECTION_CONNECTION "connection"
#define NM_ACTIVE_CONNECTION_ID "id"
#define NM_ACTIVE_CONNECTION_UUID "uuid"
#define NM_ACTIVE_CONNECTION_TYPE "type"
#define NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT_PATH "specific-object-path"
#define NM_ACTIVE_CONNECTION_DEVICES "devices"
#define NM_ACTIVE_CONNECTION_STATE "state"
#define NM_ACTIVE_CONNECTION_DEFAULT "default"
#define NM_ACTIVE_CONNECTION_IP4_CONFIG "ip4-config"
#define NM_ACTIVE_CONNECTION_DHCP4_CONFIG "dhcp4-config"
#define NM_ACTIVE_CONNECTION_DEFAULT6 "default6"
#define NM_ACTIVE_CONNECTION_IP6_CONFIG "ip6-config"
#define NM_ACTIVE_CONNECTION_DHCP6_CONFIG "dhcp6-config"
#define NM_ACTIVE_CONNECTION_VPN "vpn"
#define NM_ACTIVE_CONNECTION_MASTER "master"
typedef struct {
struct _NMActiveConnection {
NMObject parent;
} NMActiveConnection;
};
typedef struct {
NMObjectClass parent;
@ -74,21 +66,21 @@ typedef struct {
GType nm_active_connection_get_type (void);
const char * nm_active_connection_get_connection (NMActiveConnection *connection);
const char * nm_active_connection_get_id (NMActiveConnection *connection);
const char * nm_active_connection_get_uuid (NMActiveConnection *connection);
const char * nm_active_connection_get_connection_type (NMActiveConnection *connection);
const char * nm_active_connection_get_specific_object (NMActiveConnection *connection);
const GPtrArray *nm_active_connection_get_devices (NMActiveConnection *connection);
NMActiveConnectionState nm_active_connection_get_state (NMActiveConnection *connection);
const char * nm_active_connection_get_master (NMActiveConnection *connection);
gboolean nm_active_connection_get_default (NMActiveConnection *connection);
NMIP4Config * nm_active_connection_get_ip4_config (NMActiveConnection *connection);
NMDhcp4Config *nm_active_connection_get_dhcp4_config (NMActiveConnection *connection);
gboolean nm_active_connection_get_default6 (NMActiveConnection *connection);
NMIP6Config * nm_active_connection_get_ip6_config (NMActiveConnection *connection);
NMDhcp6Config *nm_active_connection_get_dhcp6_config (NMActiveConnection *connection);
gboolean nm_active_connection_get_vpn (NMActiveConnection *connection);
NMRemoteConnection *nm_active_connection_get_connection (NMActiveConnection *connection);
const char *nm_active_connection_get_id (NMActiveConnection *connection);
const char *nm_active_connection_get_uuid (NMActiveConnection *connection);
const char *nm_active_connection_get_connection_type (NMActiveConnection *connection);
const char *nm_active_connection_get_specific_object_path (NMActiveConnection *connection);
const GPtrArray *nm_active_connection_get_devices (NMActiveConnection *connection);
NMActiveConnectionState nm_active_connection_get_state (NMActiveConnection *connection);
NMDevice *nm_active_connection_get_master (NMActiveConnection *connection);
gboolean nm_active_connection_get_default (NMActiveConnection *connection);
NMIP4Config *nm_active_connection_get_ip4_config (NMActiveConnection *connection);
NMDhcp4Config *nm_active_connection_get_dhcp4_config (NMActiveConnection *connection);
gboolean nm_active_connection_get_default6 (NMActiveConnection *connection);
NMIP6Config *nm_active_connection_get_ip6_config (NMActiveConnection *connection);
NMDhcp6Config *nm_active_connection_get_dhcp6_config (NMActiveConnection *connection);
gboolean nm_active_connection_get_vpn (NMActiveConnection *connection);
G_END_DECLS

View file

@ -31,6 +31,7 @@
#include "nm-core-internal.h"
#include "nm-active-connection.h"
#include "nm-vpn-connection.h"
#include "nm-remote-connection.h"
#include "nm-object-cache.h"
#include "nm-glib-compat.h"
#include "nm-dbus-helpers.h"

View file

@ -26,15 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <glib.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <nm-dbus-interface.h>
#include "nm-device.h"
#include "nm-active-connection.h"
#include "nm-remote-connection.h"
#include "nm-vpn-connection.h"
#include <nm-types.h>
G_BEGIN_DECLS
@ -159,9 +151,9 @@ typedef enum {
#define NM_CLIENT_ERROR nm_client_error_quark ()
GQuark nm_client_error_quark (void);
typedef struct {
struct _NMClient {
GObject parent;
} NMClient;
};
typedef struct {
GObjectClass parent;

View file

@ -25,7 +25,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-device.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -53,9 +53,9 @@ GQuark nm_device_adsl_error_quark (void);
#define NM_DEVICE_ADSL_CARRIER "carrier"
typedef struct {
struct _NMDeviceAdsl {
NMDevice parent;
} NMDeviceAdsl;
};
typedef struct {
NMDeviceClass parent;

View file

@ -25,7 +25,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-device.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -57,9 +57,9 @@ GQuark nm_device_bond_error_quark (void);
#define NM_DEVICE_BOND_CARRIER "carrier"
#define NM_DEVICE_BOND_SLAVES "slaves"
typedef struct {
struct _NMDeviceBond {
NMDevice parent;
} NMDeviceBond;
};
typedef struct {
NMDeviceClass parent;

View file

@ -25,7 +25,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-device.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -57,9 +57,9 @@ GQuark nm_device_bridge_error_quark (void);
#define NM_DEVICE_BRIDGE_CARRIER "carrier"
#define NM_DEVICE_BRIDGE_SLAVES "slaves"
typedef struct {
struct _NMDeviceBridge {
NMDevice parent;
} NMDeviceBridge;
};
typedef struct {
NMDeviceClass parent;

View file

@ -26,8 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-dbus-interface.h"
#include "nm-device.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -63,9 +62,9 @@ GQuark nm_device_bt_error_quark (void);
#define NM_DEVICE_BT_NAME "name"
#define NM_DEVICE_BT_CAPABILITIES "bt-capabilities"
typedef struct {
struct _NMDeviceBt {
NMDevice parent;
} NMDeviceBt;
};
typedef struct {
NMDeviceClass parent;

View file

@ -26,7 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-device.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -61,9 +61,9 @@ GQuark nm_device_ethernet_error_quark (void);
#define NM_DEVICE_ETHERNET_SPEED "speed"
#define NM_DEVICE_ETHERNET_CARRIER "carrier"
typedef struct {
struct _NMDeviceEthernet {
NMDevice parent;
} NMDeviceEthernet;
};
typedef struct {
NMDeviceClass parent;

View file

@ -25,7 +25,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-device.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -54,9 +54,9 @@ GQuark nm_device_generic_error_quark (void);
#define NM_DEVICE_GENERIC_HW_ADDRESS "hw-address"
#define NM_DEVICE_GENERIC_TYPE_DESCRIPTION "type-description"
typedef struct {
struct _NMDeviceGeneric {
NMDevice parent;
} NMDeviceGeneric;
};
typedef struct {
NMDeviceClass parent;

View file

@ -25,7 +25,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-device.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -58,9 +58,9 @@ GQuark nm_device_infiniband_error_quark (void);
#define NM_DEVICE_INFINIBAND_HW_ADDRESS "hw-address"
#define NM_DEVICE_INFINIBAND_CARRIER "carrier"
typedef struct {
struct _NMDeviceInfiniband {
NMDevice parent;
} NMDeviceInfiniband;
};
typedef struct {
NMDeviceClass parent;

View file

@ -26,7 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-device.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -57,9 +57,9 @@ GQuark nm_device_modem_error_quark (void);
#define NM_DEVICE_MODEM_MODEM_CAPABILITIES "modem-capabilities"
#define NM_DEVICE_MODEM_CURRENT_CAPABILITIES "current-capabilities"
typedef struct {
struct _NMDeviceModem {
NMDevice parent;
} NMDeviceModem;
};
typedef struct {
NMDeviceClass parent;

View file

@ -25,8 +25,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-device.h"
#include "nm-device-wifi.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -56,9 +55,9 @@ GQuark nm_device_olpc_mesh_error_quark (void);
#define NM_DEVICE_OLPC_MESH_COMPANION "companion"
#define NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL "active-channel"
typedef struct {
struct _NMDeviceOlpcMesh {
NMDevice parent;
} NMDeviceOlpcMesh;
};
typedef struct {
NMDeviceClass parent;

View file

@ -25,7 +25,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-device.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -57,9 +57,9 @@ GQuark nm_device_team_error_quark (void);
#define NM_DEVICE_TEAM_CARRIER "carrier"
#define NM_DEVICE_TEAM_SLAVES "slaves"
typedef struct {
struct _NMDeviceTeam {
NMDevice parent;
} NMDeviceTeam;
};
typedef struct {
NMDeviceClass parent;

View file

@ -25,7 +25,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-device.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -61,9 +61,9 @@ GQuark nm_device_vlan_error_quark (void);
#define NM_DEVICE_VLAN_CARRIER "carrier"
#define NM_DEVICE_VLAN_VLAN_ID "vlan-id"
typedef struct {
struct _NMDeviceVlan {
NMDevice parent;
} NMDeviceVlan;
};
typedef struct {
NMDeviceClass parent;

View file

@ -30,6 +30,7 @@
#include <nm-utils.h>
#include "nm-device-wifi.h"
#include "nm-access-point.h"
#include "nm-device-private.h"
#include "nm-object-private.h"
#include "nm-object-cache.h"

View file

@ -26,8 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-device.h"
#include "nm-access-point.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -71,9 +70,9 @@ GQuark nm_device_wifi_error_quark (void);
#define NM_DEVICE_WIFI_CAPABILITIES "wireless-capabilities"
#define NM_DEVICE_WIFI_ACCESS_POINTS "access-points"
typedef struct {
struct _NMDeviceWifi {
NMDevice parent;
} NMDeviceWifi;
};
typedef struct {
NMDeviceClass parent;

View file

@ -29,6 +29,7 @@
#include <nm-utils.h>
#include "nm-device-wimax.h"
#include "nm-wimax-nsp.h"
#include "nm-object-private.h"
#include "nm-object-cache.h"
#include "nm-core-internal.h"

View file

@ -26,8 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include "nm-device.h"
#include "nm-wimax-nsp.h"
#include <nm-device.h>
G_BEGIN_DECLS
@ -66,9 +65,9 @@ GQuark nm_device_wimax_error_quark (void);
#define NM_DEVICE_WIMAX_BSID "bsid"
#define NM_DEVICE_WIMAX_NSPS "nsps"
typedef struct {
struct _NMDeviceWimax {
NMDevice parent;
} NMDeviceWimax;
};
typedef struct {
NMDeviceClass parent;

View file

@ -25,6 +25,7 @@
#include <gudev/gudev.h>
#include "nm-dbus-interface.h"
#include "nm-active-connection.h"
#include "nm-device-ethernet.h"
#include "nm-device-adsl.h"
#include "nm-device-wifi.h"
@ -40,6 +41,10 @@
#include "nm-device-generic.h"
#include "nm-device.h"
#include "nm-device-private.h"
#include "nm-dhcp4-config.h"
#include "nm-dhcp6-config.h"
#include "nm-ip4-config.h"
#include "nm-ip6-config.h"
#include "nm-object-private.h"
#include "nm-object-cache.h"
#include "nm-remote-connection.h"

View file

@ -26,16 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <glib.h>
#include <glib-object.h>
#include "nm-object.h"
#include "nm-dbus-interface.h"
#include "nm-ip4-config.h"
#include "nm-dhcp4-config.h"
#include "nm-ip6-config.h"
#include "nm-dhcp6-config.h"
#include "nm-connection.h"
#include "nm-active-connection.h"
#include <nm-object.h>
G_BEGIN_DECLS
@ -84,9 +75,9 @@ GQuark nm_device_error_quark (void);
#define NM_DEVICE_PHYSICAL_PORT_ID "physical-port-id"
#define NM_DEVICE_MTU "mtu"
typedef struct {
struct _NMDevice {
NMObject parent;
} NMDevice;
};
typedef struct {
NMObjectClass parent;

View file

@ -26,9 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <glib.h>
#include <glib-object.h>
#include "nm-object.h"
#include <nm-object.h>
G_BEGIN_DECLS
@ -38,9 +36,9 @@ G_BEGIN_DECLS
#define NM_IS_DHCP4_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DHCP4_CONFIG))
#define NM_IS_DHCP4_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP4_CONFIG))
typedef struct {
struct _NMDhcp4Config {
NMObject parent;
} NMDhcp4Config;
};
typedef struct {
NMObjectClass parent;

View file

@ -26,9 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <glib.h>
#include <glib-object.h>
#include "nm-object.h"
#include <nm-object.h>
G_BEGIN_DECLS
@ -38,9 +36,9 @@ G_BEGIN_DECLS
#define NM_IS_DHCP6_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DHCP6_CONFIG))
#define NM_IS_DHCP6_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP6_CONFIG))
typedef struct {
struct _NMDhcp6Config {
NMObject parent;
} NMDhcp6Config;
};
typedef struct {
NMObjectClass parent;

View file

@ -26,9 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <glib.h>
#include <glib-object.h>
#include "nm-object.h"
#include <nm-object.h>
G_BEGIN_DECLS
@ -39,9 +37,9 @@ G_BEGIN_DECLS
#define NM_IS_IP4_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_IP4_CONFIG))
#define NM_IP4_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_IP4_CONFIG, NMIP4ConfigClass))
typedef struct {
struct _NMIP4Config {
NMObject parent;
} NMIP4Config;
};
typedef struct {
NMObjectClass parent;

View file

@ -26,9 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <glib.h>
#include <glib-object.h>
#include "nm-object.h"
#include <nm-object.h>
G_BEGIN_DECLS
@ -39,9 +37,9 @@ G_BEGIN_DECLS
#define NM_IS_IP6_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_IP6_CONFIG))
#define NM_IP6_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_IP6_CONFIG, NMIP6ConfigClass))
typedef struct {
struct _NMIP6Config {
NMObject parent;
} NMIP6Config;
};
typedef struct {
NMObjectClass parent;

View file

@ -22,8 +22,8 @@
#ifndef __NM_MANAGER_H__
#define __NM_MANAGER_H__
#include "nm-client.h"
#include "nm-object.h"
#include <nm-object.h>
#include <nm-client.h>
G_BEGIN_DECLS

View file

@ -26,9 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <gio/gio.h>
#include <nm-version.h>
#include <nm-types.h>
G_BEGIN_DECLS
@ -58,9 +56,9 @@ GQuark nm_object_error_quark (void);
#define NM_OBJECT_PATH "path"
#define NM_OBJECT_DBUS_CONNECTION "dbus-connection"
typedef struct {
struct _NMObject {
GObject parent;
} NMObject;
};
typedef struct {
GObjectClass parent;

View file

@ -26,7 +26,6 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <nm-connection.h>
#include <nm-object.h>
G_BEGIN_DECLS
@ -58,9 +57,9 @@ GQuark nm_remote_connection_error_quark (void);
#define NM_REMOTE_CONNECTION_UNSAVED "unsaved"
#define NM_REMOTE_CONNECTION_VISIBLE "visible"
typedef struct {
struct _NMRemoteConnection {
NMObject parent;
} NMRemoteConnection;
};
typedef struct {
NMObjectClass parent_class;

View file

@ -25,6 +25,7 @@
#include "nm-remote-settings.h"
#include "nm-client.h"
#include "nm-remote-connection.h"
#include "nm-remote-connection-private.h"
#include "nm-object-private.h"
#include "nm-dbus-helpers.h"

View file

@ -22,10 +22,7 @@
#ifndef __NM_REMOTE_SETTINGS_H__
#define __NM_REMOTE_SETTINGS_H__
#include <gio/gio.h>
#include <nm-object.h>
#include <nm-connection.h>
#include <nm-remote-connection.h>
G_BEGIN_DECLS

View file

@ -25,8 +25,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <gio/gio.h>
#include <nm-connection.h>
#include <nm-types.h>
G_BEGIN_DECLS
@ -72,9 +71,9 @@ typedef enum {
#define NM_SECRET_AGENT_REGISTERED "registered"
#define NM_SECRET_AGENT_CAPABILITIES "capabilities"
typedef struct {
struct _NMSecretAgent {
GObject parent;
} NMSecretAgent;
};
/**
* NMSecretAgentGetSecretsFunc:

56
libnm/nm-types.h Normal file
View file

@ -0,0 +1,56 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* NetworkManager -- Network link manager
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright 2014 Red Hat, Inc.
*/
#ifndef __NM_TYPES_H__
#define __NM_TYPES_H__
#include <gio/gio.h>
#include <nm-dbus-interface.h>
#include <nm-connection.h>
typedef struct _NMAccessPoint NMAccessPoint;
typedef struct _NMActiveConnection NMActiveConnection;
typedef struct _NMClient NMClient;
typedef struct _NMDevice NMDevice;
typedef struct _NMDeviceAdsl NMDeviceAdsl;
typedef struct _NMDeviceBond NMDeviceBond;
typedef struct _NMDeviceBridge NMDeviceBridge;
typedef struct _NMDeviceBt NMDeviceBt;
typedef struct _NMDeviceEthernet NMDeviceEthernet;
typedef struct _NMDeviceGeneric NMDeviceGeneric;
typedef struct _NMDeviceInfiniband NMDeviceInfiniband;
typedef struct _NMDeviceModem NMDeviceModem;
typedef struct _NMDeviceOlpcMesh NMDeviceOlpcMesh;
typedef struct _NMDeviceTeam NMDeviceTeam;
typedef struct _NMDeviceVlan NMDeviceVlan;
typedef struct _NMDeviceWifi NMDeviceWifi;
typedef struct _NMDeviceWimax NMDeviceWimax;
typedef struct _NMDhcp4Config NMDhcp4Config;
typedef struct _NMDhcp6Config NMDhcp6Config;
typedef struct _NMIP4Config NMIP4Config;
typedef struct _NMIP6Config NMIP6Config;
typedef struct _NMObject NMObject;
typedef struct _NMRemoteConnection NMRemoteConnection;
typedef struct _NMSecretAgent NMSecretAgent;
typedef struct _NMVpnConnection NMVpnConnection;
typedef struct _NMWimaxNsp NMWimaxNsp;
#endif /* NM_TYPES_H */

View file

@ -26,10 +26,8 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <glib.h>
#include <glib-object.h>
#include "nm-active-connection.h"
#include "nm-vpn-dbus-interface.h"
#include <nm-active-connection.h>
#include <nm-vpn-dbus-interface.h>
G_BEGIN_DECLS
@ -43,9 +41,9 @@ G_BEGIN_DECLS
#define NM_VPN_CONNECTION_VPN_STATE "vpn-state"
#define NM_VPN_CONNECTION_BANNER "banner"
typedef struct {
struct _NMVpnConnection {
NMActiveConnection parent;
} NMVpnConnection;
};
typedef struct {
NMActiveConnectionClass parent;

View file

@ -26,10 +26,7 @@
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <glib.h>
#include <glib-object.h>
#include <nm-dbus-interface.h>
#include "nm-object.h"
#include <nm-object.h>
G_BEGIN_DECLS
@ -51,9 +48,9 @@ typedef enum {
NM_WIMAX_NSP_NETWORK_TYPE_ROAMING_PARTNER = 3
} NMWimaxNspNetworkType;
typedef struct {
struct _NMWimaxNsp {
NMObject parent;
} NMWimaxNsp;
};
typedef struct {
NMObjectClass parent;