lavf/http: Correctly terminate session with HTTP POST client.
Send a footer to correctly close client sockets. This fixes network errors in client applications. Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com> Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
63276fa9c1
commit
de3a7ef204
@ -325,6 +325,7 @@ static int http_listen(URLContext *h, const char *uri, int flags,
|
|||||||
char lower_url[100];
|
char lower_url[100];
|
||||||
const char *lower_proto = "tcp";
|
const char *lower_proto = "tcp";
|
||||||
int port, new_location;
|
int port, new_location;
|
||||||
|
s->chunked_post = 1;
|
||||||
av_url_split(proto, sizeof(proto), NULL, 0, hostname, sizeof(hostname), &port,
|
av_url_split(proto, sizeof(proto), NULL, 0, hostname, sizeof(hostname), &port,
|
||||||
NULL, 0, uri);
|
NULL, 0, uri);
|
||||||
if (!strcmp(proto, "https"))
|
if (!strcmp(proto, "https"))
|
||||||
@ -1242,7 +1243,8 @@ static int http_shutdown(URLContext *h, int flags)
|
|||||||
HTTPContext *s = h->priv_data;
|
HTTPContext *s = h->priv_data;
|
||||||
|
|
||||||
/* signal end of chunked encoding if used */
|
/* signal end of chunked encoding if used */
|
||||||
if ((flags & AVIO_FLAG_WRITE) && s->chunked_post) {
|
if (((flags & AVIO_FLAG_WRITE) && s->chunked_post) ||
|
||||||
|
((flags & AVIO_FLAG_READ) && s->chunked_post && s->listen)) {
|
||||||
ret = ffurl_write(s->hd, footer, sizeof(footer) - 1);
|
ret = ffurl_write(s->hd, footer, sizeof(footer) - 1);
|
||||||
ret = ret > 0 ? 0 : ret;
|
ret = ret > 0 ? 0 : ret;
|
||||||
s->end_chunked_post = 1;
|
s->end_chunked_post = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user