summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Noriega <rnoriega@redhat.com>2022-10-28 13:59:08 +0200
committerRicardo Noriega <rnoriega@redhat.com>2022-11-08 18:14:31 +0100
commit722be7e3d74f095db749a9c93df4c618f67371bd (patch)
tree3bfb53b1bda68b62f584b850c403f91fbba39055
parentd731ee804de4949afaff106c8c47062e88aeb603 (diff)
downloadostree-722be7e3d74f095db749a9c93df4c618f67371bd.tar.gz
Enabling retry for HTTP 500 internal server error
Signed-off-by: Ricardo Noriega <rnoriega@redhat.com> Use G_IO_ERROR_BUSY to represent 500 error Signed-off-by: Ricardo Noriega <rnoriega@redhat.com> Make G_IO_ERROR_BUSY independent from glib version Signed-off-by: Ricardo Noriega <rnoriega@redhat.com>
-rw-r--r--src/libostree/ostree-fetcher-util.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libostree/ostree-fetcher-util.c b/src/libostree/ostree-fetcher-util.c
index 450a3abe..1b317630 100644
--- a/src/libostree/ostree-fetcher-util.c
+++ b/src/libostree/ostree-fetcher-util.c
@@ -239,6 +239,7 @@ _ostree_fetcher_should_retry_request (const GError *error,
g_error_matches (error, G_IO_ERROR, G_IO_ERROR_HOST_NOT_FOUND) ||
g_error_matches (error, G_IO_ERROR, G_IO_ERROR_HOST_UNREACHABLE) ||
g_error_matches (error, G_IO_ERROR, G_IO_ERROR_PARTIAL_INPUT) ||
+ g_error_matches (error, G_IO_ERROR, G_IO_ERROR_BUSY) ||
#if !GLIB_CHECK_VERSION(2, 44, 0)
g_error_matches (error, G_IO_ERROR, G_IO_ERROR_BROKEN_PIPE) ||
#else
@@ -269,6 +270,8 @@ _ostree_fetcher_http_status_code_to_io_error (guint status_code)
return G_IO_ERROR_NOT_FOUND;
case 408: /* SOUP_STATUS_REQUEST_TIMEOUT */
return G_IO_ERROR_TIMED_OUT;
+ case 500: /* SOUP_STATUS_INTERNAL_SERVER_ERROR */
+ return G_IO_ERROR_BUSY;
default:
return G_IO_ERROR_FAILED;
}