diff options
author | Riccardo Vangelisti <riccardo.vangelisti@sadel.it> | 2017-03-24 15:35:25 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2017-03-24 17:52:47 +0100 |
commit | dc01a30c2f87e41780a0b4098f535822462999a7 (patch) | |
tree | 38fd8044e6a8570a488800a10d98d91f65439b96 | |
parent | 11a26f10668659fb0c043ec9bc88debacce8cab1 (diff) |
huawei: ignore unsolicited message ^EONS
-rw-r--r-- | plugins/huawei/mm-broadband-modem-huawei.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/plugins/huawei/mm-broadband-modem-huawei.c b/plugins/huawei/mm-broadband-modem-huawei.c index 0e375e13..74e680b4 100644 --- a/plugins/huawei/mm-broadband-modem-huawei.c +++ b/plugins/huawei/mm-broadband-modem-huawei.c @@ -110,6 +110,7 @@ struct _MMBroadbandModemHuaweiPrivate { GRegex *cend_regex; GRegex *ddtmf_regex; GRegex *cschannelinfo_regex; + GRegex *eons_regex; /* Regex to ignore */ GRegex *boot_regex; @@ -3149,6 +3150,12 @@ set_voice_unsolicited_events_handlers (MMBroadbandModemHuawei *self, port, self->priv->cschannelinfo_regex, NULL, NULL, NULL); + + /* Ignore this message (Huawei ME909s-120 firmware. 23.613.61.00.00) */ + mm_port_serial_at_add_unsolicited_msg_handler ( + port, + self->priv->eons_regex, + NULL, NULL, NULL); } g_list_free_full (ports, (GDestroyNotify)g_object_unref); @@ -4474,6 +4481,11 @@ mm_broadband_modem_huawei_init (MMBroadbandModemHuawei *self) self->priv->cschannelinfo_regex = g_regex_new ("\\r\\n\\^CSCHANNELINFO:\\s*(\\d+),(\\d+)\\r\\n", G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL); + /* Voice: Unknown message that's broke ATA command + * <CR><LF>^EONS:<type><CR><LF> + */ + self->priv->eons_regex = g_regex_new ("\\r\\n\\^EONS:\\s*(\\d+)\\r\\n", + G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL); self->priv->ndisdup_support = FEATURE_SUPPORT_UNKNOWN; self->priv->rfswitch_support = FEATURE_SUPPORT_UNKNOWN; @@ -4529,6 +4541,7 @@ finalize (GObject *object) g_regex_unref (self->priv->cend_regex); g_regex_unref (self->priv->ddtmf_regex); g_regex_unref (self->priv->cschannelinfo_regex); + g_regex_unref (self->priv->eons_regex); if (self->priv->syscfg_supported_modes) g_array_unref (self->priv->syscfg_supported_modes); |