int64_t off, filesize;
char location[URL_SIZE];
HTTPAuthState auth_state;
- int init;
unsigned char headers[BUFFER_SIZE];
} HTTPContext;
HTTPContext *s = h->priv_data;
URLContext *hd = NULL;
- s->init = 1;
proxy_path = getenv("http_proxy");
use_proxy = (proxy_path != NULL) && !getenv("no_proxy") &&
av_strstart(proxy_path, "http://", NULL);
s->filesize = -1;
av_strlcpy(s->location, uri, URL_SIZE);
- return 0;
+ return http_open_cnx(h);
}
static int http_getc(HTTPContext *s)
{
HTTPContext *s = h->priv_data;
int len;
- if (!s->init) {
- int ret = http_open_cnx(h);
- if (ret != 0)
- return ret;
- }
- if (!s->hd)
- return AVERROR(EIO);
-
- /* A size of zero can be used to force
- * initializaton of the connection. */
- if (!size)
- return 0;
-
if (s->chunksize >= 0) {
if (!s->chunksize) {
char line[32];
char crlf[] = "\r\n";
HTTPContext *s = h->priv_data;
- if (!s->init) {
- int ret = http_open_cnx(h);
- if (ret != 0)
- return ret;
- }
- if (!s->hd)
- return AVERROR(EIO);
-
if (s->chunksize == -1) {
/* non-chunked data is sent without any special encoding */
return url_write(s->hd, buf, size);
uint8_t old_buf[BUFFER_SIZE];
int old_buf_size;
- if (!s->init) {
- int ret = http_open_cnx(h);
- if (ret != 0)
- return ret;
- }
- if (!s->hd)
- return AVERROR(EIO);
-
if (whence == AVSEEK_SIZE)
return s->filesize;
else if ((s->filesize == -1 && whence == SEEK_END) || h->is_streamed)
av_get_random_seed(), av_get_random_seed());
/* GET requests */
- if (url_open(&rt->rtsp_hd, httpname, URL_RDONLY) < 0) {
+ if (url_alloc(&rt->rtsp_hd, httpname, URL_RDONLY) < 0) {
err = AVERROR(EIO);
goto fail;
}
ff_http_set_headers(rt->rtsp_hd, headers);
/* complete the connection */
- if (url_read(rt->rtsp_hd, NULL, 0)) {
+ if (url_connect(rt->rtsp_hd)) {
err = AVERROR(EIO);
goto fail;
}
/* POST requests */
- if (url_open(&rt->rtsp_hd_out, httpname, URL_WRONLY) < 0 ) {
+ if (url_alloc(&rt->rtsp_hd_out, httpname, URL_WRONLY) < 0 ) {
err = AVERROR(EIO);
goto fail;
}
*/
ff_http_init_auth_state(rt->rtsp_hd_out, rt->rtsp_hd);
+ /* complete the connection */
+ if (url_connect(rt->rtsp_hd_out)) {
+ err = AVERROR(EIO);
+ goto fail;
+ }
} else {
/* open the tcp connection */
ff_url_join(tcpname, sizeof(tcpname), "tcp", NULL, host, port, NULL);