modem: merge branch 'th/modem-signal-cleanup'

This commit is contained in:
Thomas Haller
2017-02-23 13:35:41 +01:00
8 changed files with 78 additions and 42 deletions

View File

@@ -362,18 +362,24 @@ complete_connection (NMDevice *device,
static void static void
ppp_stats (NMModem *modem, ppp_stats (NMModem *modem,
guint32 in_bytes, guint i_in_bytes,
guint32 out_bytes, guint i_out_bytes,
gpointer user_data) gpointer user_data)
{ {
g_signal_emit (NM_DEVICE_BT (user_data), signals[PPP_STATS], 0, in_bytes, out_bytes); guint32 in_bytes = i_in_bytes;
guint32 out_bytes = i_out_bytes;
g_signal_emit (NM_DEVICE_BT (user_data), signals[PPP_STATS], 0, (guint) in_bytes, (guint) out_bytes);
} }
static void static void
ppp_failed (NMModem *modem, NMDeviceStateReason reason, gpointer user_data) ppp_failed (NMModem *modem,
guint i_reason,
gpointer user_data)
{ {
NMDevice *device = NM_DEVICE (user_data); NMDevice *device = NM_DEVICE (user_data);
NMDeviceBt *self = NM_DEVICE_BT (user_data); NMDeviceBt *self = NM_DEVICE_BT (user_data);
NMDeviceStateReason reason = i_reason;
switch (nm_device_get_state (device)) { switch (nm_device_get_state (device)) {
case NM_DEVICE_STATE_PREPARE: case NM_DEVICE_STATE_PREPARE:
@@ -448,11 +454,12 @@ modem_auth_result (NMModem *modem, GError *error, gpointer user_data)
static void static void
modem_prepare_result (NMModem *modem, modem_prepare_result (NMModem *modem,
gboolean success, gboolean success,
NMDeviceStateReason reason, guint i_reason,
gpointer user_data) gpointer user_data)
{ {
NMDeviceBt *self = NM_DEVICE_BT (user_data); NMDeviceBt *self = NM_DEVICE_BT (user_data);
NMDevice *device = NM_DEVICE (self); NMDevice *device = NM_DEVICE (self);
NMDeviceStateReason reason = i_reason;
NMDeviceState state; NMDeviceState state;
state = nm_device_get_state (device); state = nm_device_get_state (device);
@@ -1194,12 +1201,13 @@ nm_device_bt_class_init (NMDeviceBtClass *klass)
g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
signals[PPP_STATS] = signals[PPP_STATS] =
g_signal_new ("ppp-stats", g_signal_new (NM_DEVICE_BT_PPP_STATS,
G_OBJECT_CLASS_TYPE (object_class), G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST, G_SIGNAL_RUN_FIRST,
0, NULL, NULL, NULL, 0, NULL, NULL, NULL,
G_TYPE_NONE, 2, G_TYPE_NONE, 2,
G_TYPE_UINT, G_TYPE_UINT); G_TYPE_UINT /*guint32 in_bytes*/,
G_TYPE_UINT /*guint32 out_bytes*/);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass),
NMDBUS_TYPE_DEVICE_BLUETOOTH_SKELETON, NMDBUS_TYPE_DEVICE_BLUETOOTH_SKELETON,

View File

@@ -37,6 +37,8 @@
#define NM_DEVICE_BT_CAPABILITIES "bt-capabilities" #define NM_DEVICE_BT_CAPABILITIES "bt-capabilities"
#define NM_DEVICE_BT_DEVICE "bt-device" #define NM_DEVICE_BT_DEVICE "bt-device"
#define NM_DEVICE_BT_PPP_STATS "ppp-stats"
typedef struct _NMDeviceBt NMDeviceBt; typedef struct _NMDeviceBt NMDeviceBt;
typedef struct _NMDeviceBtClass NMDeviceBtClass; typedef struct _NMDeviceBtClass NMDeviceBtClass;

View File

@@ -68,10 +68,13 @@ G_DEFINE_TYPE (NMDeviceModem, nm_device_modem, NM_TYPE_DEVICE)
/*****************************************************************************/ /*****************************************************************************/
static void static void
ppp_failed (NMModem *modem, NMDeviceStateReason reason, gpointer user_data) ppp_failed (NMModem *modem,
guint i_reason,
gpointer user_data)
{ {
NMDevice *device = NM_DEVICE (user_data); NMDevice *device = NM_DEVICE (user_data);
NMDeviceModem *self = NM_DEVICE_MODEM (user_data); NMDeviceModem *self = NM_DEVICE_MODEM (user_data);
NMDeviceStateReason reason = i_reason;
switch (nm_device_get_state (device)) { switch (nm_device_get_state (device)) {
case NM_DEVICE_STATE_PREPARE: case NM_DEVICE_STATE_PREPARE:
@@ -110,12 +113,13 @@ ppp_failed (NMModem *modem, NMDeviceStateReason reason, gpointer user_data)
static void static void
modem_prepare_result (NMModem *modem, modem_prepare_result (NMModem *modem,
gboolean success, gboolean success,
NMDeviceStateReason reason, guint i_reason,
gpointer user_data) gpointer user_data)
{ {
NMDeviceModem *self = NM_DEVICE_MODEM (user_data); NMDeviceModem *self = NM_DEVICE_MODEM (user_data);
NMDevice *device = NM_DEVICE (self); NMDevice *device = NM_DEVICE (self);
NMDeviceState state; NMDeviceState state;
NMDeviceStateReason reason = i_reason;
state = nm_device_get_state (device); state = nm_device_get_state (device);
g_return_if_fail (state == NM_DEVICE_STATE_PREPARE); g_return_if_fail (state == NM_DEVICE_STATE_PREPARE);

View File

@@ -407,7 +407,7 @@ connect_ready (MMModemSimple *simple_iface,
if (ip4_method == NM_MODEM_IP_METHOD_UNKNOWN && if (ip4_method == NM_MODEM_IP_METHOD_UNKNOWN &&
ip6_method == NM_MODEM_IP_METHOD_UNKNOWN) { ip6_method == NM_MODEM_IP_METHOD_UNKNOWN) {
_LOGW ("failed to connect modem: invalid bearer IP configuration"); _LOGW ("failed to connect modem: invalid bearer IP configuration");
g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, FALSE, NM_DEVICE_STATE_REASON_CONFIG_FAILED); nm_modem_emit_prepare_result (NM_MODEM (self), FALSE, NM_DEVICE_STATE_REASON_CONFIG_FAILED);
connect_context_clear (self); connect_context_clear (self);
return; return;
} }
@@ -439,11 +439,10 @@ send_pin_ready (MMSim *sim, GAsyncResult *result, NMModemBroadband *self)
if (error) { if (error) {
if (g_error_matches (error, MM_MOBILE_EQUIPMENT_ERROR, MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN) || if (g_error_matches (error, MM_MOBILE_EQUIPMENT_ERROR, MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN) ||
(g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_UNAUTHORIZED) && (g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_UNAUTHORIZED) &&
mm_modem_get_unlock_required (self->_priv.modem_iface) == MM_MODEM_LOCK_SIM_PIN)) { mm_modem_get_unlock_required (self->_priv.modem_iface) == MM_MODEM_LOCK_SIM_PIN))
ask_for_pin (self); ask_for_pin (self);
} else { else
g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, FALSE, translate_mm_error (self, error)); nm_modem_emit_prepare_result (NM_MODEM (self), FALSE, translate_mm_error (self, error));
}
return; return;
} }
@@ -506,7 +505,7 @@ connect_context_step (NMModemBroadband *self)
_LOGW ("failed to connect '%s': not a mobile broadband modem", _LOGW ("failed to connect '%s': not a mobile broadband modem",
nm_connection_get_id (ctx->connection)); nm_connection_get_id (ctx->connection));
g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, FALSE, NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED); nm_modem_emit_prepare_result (NM_MODEM (self), FALSE, NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED);
connect_context_clear (self); connect_context_clear (self);
break; break;
} }
@@ -520,7 +519,7 @@ connect_context_step (NMModemBroadband *self)
error->message); error->message);
g_clear_error (&error); g_clear_error (&error);
g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, FALSE, NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED); nm_modem_emit_prepare_result (NM_MODEM (self), FALSE, NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED);
connect_context_clear (self); connect_context_clear (self);
break; break;
} }
@@ -559,9 +558,9 @@ connect_context_step (NMModemBroadband *self)
/* fall through */ /* fall through */
case CONNECT_STEP_LAST: case CONNECT_STEP_LAST:
if (self->_priv.ipv4_config || self->_priv.ipv6_config) { if (self->_priv.ipv4_config || self->_priv.ipv6_config)
g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, TRUE, NM_DEVICE_STATE_REASON_NONE); nm_modem_emit_prepare_result (NM_MODEM (self), TRUE, NM_DEVICE_STATE_REASON_NONE);
} else { else {
/* If we have a saved error from a previous attempt, use it */ /* If we have a saved error from a previous attempt, use it */
if (!ctx->first_error) if (!ctx->first_error)
ctx->first_error = g_error_new_literal (NM_DEVICE_ERROR, ctx->first_error = g_error_new_literal (NM_DEVICE_ERROR,
@@ -570,7 +569,7 @@ connect_context_step (NMModemBroadband *self)
_LOGW ("failed to connect modem: %s", _LOGW ("failed to connect modem: %s",
ctx->first_error->message); ctx->first_error->message);
g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, FALSE, translate_mm_error (self, ctx->first_error)); nm_modem_emit_prepare_result (NM_MODEM (self), FALSE, translate_mm_error (self, ctx->first_error));
} }
connect_context_clear (self); connect_context_clear (self);

View File

@@ -724,7 +724,7 @@ stage1_prepare_done (GDBusProxy *proxy, GAsyncResult *result, gpointer user_data
if (error) { if (error) {
_LOGW ("connection failed: %s", error->message); _LOGW ("connection failed: %s", error->message);
g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, FALSE, nm_modem_emit_prepare_result (NM_MODEM (self), FALSE,
NM_DEVICE_STATE_REASON_MODEM_BUSY); NM_DEVICE_STATE_REASON_MODEM_BUSY);
/* /*
* FIXME: add code to check for InProgress so that the * FIXME: add code to check for InProgress so that the
@@ -912,10 +912,10 @@ out:
_LOGI ("emitting PREPARE_RESULT: %s", ret ? "TRUE" : "FALSE"); _LOGI ("emitting PREPARE_RESULT: %s", ret ? "TRUE" : "FALSE");
if (!ret) if (!ret)
reason = NM_DEVICE_STATE_REASON_IP_CONFIG_UNAVAILABLE; reason = NM_DEVICE_STATE_REASON_IP_CONFIG_UNAVAILABLE;
g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, ret, reason); nm_modem_emit_prepare_result (NM_MODEM (self), ret, reason);
} else { } else {
_LOGW ("MODEM_PPP_FAILED"); _LOGW ("MODEM_PPP_FAILED");
g_signal_emit_by_name (self, NM_MODEM_PPP_FAILED, NM_DEVICE_STATE_REASON_PPP_FAILED); nm_modem_emit_ppp_failed (NM_MODEM (self), NM_DEVICE_STATE_REASON_PPP_FAILED);
} }
} }
@@ -955,13 +955,13 @@ context_proxy_new_cb (GDBusProxy *proxy, GAsyncResult *result, gpointer user_dat
priv->context_proxy = g_dbus_proxy_new_for_bus_finish (result, &error); priv->context_proxy = g_dbus_proxy_new_for_bus_finish (result, &error);
if (error) { if (error) {
_LOGE ("failed to create ofono ConnectionContext DBus proxy: %s", error->message); _LOGE ("failed to create ofono ConnectionContext DBus proxy: %s", error->message);
g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, FALSE, nm_modem_emit_prepare_result (NM_MODEM (self), FALSE,
NM_DEVICE_STATE_REASON_MODEM_BUSY); NM_DEVICE_STATE_REASON_MODEM_BUSY);
return; return;
} }
if (!priv->gprs_attached) { if (!priv->gprs_attached) {
g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, FALSE, nm_modem_emit_prepare_result (NM_MODEM (self), FALSE,
NM_DEVICE_STATE_REASON_MODEM_NO_CARRIER); NM_DEVICE_STATE_REASON_MODEM_NO_CARRIER);
return; return;
} }

View File

@@ -158,7 +158,7 @@ nm_modem_set_state (NMModem *self,
priv->state = new_state; priv->state = new_state;
_notify (self, PROP_STATE); _notify (self, PROP_STATE);
g_signal_emit (self, signals[STATE_CHANGED], 0, (int) new_state, (int) old_state, reason); g_signal_emit (self, signals[STATE_CHANGED], 0, (int) new_state, (int) old_state);
} }
} }
@@ -201,7 +201,7 @@ nm_modem_set_mm_enabled (NMModem *self,
/* Try to unlock the modem if it's being enabled */ /* Try to unlock the modem if it's being enabled */
if (enabled) if (enabled)
g_signal_emit_by_name (self, NM_MODEM_AUTH_REQUESTED, 0); g_signal_emit (self, signals[AUTH_REQUESTED], 0);
return; return;
} }
@@ -222,6 +222,22 @@ nm_modem_emit_removed (NMModem *self)
g_signal_emit (self, signals[REMOVED], 0); g_signal_emit (self, signals[REMOVED], 0);
} }
void
nm_modem_emit_prepare_result (NMModem *self, gboolean success, NMDeviceStateReason reason)
{
nm_assert (NM_IS_MODEM (self));
g_signal_emit (self, signals[PREPARE_RESULT], 0, success, (guint) reason);
}
void
nm_modem_emit_ppp_failed (NMModem *self, NMDeviceStateReason reason)
{
nm_assert (NM_IS_MODEM (self));
g_signal_emit (self, signals[PPP_FAILED], 0, (guint) reason);
}
NMModemIPType NMModemIPType
nm_modem_get_supported_ip_types (NMModem *self) nm_modem_get_supported_ip_types (NMModem *self)
{ {
@@ -382,10 +398,10 @@ ppp_state_changed (NMPPPManager *ppp_manager, NMPPPStatus status, gpointer user_
{ {
switch (status) { switch (status) {
case NM_PPP_STATUS_DISCONNECT: case NM_PPP_STATUS_DISCONNECT:
g_signal_emit (NM_MODEM (user_data), signals[PPP_FAILED], 0, NM_DEVICE_STATE_REASON_PPP_DISCONNECT); nm_modem_emit_ppp_failed (user_data, NM_DEVICE_STATE_REASON_PPP_DISCONNECT);
break; break;
case NM_PPP_STATUS_DEAD: case NM_PPP_STATUS_DEAD:
g_signal_emit (NM_MODEM (user_data), signals[PPP_FAILED], 0, NM_DEVICE_STATE_REASON_PPP_FAILED); nm_modem_emit_ppp_failed (user_data, NM_DEVICE_STATE_REASON_PPP_FAILED);
break; break;
default: default:
break; break;
@@ -479,18 +495,19 @@ ppp_ip6_config (NMPPPManager *ppp_manager,
static void static void
ppp_stats (NMPPPManager *ppp_manager, ppp_stats (NMPPPManager *ppp_manager,
guint32 in_bytes, guint i_in_bytes,
guint32 out_bytes, guint i_out_bytes,
gpointer user_data) gpointer user_data)
{ {
NMModem *self = NM_MODEM (user_data); NMModem *self = NM_MODEM (user_data);
NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (self); NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (self);
guint32 in_bytes = i_in_bytes;
guint32 out_bytes = i_out_bytes;
if (priv->in_bytes != in_bytes || priv->out_bytes != out_bytes) { if (priv->in_bytes != in_bytes || priv->out_bytes != out_bytes) {
priv->in_bytes = in_bytes; priv->in_bytes = in_bytes;
priv->out_bytes = out_bytes; priv->out_bytes = out_bytes;
g_signal_emit (self, signals[PPP_STATS], 0, (guint) in_bytes, (guint) out_bytes);
g_signal_emit (self, signals[PPP_STATS], 0, in_bytes, out_bytes);
} }
} }
@@ -1663,15 +1680,16 @@ nm_modem_class_init (NMModemClass *klass)
g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
signals[PPP_STATS] = signals[PPP_STATS] =
g_signal_new ("ppp-stats", g_signal_new (NM_MODEM_PPP_STATS,
G_OBJECT_CLASS_TYPE (object_class), G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST, G_SIGNAL_RUN_FIRST,
0, NULL, NULL, NULL, 0, NULL, NULL, NULL,
G_TYPE_NONE, 2, G_TYPE_NONE, 2,
G_TYPE_UINT, G_TYPE_UINT); G_TYPE_UINT /*guint32 in_bytes*/,
G_TYPE_UINT /*guint32 out_bytes*/);
signals[PPP_FAILED] = signals[PPP_FAILED] =
g_signal_new ("ppp-failed", g_signal_new (NM_MODEM_PPP_FAILED,
G_OBJECT_CLASS_TYPE (object_class), G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST, G_SIGNAL_RUN_FIRST,
0, NULL, NULL, NULL, 0, NULL, NULL, NULL,

View File

@@ -239,6 +239,10 @@ NMModemIPType nm_modem_get_supported_ip_types (NMModem *self);
/* For the modem-manager only */ /* For the modem-manager only */
void nm_modem_emit_removed (NMModem *self); void nm_modem_emit_removed (NMModem *self);
void nm_modem_emit_prepare_result (NMModem *self, gboolean success, NMDeviceStateReason reason);
void nm_modem_emit_ppp_failed (NMModem *self, NMDeviceStateReason reason);
GArray *nm_modem_get_connection_ip_type (NMModem *self, GArray *nm_modem_get_connection_ip_type (NMModem *self,
NMConnection *connection, NMConnection *connection,
GError **error); GError **error);

View File

@@ -150,8 +150,8 @@ monitor_cb (gpointer user_data)
_LOGW ("could not read ppp stats: %s", strerror (errno)); _LOGW ("could not read ppp stats: %s", strerror (errno));
} else { } else {
g_signal_emit (manager, signals[STATS], 0, g_signal_emit (manager, signals[STATS], 0,
stats.p.ppp_ibytes, (guint) stats.p.ppp_ibytes,
stats.p.ppp_obytes); (guint) stats.p.ppp_obytes);
} }
return TRUE; return TRUE;
@@ -1277,7 +1277,8 @@ nm_ppp_manager_class_init (NMPPPManagerClass *manager_class)
0, 0,
NULL, NULL, NULL, NULL, NULL, NULL,
G_TYPE_NONE, 2, G_TYPE_NONE, 2,
G_TYPE_UINT, G_TYPE_UINT); G_TYPE_UINT /*guint32 in_bytes*/,
G_TYPE_UINT /*guint32 out_bytes*/);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (manager_class), nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (manager_class),
NMDBUS_TYPE_PPP_MANAGER_SKELETON, NMDBUS_TYPE_PPP_MANAGER_SKELETON,