static GObject* constructor (GType type, guint n_construct_params, GObjectConstructParam *construct_params) { NMObject *object; NMActiveConnectionPrivate *priv; object = (NMObject *) G_OBJECT_CLASS (nm_active_connection_parent_class)->constructor (type, n_construct_params, construct_params); if (!object) return NULL; priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (object); priv->proxy = dbus_g_proxy_new_for_name (nm_object_get_connection (object), NM_DBUS_SERVICE, nm_object_get_path (object), NM_DBUS_INTERFACE_ACTIVE_CONNECTION); register_for_property_changed (NM_ACTIVE_CONNECTION (object)); return G_OBJECT (object); }
/** * nm_device_wifi_get_access_points: * @device: a #NMDeviceWifi * * Gets all the scanned access points of the #NMDeviceWifi. * * Returns: a #GPtrArray containing all the scanned #NMAccessPoint<!-- -->s. * The returned array is owned by the client and should not be modified. **/ const GPtrArray * nm_device_wifi_get_access_points (NMDeviceWifi *device) { NMDeviceWifiPrivate *priv; DBusGConnection *connection; GValue value = { 0, }; GError *error = NULL; GPtrArray *temp; g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); priv = NM_DEVICE_WIFI_GET_PRIVATE (device); if (priv->aps) return handle_ptr_array_return (priv->aps); if (!org_freedesktop_NetworkManager_Device_Wireless_get_access_points (priv->proxy, &temp, &error)) { g_warning ("%s: error getting access points: %s", __func__, error->message); g_error_free (error); return NULL; } g_value_init (&value, DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH); g_value_take_boxed (&value, temp); connection = nm_object_get_connection (NM_OBJECT (device)); _nm_object_array_demarshal (&value, &priv->aps, connection, nm_access_point_new); g_value_unset (&value); return handle_ptr_array_return (priv->aps); }
static void access_point_added_proxy (DBusGProxy *proxy, char *path, gpointer user_data) { NMDeviceWifi *self = NM_DEVICE_WIFI (user_data); NMDeviceWifiPrivate *priv; GObject *ap; g_return_if_fail (self != NULL); ap = G_OBJECT (nm_device_wifi_get_access_point_by_path (self, path)); if (!ap) { DBusGConnection *connection = nm_object_get_connection (NM_OBJECT (self)); priv = NM_DEVICE_WIFI_GET_PRIVATE (self); ap = G_OBJECT (_nm_object_cache_get (path)); if (ap) { g_ptr_array_add (priv->aps, g_object_ref (ap)); } else { ap = G_OBJECT (nm_access_point_new (connection, path)); if (ap) g_ptr_array_add (priv->aps, ap); } } if (ap) g_signal_emit (self, signals[ACCESS_POINT_ADDED], 0, NM_ACCESS_POINT (ap)); }
static GObject* constructor (GType type, guint n_construct_params, GObjectConstructParam *construct_params) { NMObject *object; DBusGConnection *connection; NMIP4ConfigPrivate *priv; object = (NMObject *) G_OBJECT_CLASS (nm_ip4_config_parent_class)->constructor (type, n_construct_params, construct_params); if (!object) return NULL; priv = NM_IP4_CONFIG_GET_PRIVATE (object); connection = nm_object_get_connection (object); priv->proxy = dbus_g_proxy_new_for_name (connection, NM_DBUS_SERVICE, nm_object_get_path (object), NM_DBUS_INTERFACE_IP4_CONFIG); register_for_property_changed (NM_IP4_CONFIG (object)); return G_OBJECT (object); }
static GObject* constructor (GType type, guint n_construct_params, GObjectConstructParam *construct_params) { NMObject *object; DBusGConnection *connection; NMDHCP6ConfigPrivate *priv; object = (NMObject *) G_OBJECT_CLASS (nm_dhcp6_config_parent_class)->constructor (type, n_construct_params, construct_params); if (!object) return NULL; priv = NM_DHCP6_CONFIG_GET_PRIVATE (object); priv->options = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); connection = nm_object_get_connection (object); priv->proxy = dbus_g_proxy_new_for_name (connection, NM_DBUS_SERVICE, nm_object_get_path (object), NM_DBUS_INTERFACE_DHCP6_CONFIG); register_for_property_changed (NM_DHCP6_CONFIG (object)); return G_OBJECT (object); }
static gboolean demarshal_devices (NMObject *object, GParamSpec *pspec, GValue *value, gpointer field) { DBusGConnection *connection; connection = nm_object_get_connection (object); if (!_nm_object_array_demarshal (value, (GPtrArray **) field, connection, nm_device_new)) return FALSE; _nm_object_queue_notify (object, NM_ACTIVE_CONNECTION_DEVICES); return TRUE; }
static void constructed (GObject *object) { NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object); G_OBJECT_CLASS (nm_device_bt_parent_class)->constructed (object); priv->proxy = dbus_g_proxy_new_for_name (nm_object_get_connection (NM_OBJECT (object)), NM_DBUS_SERVICE, nm_object_get_path (NM_OBJECT (object)), NM_DBUS_INTERFACE_DEVICE_BLUETOOTH); register_properties (NM_DEVICE_BT (object)); }
static void constructed (GObject *object) { DBusGConnection *connection; NMIP4ConfigPrivate *priv; G_OBJECT_CLASS (nm_ip4_config_parent_class)->constructed (object); priv = NM_IP4_CONFIG_GET_PRIVATE (object); connection = nm_object_get_connection (NM_OBJECT (object)); priv->proxy = dbus_g_proxy_new_for_name (connection, NM_DBUS_SERVICE, nm_object_get_path (NM_OBJECT (object)), NM_DBUS_INTERFACE_IP4_CONFIG); register_properties (NM_IP4_CONFIG (object)); }
static GObject* constructor (GType type, guint n_construct_params, GObjectConstructParam *construct_params) { GObject *object; NMDeviceWifiPrivate *priv; object = G_OBJECT_CLASS (nm_device_wifi_parent_class)->constructor (type, n_construct_params, construct_params); if (!object) return NULL; priv = NM_DEVICE_WIFI_GET_PRIVATE (object); priv->proxy = dbus_g_proxy_new_for_name (nm_object_get_connection (NM_OBJECT (object)), NM_DBUS_SERVICE, nm_object_get_path (NM_OBJECT (object)), NM_DBUS_INTERFACE_DEVICE_WIRELESS); dbus_g_proxy_add_signal (priv->proxy, "AccessPointAdded", DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID); dbus_g_proxy_connect_signal (priv->proxy, "AccessPointAdded", G_CALLBACK (access_point_added_proxy), object, NULL); dbus_g_proxy_add_signal (priv->proxy, "AccessPointRemoved", DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID); dbus_g_proxy_connect_signal (priv->proxy, "AccessPointRemoved", G_CALLBACK (access_point_removed_proxy), object, NULL); register_for_property_changed (NM_DEVICE_WIFI (object)); g_signal_connect (NM_DEVICE (object), "notify::" NM_DEVICE_STATE, G_CALLBACK (state_changed_cb), NULL); return object; }
static void constructed (GObject *object) { NmnModelPrivate *priv = GET_PRIVATE (object); NMListModel *child_model; DBusGConnection *bus; if (G_OBJECT_CLASS (nmn_model_parent_class)->constructed) G_OBJECT_CLASS (nmn_model_parent_class)->constructed (object); child_model = NM_LIST_MODEL (gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (object))); priv->client = nm_list_model_get_client (child_model); bus = nm_object_get_connection (NM_OBJECT (priv->client)); priv->user_settings = NM_SETTINGS_INTERFACE (nm_gconf_settings_new (bus)); priv->system_settings = NM_SETTINGS_INTERFACE (nm_remote_settings_system_new (bus)); nm_list_model_add_settings (child_model, priv->user_settings); nm_list_model_add_settings (child_model, priv->system_settings); g_signal_connect (priv->client, "notify::" NM_CLIENT_STATE, G_CALLBACK (nm_client_state_changed), object); g_signal_connect (priv->client, "notify::" NM_CLIENT_WIRELESS_ENABLED, G_CALLBACK (nm_wireless_state_changed), object); g_signal_connect (priv->client, "notify::" NM_CLIENT_WIRELESS_HARDWARE_ENABLED, G_CALLBACK (nm_wireless_state_changed), object); nm_wireless_state_changed (priv->client, NULL, object); nm_client_state_changed (priv->client, NULL, object); if (request_dbus_name (bus)) dbus_g_connection_register_g_object (bus, NM_DBUS_PATH_SETTINGS, G_OBJECT (priv->user_settings)); }
static void constructed (GObject *object) { DBusGConnection *connection; NMDHCP6ConfigPrivate *priv; G_OBJECT_CLASS (nm_dhcp6_config_parent_class)->constructed (object); priv = NM_DHCP6_CONFIG_GET_PRIVATE (object); priv->options = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); connection = nm_object_get_connection (NM_OBJECT (object)); priv->proxy = dbus_g_proxy_new_for_name (connection, NM_DBUS_SERVICE, nm_object_get_path (NM_OBJECT (object)), NM_DBUS_INTERFACE_DHCP6_CONFIG); register_properties (NM_DHCP6_CONFIG (object)); }
static void constructed (GObject *object) { NMDeviceWifiPrivate *priv; G_OBJECT_CLASS (nm_device_wifi_parent_class)->constructed (object); priv = NM_DEVICE_WIFI_GET_PRIVATE (object); priv->proxy = dbus_g_proxy_new_for_name (nm_object_get_connection (NM_OBJECT (object)), NM_DBUS_SERVICE, nm_object_get_path (NM_OBJECT (object)), NM_DBUS_INTERFACE_DEVICE_WIRELESS); register_properties (NM_DEVICE_WIFI (object)); g_signal_connect (NM_DEVICE (object), "notify::" NM_DEVICE_STATE, G_CALLBACK (state_changed_cb), NULL); }
static GObject* constructor (GType type, guint n_construct_params, GObjectConstructParam *construct_params) { NMObject *object; NMDevicePrivate *priv; object = (NMObject *) G_OBJECT_CLASS (nm_device_parent_class)->constructor (type, n_construct_params, construct_params); if (!object) return NULL; priv = NM_DEVICE_GET_PRIVATE (object); priv->proxy = dbus_g_proxy_new_for_name (nm_object_get_connection (object), NM_DBUS_SERVICE, nm_object_get_path (object), NM_DBUS_INTERFACE_DEVICE); register_for_property_changed (NM_DEVICE (object)); dbus_g_object_register_marshaller (_nm_marshal_VOID__UINT_UINT_UINT, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID); dbus_g_proxy_add_signal (priv->proxy, "StateChanged", G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID); dbus_g_proxy_connect_signal (priv->proxy, "StateChanged", G_CALLBACK (device_state_changed), NM_DEVICE (object), NULL); return G_OBJECT (object); }
static gboolean demarshal_active_ap (NMObject *object, GParamSpec *pspec, GValue *value, gpointer field) { NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (object); const char *path; NMAccessPoint *ap = NULL; DBusGConnection *connection; if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH)) return FALSE; priv->null_active_ap = FALSE; path = g_value_get_boxed (value); if (path) { if (!strcmp (path, "/")) priv->null_active_ap = TRUE; else { ap = NM_ACCESS_POINT (_nm_object_cache_get (path)); if (ap) ap = g_object_ref (ap); else { connection = nm_object_get_connection (object); ap = NM_ACCESS_POINT (nm_access_point_new (connection, path)); } } } if (priv->active_ap) { g_object_unref (priv->active_ap); priv->active_ap = NULL; } if (ap) priv->active_ap = ap; _nm_object_queue_notify (object, NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT); return TRUE; }
static gboolean demarshal_ip6_config (NMObject *object, GParamSpec *pspec, GValue *value, gpointer field) { NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (object); const char *path; NMIP6Config *config = NULL; DBusGConnection *connection; if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH)) return FALSE; priv->null_ip6_config = FALSE; path = g_value_get_boxed (value); if (path) { if (!strcmp (path, "/")) priv->null_ip6_config = TRUE; else { config = NM_IP6_CONFIG (_nm_object_cache_get (path)); if (config) config = g_object_ref (config); else { connection = nm_object_get_connection (object); config = NM_IP6_CONFIG (nm_ip6_config_new (connection, path)); } } } if (priv->ip6_config) { g_object_unref (priv->ip6_config); priv->ip6_config = NULL; } if (config) priv->ip6_config = config; _nm_object_queue_notify (object, NM_DEVICE_IP6_CONFIG); return TRUE; }