Mercurial > libavformat.hg
comparison http.c @ 385:2f56d366a787 libavformat
no read loop tcp/http and http CRLF fix by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
| author | michael |
|---|---|
| date | Sun, 14 Mar 2004 02:59:33 +0000 |
| parents | 741c56c608bb |
| children | 0fdc96c2f2fe |
comparison
equal
deleted
inserted
replaced
| 384:9479dac25620 | 385:2f56d366a787 |
|---|---|
| 181 | 181 |
| 182 /* send http header */ | 182 /* send http header */ |
| 183 post = h->flags & URL_WRONLY; | 183 post = h->flags & URL_WRONLY; |
| 184 | 184 |
| 185 snprintf(s->buffer, sizeof(s->buffer), | 185 snprintf(s->buffer, sizeof(s->buffer), |
| 186 "%s %s HTTP/1.0\n" | 186 "%s %s HTTP/1.0\r\n" |
| 187 "User-Agent: %s\n" | 187 "User-Agent: %s\r\n" |
| 188 "Accept: */*\n" | 188 "Accept: */*\r\n" |
| 189 "Host: %s\n" | 189 "Host: %s\r\n" |
| 190 "\n", | 190 "\r\n", |
| 191 post ? "POST" : "GET", | 191 post ? "POST" : "GET", |
| 192 path, | 192 path, |
| 193 LIBAVFORMAT_IDENT, | 193 LIBAVFORMAT_IDENT, |
| 194 hoststr); | 194 hoststr); |
| 195 | 195 |
| 236 | 236 |
| 237 | 237 |
| 238 static int http_read(URLContext *h, uint8_t *buf, int size) | 238 static int http_read(URLContext *h, uint8_t *buf, int size) |
| 239 { | 239 { |
| 240 HTTPContext *s = h->priv_data; | 240 HTTPContext *s = h->priv_data; |
| 241 int size1, len; | 241 int len; |
| 242 | 242 |
| 243 size1 = size; | 243 /* read bytes from input buffer first */ |
| 244 while (size > 0) { | 244 len = s->buf_end - s->buf_ptr; |
| 245 /* read bytes from input buffer first */ | 245 if (len > 0) { |
| 246 len = s->buf_end - s->buf_ptr; | 246 if (len > size) |
| 247 if (len > 0) { | 247 len = size; |
| 248 if (len > size) | 248 memcpy(buf, s->buf_ptr, len); |
| 249 len = size; | 249 s->buf_ptr += len; |
| 250 memcpy(buf, s->buf_ptr, len); | 250 } else { |
| 251 s->buf_ptr += len; | 251 len = url_read(s->hd, buf, size); |
| 252 } else { | 252 } |
| 253 len = url_read (s->hd, buf, size); | 253 return len; |
| 254 if (len < 0) { | |
| 255 return len; | |
| 256 } else if (len == 0) { | |
| 257 break; | |
| 258 } | |
| 259 } | |
| 260 size -= len; | |
| 261 buf += len; | |
| 262 } | |
| 263 return size1 - size; | |
| 264 } | 254 } |
| 265 | 255 |
| 266 /* used only when posting data */ | 256 /* used only when posting data */ |
| 267 static int http_write(URLContext *h, uint8_t *buf, int size) | 257 static int http_write(URLContext *h, uint8_t *buf, int size) |
| 268 { | 258 { |
