From 252fd9eb5226c2d7b447f3ba0b42dc12257c0c4b Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Thu, 29 Oct 2009 16:38:25 -0500 Subject: [PATCH] Fix: Properly update technologies When current operator is reported, update the technology list if the tech information is available --- src/network.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/network.c b/src/network.c index 22f3aab6..9b18522b 100644 --- a/src/network.c +++ b/src/network.c @@ -1128,9 +1128,16 @@ static void current_operator_callback(const struct ofono_error *error, network_operator_compare); if (op) { - set_network_operator_status(op->data, OPERATOR_STATUS_CURRENT); - set_network_operator_techs(op->data, current->tech); - set_network_operator_name(op->data, current->name); + struct network_operator_data *opd = op->data; + unsigned int techs = opd->techs; + + if (current->tech != -1) { + techs |= 1 << current->tech; + set_network_operator_techs(opd, techs); + } + + set_network_operator_status(opd, OPERATOR_STATUS_CURRENT); + set_network_operator_name(opd, current->name); if (netreg->current_operator == op->data) return;