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
This commit is contained in:
		
							parent
							
								
									a6a9158973
								
							
						
					
					
						commit
						077026ccf3
					
				@ -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;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user