mirror of
https://github.com/drogonframework/drogon.git
synced 2025-07-17 00:00:35 -04:00
Compare commits
2 Commits
3fa480dd87
...
d3dbaed60a
Author | SHA1 | Date | |
---|---|---|---|
|
d3dbaed60a | ||
|
d7ae3a21b3 |
4
build.sh
4
build.sh
@ -92,9 +92,9 @@ else
|
|||||||
make_flags="$make_flags -j$parallel"
|
make_flags="$make_flags -j$parallel"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$1" = "-t" ]; then
|
if [ "X$1" = "X-t" ]; then
|
||||||
build_drogon 1
|
build_drogon 1
|
||||||
elif [ "$1" = "-tshared" ]; then
|
elif [ "X$1" = "X-tshared" ]; then
|
||||||
build_drogon 2
|
build_drogon 2
|
||||||
else
|
else
|
||||||
build_drogon 0
|
build_drogon 0
|
||||||
|
@ -56,15 +56,25 @@ bool HttpRequestParser::processRequestLine(const char *begin, const char *end)
|
|||||||
const char *space = std::find(start, end, ' ');
|
const char *space = std::find(start, end, ' ');
|
||||||
if (space != end)
|
if (space != end)
|
||||||
{
|
{
|
||||||
const char *question = std::find(start, space, '?');
|
const char *slash = std::find(start, space, '/');
|
||||||
if (question != space)
|
if (slash != start && slash + 1 < space && *(slash + 1) == '/')
|
||||||
{
|
{
|
||||||
request_->setPath(start, question);
|
// scheme precedents
|
||||||
request_->setQuery(question + 1, space);
|
slash = std::find(slash + 2, space, '/');
|
||||||
|
}
|
||||||
|
const char *question = std::find(slash, space, '?');
|
||||||
|
if (slash != space)
|
||||||
|
{
|
||||||
|
request_->setPath(slash, question);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
request_->setPath(start, space);
|
// An empty abs_path is equivalent to an abs_path of "/"
|
||||||
|
request_->setPath("/");
|
||||||
|
}
|
||||||
|
if (question != space)
|
||||||
|
{
|
||||||
|
request_->setQuery(question + 1, space);
|
||||||
}
|
}
|
||||||
start = space + 1;
|
start = space + 1;
|
||||||
succeed = end - start == 8 && std::equal(start, end - 1, "HTTP/1.");
|
succeed = end - start == 8 && std::equal(start, end - 1, "HTTP/1.");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user