feat: add environment variable support for domain authentication credentials
This commit is contained in:
@@ -37,6 +37,18 @@ bool OverteClient::connect() {
|
|||||||
m_sessionUUID = generateUUID();
|
m_sessionUUID = generateUUID();
|
||||||
std::cout << "[OverteClient] Session UUID: " << m_sessionUUID << std::endl;
|
std::cout << "[OverteClient] Session UUID: " << m_sessionUUID << std::endl;
|
||||||
|
|
||||||
|
// Check for authentication credentials from environment
|
||||||
|
const char* usernameEnv = std::getenv("OVERTE_USERNAME");
|
||||||
|
const char* passwordEnv = std::getenv("OVERTE_PASSWORD");
|
||||||
|
if (usernameEnv) m_username = usernameEnv;
|
||||||
|
if (passwordEnv) m_password = passwordEnv;
|
||||||
|
|
||||||
|
if (!m_username.empty()) {
|
||||||
|
std::cout << "[OverteClient] Using authentication: username=" << m_username << std::endl;
|
||||||
|
} else {
|
||||||
|
std::cout << "[OverteClient] No authentication credentials provided (set OVERTE_USERNAME/OVERTE_PASSWORD)" << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
// Parse ws://host:port
|
// Parse ws://host:port
|
||||||
std::string url = m_domainUrl;
|
std::string url = m_domainUrl;
|
||||||
if (url.empty()) url = "ws://127.0.0.1:40102";
|
if (url.empty()) url = "ws://127.0.0.1:40102";
|
||||||
@@ -106,7 +118,9 @@ bool OverteClient::connect() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Send domain connect request to initiate handshake
|
// Send domain connect request to initiate handshake
|
||||||
sendDomainConnectRequest();
|
// Start with domain list request - simpler packet
|
||||||
|
std::cout << "[OverteClient] Requesting domain list..." << std::endl;
|
||||||
|
sendDomainListRequest();
|
||||||
|
|
||||||
m_useSimulation = (std::getenv("STARWORLD_SIMULATE") != nullptr);
|
m_useSimulation = (std::getenv("STARWORLD_SIMULATE") != nullptr);
|
||||||
if (m_useSimulation) {
|
if (m_useSimulation) {
|
||||||
@@ -199,8 +213,8 @@ void OverteClient::poll() {
|
|||||||
|
|
||||||
// Request domain list periodically if not connected
|
// Request domain list periodically if not connected
|
||||||
if (!m_domainConnected && std::chrono::duration_cast<std::chrono::seconds>(now - lastDomainList).count() >= 2) {
|
if (!m_domainConnected && std::chrono::duration_cast<std::chrono::seconds>(now - lastDomainList).count() >= 2) {
|
||||||
std::cout << "[OverteClient] Retrying domain connection..." << std::endl;
|
std::cout << "[OverteClient] Retrying domain list request..." << std::endl;
|
||||||
sendDomainConnectRequest();
|
sendDomainListRequest();
|
||||||
lastDomainList = now;
|
lastDomainList = now;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,6 +67,8 @@ private:
|
|||||||
bool m_useSimulation{false};
|
bool m_useSimulation{false};
|
||||||
bool m_domainConnected{false};
|
bool m_domainConnected{false};
|
||||||
std::string m_sessionUUID; // Our client session UUID
|
std::string m_sessionUUID; // Our client session UUID
|
||||||
|
std::string m_username; // Domain authentication username
|
||||||
|
std::string m_password; // Domain authentication password (or token)
|
||||||
|
|
||||||
// Very small in-process world state for testing
|
// Very small in-process world state for testing
|
||||||
std::unordered_map<std::uint64_t, OverteEntity> m_entities;
|
std::unordered_map<std::uint64_t, OverteEntity> m_entities;
|
||||||
|
|||||||
Reference in New Issue
Block a user