static NMActStageReturn real_act_stage2_config (NMDevice *device, NMDeviceStateReason *reason) { NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (device); NMConnection *connection; NMSettingWimax *s_wimax; const char *nsp; int ret; connection = nm_act_request_get_connection (nm_device_get_act_request (device)); g_assert (connection); s_wimax = NM_SETTING_WIMAX (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIMAX)); g_assert (s_wimax); nsp = nm_setting_wimax_get_network_name (s_wimax); g_assert (nsp); priv->connect_failed = FALSE; ret = iwmx_sdk_connect (priv->sdk, nsp); if (ret < 0 && ret != -EINPROGRESS) { nm_log_err (LOGD_WIMAX, "(%s): failed to connect to NSP '%s'", nm_device_get_iface (device), nsp); *reason = NM_DEVICE_STATE_REASON_CONFIG_FAILED; return NM_ACT_STAGE_RETURN_FAILURE; } /* FIXME: Is 40 seconds good estimation? I have no idea */ priv->activation_timeout_id = g_timeout_add_seconds (40, activation_timed_out, device); return NM_ACT_STAGE_RETURN_POSTPONE; }
static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { NMSettingWimax *setting = NM_SETTING_WIMAX (object); switch (prop_id) { case PROP_NETWORK_NAME: g_value_set_string (value, nm_setting_wimax_get_network_name (setting)); break; case PROP_MAC_ADDRESS: g_value_set_string (value, nm_setting_wimax_get_mac_address (setting)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static gboolean wimax_new_auto_connection (NMDevice *device, gpointer dclass_data, AppletNewAutoConnectionCallback callback, gpointer callback_data) { WimaxMenuItemInfo *info = dclass_data; NMConnection *connection; NMSettingWimax *s_wimax = NULL; NMSettingConnection *s_con; char *uuid; const char *nsp_name; nsp_name = nm_wimax_nsp_get_name (info->nsp); connection = nm_connection_new (); s_wimax = NM_SETTING_WIMAX (nm_setting_wimax_new ()); g_object_set (s_wimax, NM_SETTING_WIMAX_NETWORK_NAME, nsp_name, NULL); nm_connection_add_setting (connection, NM_SETTING (s_wimax)); s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); uuid = nm_utils_uuid_generate (); g_object_set (s_con, NM_SETTING_CONNECTION_ID, nsp_name, NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIMAX_SETTING_NAME, NM_SETTING_CONNECTION_AUTOCONNECT, TRUE, NM_SETTING_CONNECTION_UUID, uuid, NULL); g_free (uuid); nm_connection_add_setting (connection, NM_SETTING (s_con)); (*callback) (connection, TRUE, FALSE, callback_data); return TRUE; }