diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2012-05-30 13:52:11 +0400 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2012-05-31 00:46:51 +0400 |
commit | 9613240f72651018734c14517b679ff5fe50bc99 (patch) | |
tree | 3e3af9a55dd4cab449d324042833d1a4de11949c /libavformat/http.c | |
parent | 1876e7c0c2ec0d4a9c2daa45e0ab311b1c2ac413 (diff) |
http: Pass the proper return code of net IO operations
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/http.c')
-rw-r--r-- | libavformat/http.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/libavformat/http.c b/libavformat/http.c index bcb1227ddb..22600b4e4a 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); |