update the configuration
This commit is contained in:
@@ -20,7 +20,9 @@ namespace aman {
|
|||||||
std::string address; /**< The address of the backend */
|
std::string address; /**< The address of the backend */
|
||||||
std::uint16_t portReporter; /**< The reported port of the backend */
|
std::uint16_t portReporter; /**< The reported port of the backend */
|
||||||
std::uint16_t portNotification; /**< The notification port of the backend */
|
std::uint16_t portNotification; /**< The notification port of the backend */
|
||||||
std::string identifier; /**< The user's identifier for the connection */
|
std::string serverPublicIdentifier; /**< The server's public identifier */
|
||||||
|
std::string clientPublicIdentifier; /**< The client's public identifier */
|
||||||
|
std::string clientPrivateIdentifier; /**< The client's private identifier */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initializes an invalid configuration
|
* @brief Initializes an invalid configuration
|
||||||
@@ -30,6 +32,8 @@ namespace aman {
|
|||||||
address(),
|
address(),
|
||||||
portReporter(0),
|
portReporter(0),
|
||||||
portNotification(0),
|
portNotification(0),
|
||||||
identifier() { }
|
serverPublicIdentifier(),
|
||||||
|
clientPublicIdentifier(),
|
||||||
|
clientPrivateIdentifier() { }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,9 +81,6 @@ bool CommunicationFileFormat::parse(const std::string& filename, Communication&
|
|||||||
else if ("PortNotification" == gsl::at(entry, 0)) {
|
else if ("PortNotification" == gsl::at(entry, 0)) {
|
||||||
config.portNotification = static_cast<std::uint16_t>(std::atoi(gsl::at(entry, 1).c_str()));
|
config.portNotification = static_cast<std::uint16_t>(std::atoi(gsl::at(entry, 1).c_str()));
|
||||||
}
|
}
|
||||||
else if ("UID" == gsl::at(entry, 0)) {
|
|
||||||
config.identifier = gsl::at(entry, 1);
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
this->m_errorLine = lineOffset;
|
this->m_errorLine = lineOffset;
|
||||||
this->m_errorMessage = "Unknown entry: " + gsl::at(entry, 0);
|
this->m_errorMessage = "Unknown entry: " + gsl::at(entry, 0);
|
||||||
|
|||||||
@@ -48,36 +48,18 @@ bool IdentifierFileFormat::parse(const std::string& filename, Communication& con
|
|||||||
if (0 == trimmed.find_first_of('#', 0))
|
if (0 == trimmed.find_first_of('#', 0))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
auto entry = String::splitString(trimmed, "=");
|
if (0 == config.serverPublicIdentifier.length()) {
|
||||||
if (2 > entry.size()) {
|
config.serverPublicIdentifier = trimmed;
|
||||||
this->m_errorLine = lineOffset;
|
|
||||||
this->m_errorMessage = "Invalid configuration entry";
|
|
||||||
config.valid = false;
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
else if (2 < entry.size()) {
|
else if (0 == config.clientPublicIdentifier.length()) {
|
||||||
for (std::size_t idx = 1; idx < entry.size() - 1; ++idx)
|
config.clientPublicIdentifier = trimmed;
|
||||||
value += gsl::at(entry, idx) + "=";
|
|
||||||
value += entry.back();
|
|
||||||
}
|
}
|
||||||
else {
|
else if (0 == config.clientPrivateIdentifier.length()) {
|
||||||
value = gsl::at(entry, 1);
|
config.clientPrivateIdentifier = trimmed;
|
||||||
}
|
|
||||||
|
|
||||||
/* found an invalid line */
|
|
||||||
if (0 == value.length()) {
|
|
||||||
this->m_errorLine = lineOffset;
|
|
||||||
this->m_errorMessage = "Invalid entry";
|
|
||||||
config.valid = false;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ("UID" == gsl::at(entry, 0)) {
|
|
||||||
config.identifier = gsl::at(entry, 1);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this->m_errorLine = lineOffset;
|
this->m_errorLine = lineOffset;
|
||||||
this->m_errorMessage = "Unknown entry: " + gsl::at(entry, 0);
|
this->m_errorMessage = "Invalid number of keys found";
|
||||||
config.valid = false;
|
config.valid = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -90,5 +72,12 @@ bool IdentifierFileFormat::parse(const std::string& filename, Communication& con
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (0 == config.serverPublicIdentifier.length() || 0 == config.clientPublicIdentifier.length() || 0 == config.clientPrivateIdentifier.length()) {
|
||||||
|
this->m_errorLine = 0;
|
||||||
|
this->m_errorMessage = "Not enough keys found";
|
||||||
|
config.valid = false;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user