aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-05-22 10:58:29 +0200
committerAleksander Morgado <aleksander@aleksander.es>2020-05-22 10:58:29 +0200
commit29a68c94b9896eb216f0b604210aafe751423fc2 (patch)
tree7d6534c3ef9f59db69e9249ccfd1738e4cdda807
parent1eeec40ee85552cee957f35db9cc85aae6116e48 (diff)
huawei: ignore ^CCALLSTATE URCs for now
We will want to support these to avoid needing to have CLCC call polling, but for now, just ignore them so that they don't interfere with the call management. For context, see: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/216
-rw-r--r--plugins/huawei/mm-broadband-modem-huawei.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/plugins/huawei/mm-broadband-modem-huawei.c b/plugins/huawei/mm-broadband-modem-huawei.c
index 44f2b86c..1732c15c 100644
--- a/plugins/huawei/mm-broadband-modem-huawei.c
+++ b/plugins/huawei/mm-broadband-modem-huawei.c
@@ -128,6 +128,7 @@ struct _MMBroadbandModemHuaweiPrivate {
GRegex *ecclist_regex;
GRegex *ltersrp_regex;
GRegex *cschannelinfo_regex;
+ GRegex *ccallstate_regex;
GRegex *eons_regex;
FeatureSupport ndisdup_support;
@@ -4406,6 +4407,10 @@ set_ignored_unsolicited_events_handlers (MMBroadbandModemHuawei *self)
NULL, NULL, NULL);
mm_port_serial_at_add_unsolicited_msg_handler (
port,
+ self->priv->ccallstate_regex,
+ NULL, NULL, NULL);
+ mm_port_serial_at_add_unsolicited_msg_handler (
+ port,
self->priv->eons_regex,
NULL, NULL, NULL);
}
@@ -4541,6 +4546,8 @@ mm_broadband_modem_huawei_init (MMBroadbandModemHuawei *self)
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
self->priv->cschannelinfo_regex = g_regex_new ("\\r\\n\\^CSCHANNELINFO:.+\\r\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->ccallstate_regex = g_regex_new ("\\r\\n\\^CCALLSTATE:.+\\r\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
self->priv->eons_regex = g_regex_new ("\\r\\n\\^EONS:.+\\r\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
@@ -4600,6 +4607,7 @@ finalize (GObject *object)
g_regex_unref (self->priv->ecclist_regex);
g_regex_unref (self->priv->ltersrp_regex);
g_regex_unref (self->priv->cschannelinfo_regex);
+ g_regex_unref (self->priv->ccallstate_regex);
g_regex_unref (self->priv->eons_regex);
if (self->priv->syscfg_supported_modes)