mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-07 18:20:22 +01:00
libnm-glib: add code to get "Version" property
This commit is contained in:
parent
11a68133c4
commit
e7d2eb43f7
4 changed files with 64 additions and 1 deletions
|
|
@ -140,7 +140,7 @@ libnm_glib_la_LIBADD = \
|
|||
$(GUDEV_LIBS)
|
||||
|
||||
libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-glib.ver \
|
||||
-version-info "3:1:0"
|
||||
-version-info "4:0:1"
|
||||
|
||||
noinst_PROGRAMS = libnm-glib-test
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ global:
|
|||
nm_client_get_devices;
|
||||
nm_client_get_manager_running;
|
||||
nm_client_get_permission_result;
|
||||
nm_client_get_version;
|
||||
nm_client_get_state;
|
||||
nm_client_get_type;
|
||||
nm_client_networking_get_enabled;
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ typedef struct {
|
|||
DBusGProxy *client_proxy;
|
||||
DBusGProxy *bus_proxy;
|
||||
gboolean manager_running;
|
||||
char *version;
|
||||
NMState state;
|
||||
GPtrArray *devices;
|
||||
GPtrArray *active_connections;
|
||||
|
|
@ -75,6 +76,7 @@ typedef struct {
|
|||
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_VERSION,
|
||||
PROP_STATE,
|
||||
PROP_MANAGER_RUNNING,
|
||||
PROP_NETWORKING_ENABLED,
|
||||
|
|
@ -318,6 +320,7 @@ register_for_property_changed (NMClient *client)
|
|||
{
|
||||
NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (client);
|
||||
const NMPropertiesChangedInfo property_changed_info[] = {
|
||||
{ NM_CLIENT_VERSION, _nm_object_demarshal_generic, &priv->version },
|
||||
{ NM_CLIENT_STATE, _nm_object_demarshal_generic, &priv->state },
|
||||
{ NM_CLIENT_NETWORKING_ENABLED, _nm_object_demarshal_generic, &priv->networking_enabled },
|
||||
{ NM_CLIENT_WIRELESS_ENABLED, _nm_object_demarshal_generic, &priv->wireless_enabled },
|
||||
|
|
@ -604,6 +607,16 @@ dispose (GObject *object)
|
|||
G_OBJECT_CLASS (nm_client_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (object);
|
||||
|
||||
g_free (priv->version);
|
||||
|
||||
G_OBJECT_CLASS (nm_client_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
set_property (GObject *object, guint prop_id,
|
||||
const GValue *value, GParamSpec *pspec)
|
||||
|
|
@ -670,6 +683,9 @@ get_property (GObject *object,
|
|||
NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self);
|
||||
|
||||
switch (prop_id) {
|
||||
case PROP_VERSION:
|
||||
g_value_set_string (value, nm_client_get_version (self));
|
||||
break;
|
||||
case PROP_STATE:
|
||||
g_value_set_uint (value, nm_client_get_state (self));
|
||||
break;
|
||||
|
|
@ -718,9 +734,22 @@ nm_client_class_init (NMClientClass *client_class)
|
|||
object_class->set_property = set_property;
|
||||
object_class->get_property = get_property;
|
||||
object_class->dispose = dispose;
|
||||
object_class->finalize = finalize;
|
||||
|
||||
/* properties */
|
||||
|
||||
/**
|
||||
* NMClient:version:
|
||||
*
|
||||
* The NetworkManager version.
|
||||
**/
|
||||
g_object_class_install_property (object_class, PROP_VERSION,
|
||||
g_param_spec_string (NM_CLIENT_VERSION,
|
||||
"Version",
|
||||
"NetworkManager version",
|
||||
NULL,
|
||||
G_PARAM_READABLE));
|
||||
|
||||
/**
|
||||
* NMClient:state:
|
||||
*
|
||||
|
|
@ -1457,6 +1486,37 @@ nm_client_wimax_hardware_get_enabled (NMClient *client)
|
|||
return NM_CLIENT_GET_PRIVATE (client)->wimax_hw_enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_client_get_version:
|
||||
* @client: a #NMClient
|
||||
*
|
||||
* Gets NetworkManager version.
|
||||
*
|
||||
* Returns: string with the version
|
||||
**/
|
||||
const char *
|
||||
nm_client_get_version (NMClient *client)
|
||||
{
|
||||
NMClientPrivate *priv;
|
||||
GError *err = NULL;
|
||||
|
||||
g_return_val_if_fail (NM_IS_CLIENT (client), NULL);
|
||||
|
||||
priv = NM_CLIENT_GET_PRIVATE (client);
|
||||
|
||||
if (!priv->manager_running)
|
||||
return NULL;
|
||||
|
||||
if (!priv->version)
|
||||
priv->version = _nm_object_get_string_property (NM_OBJECT (client), NM_DBUS_INTERFACE, "Version", &err);
|
||||
|
||||
/* TODO: we don't pass the error to the caller yet, maybe later */
|
||||
if (err)
|
||||
g_error_free (err);
|
||||
|
||||
return priv->version;
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_client_get_state:
|
||||
* @client: a #NMClient
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ G_BEGIN_DECLS
|
|||
#define NM_IS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_CLIENT))
|
||||
#define NM_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_CLIENT, NMClientClass))
|
||||
|
||||
#define NM_CLIENT_VERSION "version"
|
||||
#define NM_CLIENT_STATE "state"
|
||||
#define NM_CLIENT_MANAGER_RUNNING "manager-running"
|
||||
#define NM_CLIENT_NETWORKING_ENABLED "networking-enabled"
|
||||
|
|
@ -150,6 +151,7 @@ gboolean nm_client_wimax_get_enabled (NMClient *client);
|
|||
void nm_client_wimax_set_enabled (NMClient *client, gboolean enabled);
|
||||
gboolean nm_client_wimax_hardware_get_enabled (NMClient *client);
|
||||
|
||||
const char *nm_client_get_version (NMClient *client);
|
||||
NMState nm_client_get_state (NMClient *client);
|
||||
gboolean nm_client_get_manager_running (NMClient *client);
|
||||
const GPtrArray *nm_client_get_active_connections (NMClient *client);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue