Commit 44d19212 authored by Stephan Holljes's avatar Stephan Holljes Committed by Nicolas George

lavf/http: Add simple autodetection for client HTTP method, based on AVIO_FLAG_READ.

Signed-off-by: 's avatarStephan Holljes <klaxa1337@googlemail.com>
parent 290b2375
...@@ -563,6 +563,7 @@ static int process_line(URLContext *h, char *line, int line_count, ...@@ -563,6 +563,7 @@ static int process_line(URLContext *h, char *line, int line_count,
int *new_location) int *new_location)
{ {
HTTPContext *s = h->priv_data; HTTPContext *s = h->priv_data;
const char *auto_method = h->flags & AVIO_FLAG_READ ? "POST" : "GET";
char *tag, *p, *end, *method, *resource, *version; char *tag, *p, *end, *method, *resource, *version;
int ret; int ret;
...@@ -587,6 +588,14 @@ static int process_line(URLContext *h, char *line, int line_count, ...@@ -587,6 +588,14 @@ static int process_line(URLContext *h, char *line, int line_count,
s->method, method); s->method, method);
return ff_http_averror(400, AVERROR(EIO)); return ff_http_averror(400, AVERROR(EIO));
} }
} else {
// use autodetected HTTP method to expect
av_log(h, AV_LOG_TRACE, "Autodetected %s HTTP method\n", auto_method);
if (av_strcasecmp(auto_method, method)) {
av_log(h, AV_LOG_ERROR, "Received and autodetected HTTP method did not match "
"(%s autodetected %s received)\n", auto_method, method);
return ff_http_averror(400, AVERROR(EIO));
}
} }
// HTTP resource // HTTP resource
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment