summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* gclue-web-source: make sure the accuracy is known before sending a ↵HEADmasterChris Talbot2023-05-071-0/+2
| | | | submission query
* mozilla: Add 'age' field to MLS locate queriesTeemu Ikonen2023-04-291-1/+7
|
* CI: Use detached CI pipelinesTeemu Ikonen2023-04-291-2/+4
| | | This should allow running pipelines again per freedesktop/freedesktop#540
* Release 2.7.02.7.0Maciej S. Szmigiero2023-01-222-1/+30
| | | | | | Thanks to all who contributed to this release! Closes: #172
* config: Debug log config also when conf.d dir is missingTeemu Ikonen2023-01-221-2/+2
|
* config: Debug log locate and submit URLs on startupTeemu Ikonen2023-01-211-0/+29
| | | | Redact the API key, if a 'key' parameter is found in the URL string.
* data: meson: drop deprecated get_pkgconfig_variable()Dylan Van Assche2023-01-201-1/+1
| | | | | Meson 0.56.0 deprecated get_pkgconfig_variable(), use get_variable() instead.
* meson: drop deprecated source_root()Dylan Van Assche2023-01-201-1/+1
| | | | | Meson 0.56.0 deprecated source_root(), use project_source_root() instead.
* data: geoclue.5.in: adjust man pageDylan Van Assche2023-01-201-3/+13
| | | | Mention conf.d overwrites in man page
* config: print extracted configDylan Van Assche2023-01-201-0/+51
| | | | | Print out the extracted config including conf.d overwrites for debugging-only.
* meson: install conf.d directoryDylan Van Assche2023-01-203-2/+5
| | | | | Bump to meson 0.60.0 for install_emptydir support to install conf.d directory.
* config: add support for conf.d styleDylan Van Assche2023-01-201-99/+263
| | | | | | | | | | Distros may want to overwrite various parameters of GeoClue's config file without shipping a complete config file which may result into out-of-sync config files when newer GeoClue versions are released. Support /etc/geoclue/conf.d/ as a config directory in which distros can place overwrites, the config files are loaded in alphabetic order and overwrite the original config file parameters stored in /etc/geoclue/geoclue.conf
* Add static location sourceMaciej S. Szmigiero2023-01-1511-9/+647
| | | | | | | | | | | | | | | There were many requests to provide a static location source for systems which don't normally move but where the existing location sources provide poor location estimate. An example of such system would be a desktop PC without WiFi or 3G modem. So let's add a source that reads location from "geolocation" file in @sysconfdir@ (normally /etc) to cover this use case. This file is constantly monitored for changes during Geoclue operation and the reported static location is updated accordingly. The geoclue(5) man page should be consulted for the format description of this file.
* Remove manual GDateTime memory managementMaciej S. Szmigiero2023-01-142-10/+10
|
* Use automatic char* memory management where possibleMaciej S. Szmigiero2023-01-146-24/+17
| | | | | | Remove explicit g_free () calls and convert char* allocations to g_autofree. Fixes at least one memory leak in gclue_service_agent_handle_authorize_app ().
* Set libsoup session proxy resolver to NULLTeemu Ikonen2023-01-121-1/+1
| | | | | | | | | Remove the soup_session_remove_feature_by_type () call, it always prints a "No feature manager for feature of type 'GProxyResolver'" warning on startup. Disable proxy by setting the 'proxy-resolver' property of SoupSession to NULL.
* mozilla: Submit BSS age property in wifiAccessPointsTeemu Ikonen2023-01-121-0/+7
|
* interface: Add 'Age' property to fi.w1.wpa_supplicant1.BSSTeemu Ikonen2023-01-121-0/+1
|
* interface: Pretty print fi.w1.wpa_supplicant1.xmlTeemu Ikonen2023-01-121-39/+34
|
* web-source: Locate / submit URLs are reachable if Internet is availableMaciej S. Szmigiero2023-01-071-0/+19
| | | | | | Let's regard locate / submit URLs as reachable if Internet is available, otherwise temporary DNS resolving problems can cause these to be regarded as unreachable until a new network change causes new probes to be sent.
* web-source: Cancel old g_network_monitor calls before starting new onesMaciej S. Szmigiero2023-01-071-0/+13
| | | | | This way there won't be multiple outstanding reachability checks if network configuration changes quickly multiple times.
* web-source: Only update "last_submitted" if we actually attempt to submitMaciej S. Szmigiero2023-01-071-3/+3
| | | | | This way we won't be waiting inter-submission intervals even though we aren't actually submitting anything.
* config: Inner for loop "continue" should be "break" in load_app_configs ()Maciej S. Szmigiero2023-01-071-1/+1
| | | | | | The "continue" statement in the inner for loop in load_app_configs () should obviously be a "break" statement instead, since there's no need to continue that loop once first matching element is found.
* Remove manual GStrv memory managementMaciej S. Szmigiero2023-01-052-15/+11
|
* Remove manual GError memory managementMaciej S. Szmigiero2023-01-0510-41/+22
|
* ci: Switch to Ubuntu 22.04 & install libsoup3Maximiliano Sandoval R2022-11-131-6/+7
|
* Add support for building with libsoup3Carlos Garcia Campos2022-11-134-68/+74
| | | | | | | | | | Remove soup2 build option, based on https://gitlab.freedesktop.org/geoclue/geoclue/-/merge_requests/83 Original commit message: Add soup2 build option, enabled by default. When disabled, libsoup3 will be used instead.
* data: Update manpageShoji Keita2022-11-061-4/+18
|
* mozilla: add speed fieldShoji Keita2022-11-061-1/+7
|
* mozilla: Adapt to new /v2/geosubmit APIShoji Keita2022-11-064-42/+29
| | | | | While old /v1/submit API is still active right now, it has been deprecated since 2015. It's better to migrate to new /v2/geosubmit API.
* web-source: Check connectivity with g_network_monitor_can_reachTeemu Ikonen2022-10-314-26/+141
| | | | | | | | | | | | | | Add instance variables locate_url and submit_url and setter functions for them. Set these URLs in the initializers of child classes GClue3G and GClueWifi. Do separate connectivity checks for submit_url and locate_url using g_network_monitor_can_reach_async(). This allows location and submission servers running on localhost to be reached when there is no outside connectivity. Add a GCancellable priv->cancellable and use it in g_network_monitor_can_reach_async() calls.
* mozilla: Add getters for locate and submit URLsTeemu Ikonen2022-10-312-16/+18
| | | | Use them when creating queries.
* config: Improve WiFi / MLS config debug messagesTeemu Ikonen2022-10-311-3/+3
|
* mozilla: Validate TowerTec in the setter func and on query creationTeemu Ikonen2022-10-302-23/+32
| | | | | | | | | | Set tower_valid to true only on valid TowerTec values in gclue_mozilla_set_tower(). Add towertec_to_radiotype() function which converts a TowerTec value to an MLS API 'radioType' string. If TowerTec does not correspond to values known to MLS, skip the creation of 'radioType' and 'cellTowers' members in the MLS locate query.
* mozilla: Submit cell tower with correct radio typeShoji Keita2022-10-261-5/+29
|
* modem: Get radio type from modemShoji Keita2022-10-262-17/+32
|
* data: Set env var GSETTINGS_BACKEND=memory in geoclue.service.inTeemu Ikonen2022-10-241-0/+1
| | | | | | This prevents "Read-only file system. dconf will not work properly." warnings from the dconf GSettings backend, when GeoClue is run with ProtectSystem=strict, i.e. a read-only homedir.
* Make sure to not cast user_data to GObjects in callback if call is canceledMaciej S. Szmigiero2022-10-118-95/+133
| | | | | This can abort at runtime if the object pointed to by user_data is already gone by the time the callback is run.
* Make sure signals aren't left connected after handler object is goneMaciej S. Szmigiero2022-10-115-42/+44
|
* Add location source description to locationMaciej S. Szmigiero2022-10-119-25/+82
| | | | So it's obvious which location source provided them.
* Get rid of GClueWebSource parse_response() methodMaciej S. Szmigiero2022-10-114-30/+2
| | | | Since it has exactly the same implementation for every derived class.
* Make debug messages more specific which location source they pertainMaciej S. Szmigiero2022-10-115-25/+29
| | | | And consolidate duplicate ones.
* wifi: Cancellation fixesMaciej S. Szmigiero2022-10-062-22/+54
| | | | | | Make sure we pass an appropriate GCancellable to various async calls in gclue-wifi and handle the resulting cancellation gracefully to avoid hitting UAFs when stopping the source.
* location-source: Make location scrambling more fine-grainedMaciej S. Szmigiero2022-10-061-3/+12
| | | | | | | | | Add a random gdouble distance between 0 km and 3 km to the latitude when scrambling a location instead of just one of two possible integer distances: 1 km or 2 km. If the location source is already pretty inaccurate do just a limited range scrambling (up to 1 km) - just to be sure.
* location: Add missing location accuracy levels defines in gclue-location.hMaciej S. Szmigiero2022-10-061-0/+18
| | | | And mark these levels which are currently unused for reference.
* location: Add a generic gclue_location_duplicate_fresh() functionMaciej S. Szmigiero2022-10-063-16/+29
| | | | | Instead of open-coding its equivalent in gclue-wifi.c (future location sources will also make use of this function).
* location: Add missing "description" field in gclue_location_duplicate()Maciej S. Szmigiero2022-10-061-0/+1
|
* Submit MLS requests with combined WiFi and 3GPP tower dataMaciej S. Szmigiero2022-08-077-88/+471
| | | | | | | | | | | | | | | | | | | | | | | Currently, there is no combining of WiFi Access Points data and 3GPP tower data to make a single, combined MLS geolocation request. Instead, the code does two separate MLS requests if both of these sources are available, each containing only either WiFi AP data or 3GPP tower data. This results in two different location determinations. If these two locations differ (which happens often) the Geoclue location jumps between these two locations as WiFi and 3GPP location sources are refreshed. There is also a problem of reduced accuracy since with two separate requests the MLS backend can't cross-correlate data between both. Instead, one is supposed to send a MLS query containing all the collected data at the same time, like the example at MLS API page shows. The same goes for MLS location submissions. Sending WiFi and 3GPP tower data combined makes Geoclue location determination significantly more stable indeed when both of these sources are active.
* web-source: Move "accuracy-level" property from WiFi source to the Web ↵Maciej S. Szmigiero2022-08-073-73/+73
| | | | | | source base class This way the 3G source will be able to make use of it, too.
* modem-manager: Emit a NO_FIX location signal from modem handler when 3G ↵Maciej S. Szmigiero2022-08-073-4/+33
| | | | | | | tower data is lost And make sure that we emit tower data unconditionally when 3G source is started in order to prime it.