diff options
author | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> | 2014-04-10 01:33:52 +0100 |
---|---|---|
committer | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> | 2014-04-10 01:33:52 +0100 |
commit | b58da83f0feaa60a2b0655eb6cd26a8b0178556b (patch) | |
tree | 461235bd2eee30c183807a60eebca357b1cab455 | |
parent | 9c3594b66549a16f37221aea793e23ccb161f3c4 (diff) | |
download | geoclue-b58da83f0feaa60a2b0655eb6cd26a8b0178556b.tar.gz |
Allow specifying nickname to submit network data with
-rw-r--r-- | data/geoclue.conf.in | 5 | ||||
-rw-r--r-- | src/gclue-config.c | 18 | ||||
-rw-r--r-- | src/gclue-config.h | 19 | ||||
-rw-r--r-- | src/gclue-wifi.c | 11 |
4 files changed, 41 insertions, 12 deletions
diff --git a/data/geoclue.conf.in b/data/geoclue.conf.in index feace8b..3d32fac 100644 --- a/data/geoclue.conf.in +++ b/data/geoclue.conf.in @@ -19,6 +19,11 @@ url=https://location.services.mozilla.com/v1/geolocate?key=geoclue # each time it gets a GPS lock. #submission-url=https://location.services.mozilla.com/v1/submit?key=geoclue +# A nickname to submit network data with. This is currently used for leaderboard: +# https://location.services.mozilla.com/leaders +# A nickname must be 2-32 characters long. +#submission-nick=geoclue + # To use the Google geolocation service instead of mozilla's, simply uncomment # this url while changing API_KEY to your Google API key and comment out or # remove the url above. diff --git a/src/gclue-config.c b/src/gclue-config.c index 3feb0f5..4da3502 100644 --- a/src/gclue-config.c +++ b/src/gclue-config.c @@ -216,3 +216,21 @@ gclue_config_get_wifi_submit_url (GClueConfig *config) return url; } + +char * +gclue_config_get_wifi_submit_nick (GClueConfig *config) +{ + char *nick; + GError *error = NULL; + + nick = g_key_file_get_string (config->priv->key_file, + "wifi", + "submission-nick", + &error); + if (error != NULL) { + g_debug ("No wifi submission nick: %s", error->message); + g_error_free (error); + } + + return nick; +} diff --git a/src/gclue-config.h b/src/gclue-config.h index c77a514..c510ff5 100644 --- a/src/gclue-config.h +++ b/src/gclue-config.h @@ -57,15 +57,16 @@ struct _GClueConfigClass GType gclue_config_get_type (void) G_GNUC_CONST; -GClueConfig * gclue_config_get_singleton (void); -gboolean gclue_config_is_agent_allowed (GClueConfig *config, - const char *desktop_id, - GClueClientInfo *agent_info); -gboolean gclue_config_is_app_allowed (GClueConfig *config, - const char *desktop_id, - GClueClientInfo *app_info); -char * gclue_config_get_wifi_url (GClueConfig *config); -char * gclue_config_get_wifi_submit_url (GClueConfig *config); +GClueConfig * gclue_config_get_singleton (void); +gboolean gclue_config_is_agent_allowed (GClueConfig *config, + const char *desktop_id, + GClueClientInfo *agent_info); +gboolean gclue_config_is_app_allowed (GClueConfig *config, + const char *desktop_id, + GClueClientInfo *app_info); +char * gclue_config_get_wifi_url (GClueConfig *config); +char * gclue_config_get_wifi_submit_url (GClueConfig *config); +char * gclue_config_get_wifi_submit_nick (GClueConfig *config); G_END_DECLS diff --git a/src/gclue-wifi.c b/src/gclue-wifi.c index 1014662..f5612cd 100644 --- a/src/gclue-wifi.c +++ b/src/gclue-wifi.c @@ -681,11 +681,12 @@ gclue_wifi_parse_response (GClueWebSource *source, #if GCLUE_USE_NETWORK_MANAGER static char * -get_submit_url (void) +get_submit_config (char **nick) { GClueConfig *config; config = gclue_config_get_singleton (); + *nick = gclue_config_get_wifi_submit_nick (config); return gclue_config_get_wifi_submit_url (config); } @@ -700,14 +701,14 @@ gclue_wifi_create_submit_query (GClueWebSource *source, JsonBuilder *builder; JsonGenerator *generator; JsonNode *root_node; - char *data, *timestamp, *url; + char *data, *timestamp, *url, *nick; gsize data_len; const GPtrArray *aps; /* As in Access Points */ guint i, frequency; gdouble lat, lon, accuracy, altitude; GTimeVal tv; - url = get_submit_url (); + url = get_submit_config (&nick); if (url == NULL) goto out; @@ -791,6 +792,10 @@ gclue_wifi_create_submit_query (GClueWebSource *source, g_object_unref (generator); ret = soup_message_new ("POST", url); + if (nick != NULL && nick[0] != '\0') + soup_message_headers_append (ret->request_headers, + "X-Nickname", + nick); soup_message_set_request (ret, "application/json", SOUP_MEMORY_TAKE, |