[tracker-miners/wip/carlosg/better-extractor-errors: 3/5] tracker-extract: Fill in some more errors
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker-miners/wip/carlosg/better-extractor-errors: 3/5] tracker-extract: Fill in some more errors
- Date: Thu, 12 Nov 2020 23:28:55 +0000 (UTC)
commit 52fe417222700d8e1e35c3118a9e59f1d16c71c2
Author: Carlos Garnacho <carlosg gnome org>
Date: Mon Nov 9 01:11:33 2020 +0100
tracker-extract: Fill in some more errors
Remove some of those warnings, and replace them with errors being
propagated. This'll make those errors visible in "tracker3 status".
src/tracker-extract/tracker-extract-abw.c | 24 ++++++++++-------
src/tracker-extract/tracker-extract-bmp.c | 8 +++---
src/tracker-extract/tracker-extract-desktop.c | 35 ++++++++++++-------------
src/tracker-extract/tracker-extract-gif.c | 10 ++++---
src/tracker-extract/tracker-extract-gstreamer.c | 5 ++++
src/tracker-extract/tracker-extract-msoffice.c | 7 +++--
src/tracker-extract/tracker-extract-png.c | 4 +++
src/tracker-extract/tracker-extract-tiff.c | 15 +++++++----
8 files changed, 66 insertions(+), 42 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-abw.c b/src/tracker-extract/tracker-extract-abw.c
index bbc612b5f..035c34e14 100644
--- a/src/tracker-extract/tracker-extract-abw.c
+++ b/src/tracker-extract/tracker-extract-abw.c
@@ -196,17 +196,21 @@ tracker_extract_get_metadata (TrackerExtractInfo *info,
fd = tracker_file_open_fd (filename);
if (fd == -1) {
- g_warning ("Could not open abw file '%s': %s\n",
- filename,
- g_strerror (errno));
+ g_set_error (error,
+ G_IO_ERROR,
+ g_io_error_from_errno (errno),
+ "Could not open abw file: %s",
+ g_strerror (errno));
g_free (filename);
return retval;
}
if (fstat (fd, &st) == -1) {
- g_warning ("Could not fstat abw file '%s': %s\n",
- filename,
- g_strerror (errno));
+ g_set_error (error,
+ G_IO_ERROR,
+ g_io_error_from_errno (errno),
+ "Could not fstat abw file: %s",
+ g_strerror (errno));
close (fd);
g_free (filename);
return retval;
@@ -218,9 +222,11 @@ tracker_extract_get_metadata (TrackerExtractInfo *info,
} else {
contents = (gchar *) mmap (NULL, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
if (contents == MAP_FAILED) {
- g_warning ("Could not mmap abw file '%s': %s\n",
- filename,
- g_strerror (errno));
+ g_set_error (error,
+ G_IO_ERROR,
+ g_io_error_from_errno (errno),
+ "Could not mmap abw file: %s",
+ g_strerror (errno));
close (fd);
g_free (filename);
return retval;
diff --git a/src/tracker-extract/tracker-extract-bmp.c b/src/tracker-extract/tracker-extract-bmp.c
index adfb8e393..97362d963 100644
--- a/src/tracker-extract/tracker-extract-bmp.c
+++ b/src/tracker-extract/tracker-extract-bmp.c
@@ -113,16 +113,16 @@ tracker_extract_get_metadata (TrackerExtractInfo *info,
gint64 width = 0, height = 0;
file = tracker_extract_info_get_file (info);
- if (!file) {
- return FALSE;
- }
-
filename = g_file_get_path (file);
size = tracker_file_get_size (filename);
g_free (filename);
if (size < 14) {
/* Smaller than BMP header, can't be a real BMP file */
+ g_set_error (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_DATA,
+ "File too small to be a BMP");
return FALSE;
}
diff --git a/src/tracker-extract/tracker-extract-desktop.c b/src/tracker-extract/tracker-extract-desktop.c
index 0c793d48e..c58924649 100644
--- a/src/tracker-extract/tracker-extract-desktop.c
+++ b/src/tracker-extract/tracker-extract-desktop.c
@@ -101,10 +101,11 @@ insert_data_from_desktop_file (TrackerResource *resource,
static gboolean
process_desktop_file (TrackerResource *resource,
- GFile *file)
+ GFile *file,
+ GError **error)
{
GKeyFile *key_file;
- GError *error = NULL;
+ GError *inner_error = NULL;
gchar *name = NULL;
gchar *type;
GStrv cats;
@@ -112,16 +113,12 @@ process_desktop_file (TrackerResource *resource,
gboolean is_software = FALSE;
gchar *lang;
- key_file = get_desktop_key_file (file, &type, &error);
- if (!key_file) {
+ key_file = get_desktop_key_file (file, &type, &inner_error);
+ if (inner_error) {
gchar *uri;
uri = g_file_get_uri (file);
- g_warning ("Could not load desktop file '%s': %s",
- uri,
- error->message ? error->message : "no error given");
-
- g_error_free (error);
+ g_propagate_prefixed_error (error, inner_error, "Could not load desktop file:");
g_free (uri);
return FALSE;
}
@@ -130,7 +127,7 @@ process_desktop_file (TrackerResource *resource,
g_debug ("Desktop file is hidden");
g_key_file_free (key_file);
g_free (type);
- return FALSE;
+ return TRUE;
}
/* Retrieve LANG locale setup */
@@ -181,12 +178,10 @@ process_desktop_file (TrackerResource *resource,
g_free (link_url);
} else {
/* a Link desktop entry must have an URL */
- gchar *uri;
-
- uri = g_file_get_uri (file);
- g_warning ("Link desktop entry '%s' does not have an url", uri);
-
- g_free (uri);
+ g_set_error (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_ARGUMENT,
+ "Link desktop entry does not have an url");
g_free (type);
g_key_file_free (key_file);
g_strfreev (cats);
@@ -196,7 +191,11 @@ process_desktop_file (TrackerResource *resource,
}
} else {
/* Invalid type, all valid types are already listed above */
- g_warning ("Unknown desktop entry type '%s'", type);
+ g_set_error (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_ARGUMENT,
+ "Unknown desktop entry type '%s'",
+ type);
g_free (type);
g_key_file_free (key_file);
g_strfreev (cats);
@@ -301,7 +300,7 @@ tracker_extract_get_metadata (TrackerExtractInfo *info,
metadata = tracker_resource_new (NULL);
- if (!process_desktop_file (metadata, tracker_extract_info_get_file (info))) {
+ if (!process_desktop_file (metadata, tracker_extract_info_get_file (info), error)) {
g_object_unref (metadata);
return FALSE;
}
diff --git a/src/tracker-extract/tracker-extract-gif.c b/src/tracker-extract/tracker-extract-gif.c
index be5fd3353..579693881 100644
--- a/src/tracker-extract/tracker-extract-gif.c
+++ b/src/tracker-extract/tracker-extract-gif.c
@@ -496,12 +496,14 @@ tracker_extract_get_metadata (TrackerExtractInfo *info,
fd = tracker_file_open_fd (filename);
if (fd == -1) {
- g_warning ("Could not open GIF file '%s': %s\n",
- filename,
- g_strerror (errno));
+ g_set_error (error,
+ G_IO_ERROR,
+ g_io_error_from_errno (errno),
+ "Could not open GIF file: %s\n",
+ g_strerror (errno));
g_free (filename);
return FALSE;
- }
+ }
#if GIFLIB_MAJOR < 5
if ((gifFile = DGifOpenFileHandle (fd)) == NULL) {
diff --git a/src/tracker-extract/tracker-extract-gstreamer.c b/src/tracker-extract/tracker-extract-gstreamer.c
index f9b41b7cd..4a098ee78 100644
--- a/src/tracker-extract/tracker-extract-gstreamer.c
+++ b/src/tracker-extract/tracker-extract-gstreamer.c
@@ -1386,6 +1386,11 @@ tracker_extract_get_metadata (TrackerExtractInfo *info,
} else if (g_str_has_prefix (mimetype, "image/")) {
main_resource = tracker_extract_gstreamer (uri, info, EXTRACT_MIME_IMAGE);
} else {
+ g_set_error (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_ARGUMENT,
+ "Mimetype '%s is not supported",
+ mimetype);
g_free (uri);
return FALSE;
}
diff --git a/src/tracker-extract/tracker-extract-msoffice.c b/src/tracker-extract/tracker-extract-msoffice.c
index 96ccc1c82..06220671b 100644
--- a/src/tracker-extract/tracker-extract-msoffice.c
+++ b/src/tracker-extract/tracker-extract-msoffice.c
@@ -1642,8 +1642,11 @@ tracker_extract_get_metadata (TrackerExtractInfo *info,
g_free (filename);
if (!mfile) {
- g_warning ("Can't open file from uri '%s': %s",
- uri, g_strerror (errno));
+ g_set_error (error,
+ G_IO_ERROR,
+ g_io_error_from_errno (errno),
+ "Can't open file: %s",
+ g_strerror (errno));
g_free (uri);
return FALSE;
}
diff --git a/src/tracker-extract/tracker-extract-png.c b/src/tracker-extract/tracker-extract-png.c
index fa22cfc84..c793b968e 100644
--- a/src/tracker-extract/tracker-extract-png.c
+++ b/src/tracker-extract/tracker-extract-png.c
@@ -661,6 +661,10 @@ tracker_extract_get_metadata (TrackerExtractInfo *info,
size = tracker_file_get_size (filename);
if (size < 64) {
+ g_set_error (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_DATA,
+ "File too small to be a PNG");
return FALSE;
}
diff --git a/src/tracker-extract/tracker-extract-tiff.c b/src/tracker-extract/tracker-extract-tiff.c
index 6d48b05f9..779ca4379 100644
--- a/src/tracker-extract/tracker-extract-tiff.c
+++ b/src/tracker-extract/tracker-extract-tiff.c
@@ -285,15 +285,20 @@ tracker_extract_get_metadata (TrackerExtractInfo *info,
fd = tracker_file_open_fd (filename);
if (fd == -1) {
- g_warning ("Could not open tiff file '%s': %s\n",
- filename,
- g_strerror (errno));
+ g_set_error (error,
+ G_IO_ERROR,
+ g_io_error_from_errno (errno),
+ "Could not open tiff file: %s",
+ g_strerror (errno));
g_free (filename);
return FALSE;
- }
+ }
if ((image = TIFFFdOpen (fd, filename, "r")) == NULL){
- g_warning ("Could not open image:'%s'\n", filename);
+ g_set_error (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_ARGUMENT,
+ "Could not parse tiff file");
g_free (filename);
close (fd);
return FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]