[libav-devel] [PATCH 2/2] http: Pass the proper return code of net IO operations

Martin Storsjö martin at martin.st
Wed May 30 13:03:56 CEST 2012


On Wed, 30 May 2012, Samuel Pitoiset wrote:

> ---
> libavformat/http.c |   16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/libavformat/http.c b/libavformat/http.c
> index cdf69b5..8aec6c3 100644
> --- a/libavformat/http.c
> +++ b/libavformat/http.c
> @@ -227,7 +227,7 @@ static int http_getc(HTTPContext *s)
>     if (s->buf_ptr >= s->buf_end) {
>         len = ffurl_read(s->hd, s->buffer, BUFFER_SIZE);
>         if (len < 0) {
> -            return AVERROR(EIO);
> +            return len;
>         } else if (len == 0) {
>             return -1;
>         } else {
> @@ -247,7 +247,7 @@ static int http_get_line(HTTPContext *s, char *line, int line_size)
>     for(;;) {
>         ch = http_getc(s);
>         if (ch < 0)
> -            return AVERROR(EIO);
> +            return ch;
>         if (ch == '\n') {
>             /* process line */
>             if (q > line && q[-1] == '\r')
> @@ -354,8 +354,8 @@ static int http_read_header(URLContext *h, int *new_location)
>     int err = 0;
>
>     for (;;) {
> -        if (http_get_line(s, line, sizeof(line)) < 0)
> -            return AVERROR(EIO);
> +        if ((err = http_get_line(s, line, sizeof(line))) < 0)
> +            return err;
>
>         av_dlog(NULL, "header='%s'\n", line);
>
> @@ -447,8 +447,8 @@ static int http_connect(URLContext *h, const char *path, const char *local_path,
>
>     av_freep(&authstr);
>     av_freep(&proxyauthstr);
> -    if (ffurl_write(s->hd, s->buffer, strlen(s->buffer)) < 0)
> -        return AVERROR(EIO);
> +    if ((err = ffurl_write(s->hd, s->buffer, strlen(s->buffer))) < 0)
> +        return err;
>
>     if (s->post_data)
>         if ((err = ffurl_write(s->hd, s->post_data, s->post_datalen)) < 0)
> @@ -526,8 +526,8 @@ static int http_read(URLContext *h, uint8_t *buf, int size)
>
>             for(;;) {
>                 do {
> -                    if (http_get_line(s, line, sizeof(line)) < 0)
> -                        return AVERROR(EIO);
> +                    if ((err = http_get_line(s, line, sizeof(line))) < 0)
> +                        return err;
>                 } while (!*line);    /* skip CR LF from last chunk */
>
>                 s->chunksize = strtoll(line, NULL, 16);
> -- 
> 1.7.10.2

Looks good, I'll apply it later together with the other one.

// Martin


More information about the libav-devel mailing list