Skip to content

Commit

Permalink
configparser: cleanup of header and added warnings for unfamiliar KEY…
Browse files Browse the repository at this point in the history
…S in Serversettings/LocationSettings
  • Loading branch information
Tentanus committed Nov 29, 2023
1 parent 1bf2643 commit b308b19
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 24 deletions.
2 changes: 0 additions & 2 deletions include/LocationSettings.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
#include <Token.hpp>

#include <string>
#include <unordered_map>
#include <vector>

class LocationSettings
{
Expand Down
2 changes: 0 additions & 2 deletions include/ServerSettings.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
#include <LocationSettings.hpp>
#include <Token.hpp>

#include <regex>
#include <string>
#include <vector>

class ServerSettings
{
Expand Down
1 change: 0 additions & 1 deletion src/ConfigSyntax.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
#include <iterator>
#include <stdexcept>
#include <string>
#include <vector>

std::vector<Token>::iterator findBlockEnd(std::vector<Token> &tokens,
size_t pos)
Expand Down
24 changes: 16 additions & 8 deletions src/LocationSettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@

#include <stdexcept>
#include <string>
#include <unordered_map>
#include <vector>

LocationSettings::LocationSettings()
: _requesttarget(), _alias(), _index(), _allowed_methods(), _cgi_path(),
Expand Down Expand Up @@ -34,6 +32,8 @@ LocationSettings::LocationSettings(std::vector<Token>::iterator &token)

while (token->getType() != TokenType::CLOSE_BRACKET)
{
Logger &logger = Logger::getInstance();

const Token key = *token;
token++;

Expand All @@ -52,8 +52,8 @@ LocationSettings::LocationSettings(std::vector<Token>::iterator &token)
else if (key.getString() == "return")
parseReturn(*token);
else
throw std::runtime_error(
"LocationSettings: unknown KEY token: " + key.getString());
logger.log(WARNING, "LocationSettings: unknown KEY token: " +
key.getString());

token++;
}
Expand All @@ -66,8 +66,9 @@ void LocationSettings::parseAlias(const Token token)
Logger &logger = Logger::getInstance();

if (!_alias.empty())
logger.log(WARNING, "parser: redefining alias in locationblock: " +
_requesttarget);
logger.log(WARNING,
"ConfigParser: redefining alias in locationblock: " +
_requesttarget);
_alias = token.getString();
}

Expand All @@ -76,8 +77,9 @@ void LocationSettings::parseIndex(const Token token)
Logger &logger = Logger::getInstance();

if (!_index.empty())
logger.log(WARNING, "parser: redefining index in locationblock: " +
_requesttarget);
logger.log(WARNING,
"ConfigParser: redefining index in locationblock: " +
_requesttarget);
_index = token.getString();
}

Expand Down Expand Up @@ -110,6 +112,12 @@ void LocationSettings::parseCgiPath(const Token token)

void LocationSettings::parseReturn(const Token token)
{
Logger &logger = Logger::getInstance();

if (!_return.empty())
logger.log(WARNING,
"ConfigParser: redefining return in locationblock: " +
_requesttarget);
_return.append(" " + token.getString());
}

Expand Down
18 changes: 7 additions & 11 deletions src/ServerSettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
#include <SystemException.hpp>
#include <Token.hpp>

#include <array>
#include <exception>
#include <regex>
#include <stdexcept>
#include <string>
#include <vector>

ServerSettings::ServerSettings()
: _listen(), _server_name(), _error_dir(), _client_max_body_size(),
Expand Down Expand Up @@ -54,8 +50,6 @@ ServerSettings::ServerSettings(std::vector<Token>::iterator &token)
}
}

// TODO: value confirmation and validation should happen here or in syntax

void validateListen(const std::string &str)
{
size_t pos = str.find_first_of(":");
Expand Down Expand Up @@ -93,7 +87,7 @@ void ServerSettings::parseErrorDir(const Token value)
Logger &logger = Logger::getInstance();

if (!_error_dir.empty())
logger.log(WARNING, "parser: redefining error_dir");
logger.log(WARNING, "ConfigParser: redefining error_dir");
_error_dir = value.getString();
}

Expand All @@ -102,13 +96,15 @@ void ServerSettings::parseClientMaxBodySize(const Token value)
Logger &logger = Logger::getInstance();

if (!_client_max_body_size.empty())
logger.log(WARNING, "parser: redefining clientmaxbodysize");
logger.log(WARNING, "ConfigParser: redefining clientmaxbodysize");
_client_max_body_size = value.getString();
}

void ServerSettings::addValueToServerSettings(
const Token &key, std::vector<Token>::iterator &value)
{
Logger &logger = Logger::getInstance();

while (value->getType() != TokenType::SEMICOLON)
{
if (key.getString() == "listen")
Expand All @@ -120,9 +116,8 @@ void ServerSettings::addValueToServerSettings(
else if (key.getString() == "client_max_body_size")
parseClientMaxBodySize(*value);
else
throw std::runtime_error("ServerSettings: unknown KEY token: " +
key.getString());

logger.log(WARNING,
"ServerSettings: unknown KEY token: " + key.getString());
value++;
}
}
Expand Down Expand Up @@ -224,6 +219,7 @@ void ServerSettings::printServerSettings() const
logger.log(DEBUG, "\t_ServerName:" + _server_name);
logger.log(DEBUG, "\t_ErrorDir: " + _error_dir);
logger.log(DEBUG, "\t_ClientMaxBodySize: " + _client_max_body_size);

for (auto &location_instance : _location_settings)
{
logger.log(DEBUG, "\n");
Expand Down

0 comments on commit b308b19

Please sign in to comment.