[FFmpeg-devel] [PATCH v2 2/9] avformat/http: Use AVERROR_HTTP_TOO_MANY_REQUESTS

Martin Storsjö martin at martin.st
Wed Apr 24 13:58:08 EEST 2024


On Mon, 22 Apr 2024, Derek Buitenhuis wrote:

> Added in thep previous commit.
>
> Signed-off-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>
> ---
> libavformat/http.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/libavformat/http.c b/libavformat/http.c
> index ed20359552..bbace2694f 100644
> --- a/libavformat/http.c
> +++ b/libavformat/http.c
> @@ -286,6 +286,7 @@ static int http_should_reconnect(HTTPContext *s, int err)
>     case AVERROR_HTTP_UNAUTHORIZED:
>     case AVERROR_HTTP_FORBIDDEN:
>     case AVERROR_HTTP_NOT_FOUND:
> +    case AVERROR_HTTP_TOO_MANY_REQUESTS:
>     case AVERROR_HTTP_OTHER_4XX:
>         status_group = "4xx";
>         break;
> @@ -522,6 +523,7 @@ int ff_http_averror(int status_code, int default_averror)
>         case 401: return AVERROR_HTTP_UNAUTHORIZED;
>         case 403: return AVERROR_HTTP_FORBIDDEN;
>         case 404: return AVERROR_HTTP_NOT_FOUND;
> +        case 429: return AVERROR_HTTP_TOO_MANY_REQUESTS;
>         default: break;
>     }
>     if (status_code >= 400 && status_code <= 499)
> @@ -558,6 +560,10 @@ static int http_write_reply(URLContext* h, int status_code)
>         reply_code = 404;
>         reply_text = "Not Found";
>         break;
> +    case 429:
> +        reply_code = 429;
> +        reply_text = "Too Many Requests";
> +        break;
>     case 200:

This function seems to handle both the literal status codes, like 429, and 
also AVERROR style error codes, as when called from handle_http_errors, so 
perhaps it would be good for consistency to add the AVERROR here too.

// Martin



More information about the ffmpeg-devel mailing list