From 29a68c94b9896eb216f0b604210aafe751423fc2 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Fri, 22 May 2020 10:58:29 +0200 Subject: [PATCH] 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 --- plugins/huawei/mm-broadband-modem-huawei.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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; @@ -4404,6 +4405,10 @@ set_ignored_unsolicited_events_handlers (MMBroadbandModemHuawei *self) port, self->priv->cschannelinfo_regex, 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, @@ -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)