diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2020-05-22 10:58:29 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2020-05-22 10:58:29 +0200 |
commit | 29a68c94b9896eb216f0b604210aafe751423fc2 (patch) | |
tree | 7d6534c3ef9f59db69e9249ccfd1738e4cdda807 | |
parent | 1eeec40ee85552cee957f35db9cc85aae6116e48 (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.c | 8 |
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) |