lavf/http: Add simple autodetection for client HTTP method, based on AVIO_FLAG_READ.
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
This commit is contained in:
committed by
Nicolas George
parent
290b237556
commit
44d1921200
@@ -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,
|
|||||||
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
|
||||||
|
Reference in New Issue
Block a user