/** * nm_vpn_connection_get_vpn_state: * @vpn: a #NMVpnConnection * * Gets the current #NMVpnConnection state. * * Returns: the VPN state of the active VPN connection. **/ NMVpnConnectionState nm_vpn_connection_get_vpn_state (NMVpnConnection *vpn) { g_return_val_if_fail (NM_IS_VPN_CONNECTION (vpn), NM_VPN_CONNECTION_STATE_UNKNOWN); return NM_VPN_CONNECTION_GET_PRIVATE (vpn)->vpn_state; }
static void nm_vpn_connection_init (NMVPNConnection *connection) { NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); priv->vpn_state = NM_VPN_CONNECTION_STATE_UNKNOWN; }
/** * nm_vpn_connection_get_vpn_state: * @vpn: a #NMVPNConnection * * Gets the current #NMVPNConnection state. * * Returns: the VPN state of the active VPN connection. **/ NMVPNConnectionState nm_vpn_connection_get_vpn_state (NMVPNConnection *vpn) { g_return_val_if_fail (NM_IS_VPN_CONNECTION (vpn), NM_VPN_CONNECTION_STATE_UNKNOWN); _nm_object_ensure_inited (NM_OBJECT (vpn)); return NM_VPN_CONNECTION_GET_PRIVATE (vpn)->vpn_state; }
static void finalize (GObject *object) { NMVpnConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (object); g_free (priv->banner); G_OBJECT_CLASS (nm_vpn_connection_parent_class)->finalize (object); }
static void register_properties (NMVPNConnection *connection) { NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); const NMPropertiesInfo property_info[] = { { NM_VPN_CONNECTION_BANNER, &priv->banner }, { NM_VPN_CONNECTION_VPN_STATE, &priv->vpn_state }, { NULL }, }; _nm_object_register_properties (NM_OBJECT (connection), priv->proxy, property_info); }
/** * nm_vpn_connection_get_banner: * @vpn: a #NMVpnConnection * * Gets the VPN login banner of the active #NMVpnConnection. * * Returns: the VPN login banner of the VPN connection. This is the internal * string used by the connection, and must not be modified. **/ const char * nm_vpn_connection_get_banner (NMVpnConnection *vpn) { NMVpnConnectionPrivate *priv; g_return_val_if_fail (NM_IS_VPN_CONNECTION (vpn), NULL); priv = NM_VPN_CONNECTION_GET_PRIVATE (vpn); if (priv->vpn_state != NM_VPN_CONNECTION_STATE_ACTIVATED) return NULL; return nm_str_not_empty (priv->banner); }
static void vpn_state_changed_proxy (DBusGProxy *proxy, NMVPNConnectionState vpn_state, NMVPNConnectionStateReason reason, gpointer user_data) { NMVPNConnection *connection = NM_VPN_CONNECTION (user_data); NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); if (priv->vpn_state != vpn_state) { priv->vpn_state = vpn_state; g_signal_emit (connection, signals[VPN_STATE_CHANGED], 0, vpn_state, reason); g_object_notify (G_OBJECT (connection), NM_VPN_CONNECTION_VPN_STATE); } }
/** * nm_vpn_connection_get_banner: * @vpn: a #NMVPNConnection * * Gets the VPN login banner of the active #NMVPNConnection. * * Returns: the VPN login banner of the VPN connection. This is the internal * string used by the connection, and must not be modified. **/ const char * nm_vpn_connection_get_banner (NMVPNConnection *vpn) { NMVPNConnectionPrivate *priv; g_return_val_if_fail (NM_IS_VPN_CONNECTION (vpn), NULL); priv = NM_VPN_CONNECTION_GET_PRIVATE (vpn); /* We need to update vpn_state first in case it's unknown. */ _nm_object_ensure_inited (NM_OBJECT (vpn)); if (priv->vpn_state != NM_VPN_CONNECTION_STATE_ACTIVATED) return NULL; return priv->banner; }
static void constructed (GObject *object) { NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (object); G_OBJECT_CLASS (nm_vpn_connection_parent_class)->constructed (object); priv->proxy = _nm_object_new_proxy (NM_OBJECT (object), NULL, NM_DBUS_INTERFACE_VPN_CONNECTION); dbus_g_object_register_marshaller (g_cclosure_marshal_generic, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID); dbus_g_proxy_add_signal (priv->proxy, "VpnStateChanged", G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID); dbus_g_proxy_connect_signal (priv->proxy, "VpnStateChanged", G_CALLBACK (vpn_state_changed_proxy), object, NULL); register_properties (NM_VPN_CONNECTION (object)); }
static void init_dbus (NMObject *object) { NMVpnConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (object); const NMPropertiesInfo property_info[] = { { NM_VPN_CONNECTION_BANNER, &priv->banner }, { NM_VPN_CONNECTION_VPN_STATE, &priv->vpn_state }, { NULL }, }; GDBusProxy *proxy; NM_OBJECT_CLASS (nm_vpn_connection_parent_class)->init_dbus (object); _nm_object_register_properties (object, NM_DBUS_INTERFACE_VPN_CONNECTION, property_info); proxy = _nm_object_get_proxy (object, NM_DBUS_INTERFACE_VPN_CONNECTION); g_signal_connect (proxy, "vpn-state-changed", G_CALLBACK (vpn_state_changed_proxy), object); g_object_unref (proxy); }