feat: implement connection to EntityServer with UDP socket setup
This commit is contained in:
@@ -96,7 +96,28 @@ bool OverteClient::connectAvatarMixer() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool OverteClient::connectEntityServer() {
|
bool OverteClient::connectEntityServer() {
|
||||||
// TODO: Connect to EntityServer and subscribe to updates.
|
// Send DomainList request to discover EntityServer endpoint
|
||||||
|
sendDomainListRequest();
|
||||||
|
|
||||||
|
// Create UDP socket for EntityServer if not using shared socket
|
||||||
|
// For now, assume EntityServer is on same host:port+1 as a fallback
|
||||||
|
addrinfo hints{}; hints.ai_socktype = SOCK_DGRAM; hints.ai_family = AF_UNSPEC;
|
||||||
|
addrinfo* res = nullptr;
|
||||||
|
int gai = ::getaddrinfo(m_host.c_str(), std::to_string(m_port + 1).c_str(), &hints, &res);
|
||||||
|
if (gai == 0) {
|
||||||
|
for (addrinfo* rp = res; rp; rp = rp->ai_next) {
|
||||||
|
m_entityFd = ::socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
|
||||||
|
if (m_entityFd == -1) continue;
|
||||||
|
::fcntl(m_entityFd, F_SETFL, O_NONBLOCK);
|
||||||
|
std::memcpy(&m_entityAddr, rp->ai_addr, rp->ai_addrlen);
|
||||||
|
m_entityAddrLen = rp->ai_addrlen;
|
||||||
|
m_entityServerReady = true;
|
||||||
|
std::cout << "[OverteClient] EntityServer socket ready for " << m_host << ":" << (m_port + 1) << std::endl;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
::freeaddrinfo(res);
|
||||||
|
}
|
||||||
|
|
||||||
m_entityServer = true;
|
m_entityServer = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user