Example #1
0
static void
constructed (GObject *object)
{
	NMDHCP4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE (object);

	G_OBJECT_CLASS (nm_dhcp4_config_parent_class)->constructed (object);

	priv->options = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);

	priv->proxy = _nm_object_new_proxy (NM_OBJECT (object), NULL, NM_DBUS_INTERFACE_DHCP4_CONFIG);
	register_properties (NM_DHCP4_CONFIG (object));
}
static gboolean
demarshal_dhcp4_config (NMObject *object, GParamSpec *pspec, GValue *value, gpointer field)
{
	NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (object);
	const char *path;
	NMDHCP4Config *config = NULL;
	DBusGConnection *connection;

	if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
		return FALSE;

	priv->null_dhcp4_config = FALSE;

	path = g_value_get_boxed (value);
	if (path) {
		if (!strcmp (path, "/"))
			priv->null_dhcp4_config = TRUE;
		else {
			config = NM_DHCP4_CONFIG (_nm_object_cache_get (path));
			if (config)
				config = g_object_ref (config);
			else {
				connection = nm_object_get_connection (object);
				config = NM_DHCP4_CONFIG (nm_dhcp4_config_new (connection, path));
			}
		}
	}

	if (priv->dhcp4_config) {
		g_object_unref (priv->dhcp4_config);
		priv->dhcp4_config = NULL;
	}

	if (config)
		priv->dhcp4_config = config;

	_nm_object_queue_notify (object, NM_DEVICE_DHCP4_CONFIG);
	return TRUE;
}
Example #3
0
static void
get_property (GObject *object,
              guint prop_id,
              GValue *value,
              GParamSpec *pspec)
{
	NMDHCP4Config *self = NM_DHCP4_CONFIG (object);

	_nm_object_ensure_inited (NM_OBJECT (object));

	switch (prop_id) {
	case PROP_OPTIONS:
		g_value_set_boxed (value, nm_dhcp4_config_get_options (self));
		break;
	default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
		break;
	}
}
Example #4
0
NMDHCP4Config *
nm_dhcp4_config_new (void)
{
	return NM_DHCP4_CONFIG (g_object_new (NM_TYPE_DHCP4_CONFIG, NULL));
}