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>
This commit is contained in:
Ricardo Noriega 2022-10-28 13:59:08 +02:00
parent d731ee804d
commit 722be7e3d7

View File

@ -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_NOT_FOUND) ||
g_error_matches (error, G_IO_ERROR, G_IO_ERROR_HOST_UNREACHABLE) || 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_PARTIAL_INPUT) ||
g_error_matches (error, G_IO_ERROR, G_IO_ERROR_BUSY) ||
#if !GLIB_CHECK_VERSION(2, 44, 0) #if !GLIB_CHECK_VERSION(2, 44, 0)
g_error_matches (error, G_IO_ERROR, G_IO_ERROR_BROKEN_PIPE) || g_error_matches (error, G_IO_ERROR, G_IO_ERROR_BROKEN_PIPE) ||
#else #else
@ -269,6 +270,8 @@ _ostree_fetcher_http_status_code_to_io_error (guint status_code)
return G_IO_ERROR_NOT_FOUND; return G_IO_ERROR_NOT_FOUND;
case 408: /* SOUP_STATUS_REQUEST_TIMEOUT */ case 408: /* SOUP_STATUS_REQUEST_TIMEOUT */
return G_IO_ERROR_TIMED_OUT; return G_IO_ERROR_TIMED_OUT;
case 500: /* SOUP_STATUS_INTERNAL_SERVER_ERROR */
return G_IO_ERROR_BUSY;
default: default:
return G_IO_ERROR_FAILED; return G_IO_ERROR_FAILED;
} }