Index and Autoindex work nicely, standarized way paths for root and location path are stored in config, still needs a little polishing prolly
This commit is contained in:
@@ -148,8 +148,6 @@ LocationConfig ConfigParser::_parse_location(size_t *start)
|
||||
if (ret.path[0] != '/')
|
||||
ret.path.insert(0, "/");
|
||||
// throw std::invalid_argument("Location path require a leading /");
|
||||
if (ret.path.back() != '/')
|
||||
ret.path.push_back('/');
|
||||
// in theory now curr should be right after the "path"
|
||||
|
||||
curr = _content.find_first_not_of(" \t\n", curr);
|
||||
@@ -233,19 +231,10 @@ void ConfigParser::_set_server_values(ServerConfig *server, \
|
||||
}
|
||||
else if (key == "root" && size == 1 && server->root == "")
|
||||
{
|
||||
// if (tmp_val[0][0] != '/')
|
||||
// throw std::invalid_argument("Root requires leading /");
|
||||
|
||||
// remove trailing /
|
||||
if (tmp_val[0].back() == '/')
|
||||
tmp_val[0].erase(tmp_val[0].size(), 1);
|
||||
|
||||
// std::cout << "root: " << tmp_val[0] << '\n';
|
||||
//might not even do these checks here...
|
||||
// if (path_is_valid(tmp_val[0]) == 1)
|
||||
server->root = tmp_val[0];
|
||||
// else
|
||||
// throw std::invalid_argument("Root dir invalid 1");
|
||||
if (tmp_val[0][tmp_val[0].size() - 1] == '/')
|
||||
tmp_val[0].erase(tmp_val[0].size() - 1, 1);
|
||||
server->root = tmp_val[0];
|
||||
}
|
||||
else if (key == "client_body_limit" && size == 1 \
|
||||
&& server->client_body_limit == 0)
|
||||
@@ -257,9 +246,6 @@ void ConfigParser::_set_server_values(ServerConfig *server, \
|
||||
else if (key == "index")
|
||||
{
|
||||
// i think you can call index several times...
|
||||
// should i be doing an access?
|
||||
// since index is at the root, but root might not yet be defined
|
||||
// will check index later in post
|
||||
for (unsigned long i = 0; i != tmp_val.size(); i++)
|
||||
server->index.push_back(tmp_val[i]);
|
||||
}
|
||||
@@ -288,11 +274,7 @@ void ConfigParser::_set_server_values(ServerConfig *server, \
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// means either you didn't write the right key, or the value is
|
||||
// missing, or the value has already been filled.
|
||||
throw std::invalid_argument("bad key value pair");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -313,8 +295,9 @@ void ConfigParser::_set_location_values(LocationConfig *location, \
|
||||
// throw std::invalid_argument("Root requires leading /");
|
||||
|
||||
// remove trailing /
|
||||
if (tmp_val[0].back() == '/')
|
||||
tmp_val[0].erase(tmp_val[0].size(), 1);
|
||||
// if (tmp_val[0].back() == '/')
|
||||
if (tmp_val[0][tmp_val[0].size() - 1] == '/')
|
||||
tmp_val[0].erase(tmp_val[0].size() - 1, 1);
|
||||
// if (path_is_valid(tmp_val[0]) == 1)
|
||||
location->root = tmp_val[0];
|
||||
// else
|
||||
@@ -367,11 +350,7 @@ void ConfigParser::_set_location_values(LocationConfig *location, \
|
||||
location->redirect_uri = tmp_val[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
// means either you didn't write the right key, or the value is
|
||||
// missing, or the value has already been filled.
|
||||
throw std::invalid_argument("bad key value pair");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user