avformat/http: Introduce ff_http_averror()

int ff_http_averror(int status_code, int default_averror)

This helper function returns AVERROR_ value from 3-digit HTTP status
code.

Second argument, default_averror, is used if no specific AVERROR_ is
available. It is introduced because in different places of code
different return codes are used - -1, AVERROR(EIO), AVERROR_INVALIDDATA.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/89/head
Andrey Utkin 10 years ago committed by Michael Niedermayer
parent d4e62ebae7
commit 9d86ce783b
  1. 17
      libavformat/http.c
  2. 2
      libavformat/http.h

@ -272,6 +272,23 @@ int ff_http_do_new_request(URLContext *h, const char *uri)
return ret; return ret;
} }
int ff_http_averror(int status_code, int default_averror)
{
switch (status_code) {
case 400: return AVERROR_HTTP_BAD_REQUEST;
case 401: return AVERROR_HTTP_UNAUTHORIZED;
case 403: return AVERROR_HTTP_FORBIDDEN;
case 404: return AVERROR_HTTP_NOT_FOUND;
default: break;
}
if (status_code >= 400 && status_code <= 499)
return AVERROR_HTTP_OTHER_4XX;
else if (status_code >= 500)
return AVERROR_HTTP_SERVER_ERROR;
else
return default_averror;
}
static int http_open(URLContext *h, const char *uri, int flags, static int http_open(URLContext *h, const char *uri, int flags,
AVDictionary **options) AVDictionary **options)
{ {

@ -47,4 +47,6 @@ void ff_http_init_auth_state(URLContext *dest, const URLContext *src);
*/ */
int ff_http_do_new_request(URLContext *h, const char *uri); int ff_http_do_new_request(URLContext *h, const char *uri);
int ff_http_averror(int status_code, int default_averror);
#endif /* AVFORMAT_HTTP_H */ #endif /* AVFORMAT_HTTP_H */

Loading…
Cancel
Save