Fix #64: Fix Geoclue support when run outside of X

Fix check of error value returned.
Geoclue requires DISPLAY to be set, so try DISPLAY=:0 if not already set.
This commit is contained in:
Jon Lund Steffensen
2014-04-13 22:41:26 +02:00
+18 -6
View File
@@ -60,6 +60,10 @@ location_geoclue_start(location_geoclue_state_t *state)
state->position = geoclue_position_new(state->provider,
state->provider_path);
} else {
if (getenv("DISPLAY") == NULL || *getenv("DISPLAY") == '\0') {
/* TODO This (hack) should be removed when GeoClue has been patched. */
putenv("DISPLAY=:0");
}
GError *error = NULL;
GeoclueMaster *master = geoclue_master_get_default();
GeoclueMasterClient *client = geoclue_master_create_client(master,
@@ -67,9 +71,13 @@ location_geoclue_start(location_geoclue_state_t *state)
g_object_unref(master);
if (client == NULL) {
g_printerr(_("Unable to obtain master client: %s\n"),
error->message);
g_error_free(error);
if (error != NULL) {
g_printerr(_("Unable to obtain master client: %s\n"),
error->message);
g_error_free(error);
} else {
g_printerr(_("Unable to obtain master client\n"));
}
return -1;
}
@@ -78,9 +86,13 @@ location_geoclue_start(location_geoclue_state_t *state)
0, FALSE,
GEOCLUE_RESOURCE_NETWORK,
&error)) {
g_printerr(_("Can't set requirements for master: %s\n"),
error->message);
g_error_free(error);
if (error != NULL) {
g_printerr(_("Can't set requirements for master: %s\n"),
error->message);
g_error_free(error);
} else {
g_printerr(_("Can't set requirements for master\n"));
}
g_object_unref(client);
return -1;