diff options
author | Shoji Keita <awaittrot@shjk.jp> | 2022-10-10 15:41:31 +0900 |
---|---|---|
committer | Teemu Ikonen <tpikonen@mailbox.org> | 2022-10-26 10:33:21 +0000 |
commit | b70965dd73f910d67c1a19b4c2d43f0a233883a5 (patch) | |
tree | af8dd7054f0eaa526cd0577cc9ac8bd50acd9fcc /src/gclue-mozilla.c | |
parent | 843118c5d3db2d9e76ddb515345107ea7b40d616 (diff) | |
download | geoclue-b70965dd73f910d67c1a19b4c2d43f0a233883a5.tar.gz |
mozilla: Submit cell tower with correct radio type
Diffstat (limited to 'src/gclue-mozilla.c')
-rw-r--r-- | src/gclue-mozilla.c | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/src/gclue-mozilla.c b/src/gclue-mozilla.c index fb89a2b..08f7e71 100644 --- a/src/gclue-mozilla.c +++ b/src/gclue-mozilla.c @@ -199,8 +199,16 @@ gclue_mozilla_create_query (GClueMozilla *mozilla, if (mozilla->priv->tower_valid && !skip_tower && operator_code_to_mcc_mnc (mozilla->priv->tower.opc, &mcc, &mnc)) { - json_builder_set_member_name (builder, "radioType"); - json_builder_add_string_value (builder, "gsm"); + if (mozilla->priv->tower.tec == GCLUE_TOWER_TEC_4G) { + json_builder_set_member_name (builder, "radioType"); + json_builder_add_string_value (builder, "lte"); + } else if (mozilla->priv->tower.tec == GCLUE_TOWER_TEC_3G) { + json_builder_set_member_name (builder, "radioType"); + json_builder_add_string_value (builder, "wcdma"); + } else if (mozilla->priv->tower.tec == GCLUE_TOWER_TEC_2G) { + json_builder_set_member_name (builder, "radioType"); + json_builder_add_string_value (builder, "gsm"); + } json_builder_set_member_name (builder, "cellTowers"); json_builder_begin_array (builder); @@ -218,7 +226,14 @@ gclue_mozilla_create_query (GClueMozilla *mozilla, if (mozilla->priv->tower.tec == GCLUE_TOWER_TEC_4G) { json_builder_set_member_name (builder, "radioType"); json_builder_add_string_value (builder, "lte"); - } + } else if (mozilla->priv->tower.tec == GCLUE_TOWER_TEC_3G) { + json_builder_set_member_name (builder, "radioType"); + json_builder_add_string_value (builder, "wcdma"); + } else if (mozilla->priv->tower.tec == GCLUE_TOWER_TEC_2G) { + json_builder_set_member_name (builder, "radioType"); + json_builder_add_string_value (builder, "gsm"); + } + json_builder_end_object (builder); @@ -485,8 +500,17 @@ gclue_mozilla_create_submit_query (GClueMozilla *mozilla, json_builder_begin_object (builder); - json_builder_set_member_name (builder, "radio"); - json_builder_add_string_value (builder, "gsm"); + if (mozilla->priv->tower.tec == GCLUE_TOWER_TEC_4G) { + json_builder_set_member_name (builder, "radio"); + json_builder_add_string_value (builder, "lte"); + } else if (mozilla->priv->tower.tec == GCLUE_TOWER_TEC_3G) { + json_builder_set_member_name (builder, "radio"); + json_builder_add_string_value (builder, "umts"); + } else if (mozilla->priv->tower.tec == GCLUE_TOWER_TEC_2G) { + json_builder_set_member_name (builder, "radio"); + json_builder_add_string_value (builder, "gsm"); + } + json_builder_set_member_name (builder, "cid"); json_builder_add_int_value (builder, mozilla->priv->tower.cell_id); json_builder_set_member_name (builder, "mcc"); |