Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2010-06-21 23:01:32 +0400
committerMartin Storsjö <martin@martin.st>2010-06-21 23:01:32 +0400
commit077026ccf38e77f11de244d526c89c3d031ce9d2 (patch)
tree02da18b26d8bd7a12ac7cab41b0861677a6fca73 /libavformat/http.c
parenta6a9158973ac9a900ca5806ae13e02a28c9388db (diff)
HTTP: Get rid of the is_chunked variable, use the chunksize variable instead
Originally committed as revision 23682 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/http.c')
-rw-r--r--libavformat/http.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/libavformat/http.c b/libavformat/http.c
index ae03e0ff58..7156e0c799 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -48,7 +48,6 @@ typedef struct {
HTTPAuthState auth_state;
int init;
unsigned char headers[BUFFER_SIZE];
- int is_chunked;
} HTTPContext;
static int http_connect(URLContext *h, const char *path, const char *hoststr,
@@ -67,7 +66,7 @@ void ff_http_set_headers(URLContext *h, const char *headers)
void ff_http_set_chunked_transfer_encoding(URLContext *h, int is_chunked)
{
- ((HTTPContext*)h->priv_data)->is_chunked = is_chunked;
+ ((HTTPContext*)h->priv_data)->chunksize = is_chunked ? 0 : -1;
}
/* return non zero if error */
@@ -152,7 +151,7 @@ static int http_open(URLContext *h, const char *uri, int flags)
}
h->priv_data = s;
s->filesize = -1;
- s->is_chunked = 1;
+ s->chunksize = 0; /* Default to chunked POSTs */
s->off = 0;
s->init = 0;
s->hd = NULL;
@@ -316,7 +315,7 @@ static int http_connect(URLContext *h, const char *path, const char *hoststr,
"\r\n",
post ? "POST" : "GET",
path,
- post && s->is_chunked ? "Transfer-Encoding: chunked\r\n" : "",
+ post && s->chunksize >= 0 ? "Transfer-Encoding: chunked\r\n" : "",
headers,
authstr ? authstr : "");
@@ -330,16 +329,14 @@ static int http_connect(URLContext *h, const char *path, const char *hoststr,
s->line_count = 0;
s->off = 0;
s->filesize = -1;
- s->chunksize = -1;
if (post) {
- /* always use chunked encoding for upload data */
- s->chunksize = 0;
/* Pretend that it did work. We didn't read any header yet, since
* we've still to send the POST data, but the code calling this
* function will check http_code after we return. */
s->http_code = 200;
return 0;
}
+ s->chunksize = -1;
/* wait for header */
for(;;) {
@@ -442,16 +439,14 @@ static int http_write(URLContext *h, const uint8_t *buf, int size)
* signal EOF */
if (size > 0) {
/* upload data using chunked encoding */
- if(s->is_chunked) {
snprintf(temp, sizeof(temp), "%x\r\n", size);
if ((ret = url_write(s->hd, temp, strlen(temp))) < 0)
return ret;
- }
if ((ret = url_write(s->hd, buf, size)) < 0)
return ret;
- if (s->is_chunked && (ret = url_write(s->hd, crlf, sizeof(crlf) - 1)) < 0)
+ if ((ret = url_write(s->hd, crlf, sizeof(crlf) - 1)) < 0)
return ret;
}
return size;