summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShoji Keita <awaittrot@shjk.jp>2022-10-10 15:41:31 +0900
committerTeemu Ikonen <tpikonen@mailbox.org>2022-10-26 10:33:21 +0000
commitb70965dd73f910d67c1a19b4c2d43f0a233883a5 (patch)
treeaf8dd7054f0eaa526cd0577cc9ac8bd50acd9fcc
parent843118c5d3db2d9e76ddb515345107ea7b40d616 (diff)
downloadgeoclue-b70965dd73f910d67c1a19b4c2d43f0a233883a5.tar.gz
mozilla: Submit cell tower with correct radio type
-rw-r--r--src/gclue-mozilla.c34
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");