working commit

This commit is contained in:
2026-05-17 13:35:52 +02:00
parent f0aa8a7ff2
commit 793f950e04
2 changed files with 41 additions and 44 deletions
+40 -40
View File
@@ -33,7 +33,7 @@ void SocketHandler::Handle(int newsock, std::string laddr, std::string raddr, in
uxlogger.Error(setAddrRes.error());
return;
}
auto setPrefixRes = interface.SetIP4Netmask(prefix);
auto setPrefixRes = interface.SetIP4Netmask(30);
if (!setPrefixRes) {
uxlogger.Error(setPrefixRes.error());
return;
@@ -45,39 +45,52 @@ void SocketHandler::Handle(int newsock, std::string laddr, std::string raddr, in
}
std::thread recvThr(&SocketHandler::RecvMessages, this);
recvThr.detach();
{
uxlogger.Log(std::format("Send debug empty message"));
MessageHeader header(0);
auto rawHeader = header.Encode();
int wsize;
if ((wsize = write(sock, rawHeader.data(), rawHeader.size())) < 0) {
int errnoCopy = errno;
std::string error = std::strerror(errnoCopy);
uxlogger.Log(std::format("Write message error: {}", error));
return;
}
}
{
uxlogger.Log(std::format("Send address message"));
uxcontrol::AddressMessage addrMsg;
auto meta = addrMsg.mutable_meta();
meta->set_kind(tunAddressMsg);
addrMsg.set_address(raddr);
addrMsg.set_prefix(30);
std::string rawMessage;
addrMsg.SerializeToString(&rawMessage);
std::thread sendThr(&SocketHandler::SendMessages, this, raddr, prefix);
MessageHeader header(rawMessage.size());
auto rawHeader = header.Encode();
std::string rawPacket;
rawPacket.append(rawHeader);
rawPacket.append(rawMessage);
int wsize;
if ((wsize = write(sock, rawPacket.data(), rawPacket.size())) < 0) {
int errnoCopy = errno;
std::string error = std::strerror(errnoCopy);
uxlogger.Log(std::format("Write message error: {}", error));
return;
}
}
std::thread sendThr(&SocketHandler::SendMessages, this, raddr);
sendThr.detach();
done.acquire();
uxlogger.Log("Handler done");
}
void SocketHandler::SendMessages(std::string raddr, int prefix) {
void SocketHandler::SendMessages(std::string raddr) {
uxlogger.Log(std::format("Send address message"));
uxcontrol::AddressMessage addrMsg;
auto meta = addrMsg.mutable_meta();
meta->set_kind(tunAddressMsg);
addrMsg.set_address(raddr);
addrMsg.set_prefix(prefix);
std::string rawMessage;
addrMsg.SerializeToString(&rawMessage);
MessageHeader header(rawMessage.size());
auto rawHeader = header.Encode();
std::string rawPacket;
rawPacket.append(rawHeader);
rawPacket.append(rawMessage);
int wsize;
if ((wsize = write(sock, rawPacket.data(), rawPacket.size())) < 0) {
int errnoCopy = errno;
std::string error = std::strerror(errnoCopy);
uxlogger.Log(std::format("Write message error: {}", error));
return;
}
while (true) {
auto readRes = interface.Read();
if (!readRes) {
@@ -110,20 +123,7 @@ void SocketHandler::SendMessages(std::string raddr, int prefix) {
break;
}
uxlogger.Log("Send internetPacket message");
/*
MessageHeader header(0);
auto rawHeader = header.Encode();
int wsize;
{
if ((wsize = write(sock, rawHeader.data(), rawHeader.size())) < 0) {
int errnoCopy = errno;
std::string error = std::strerror(errnoCopy);
uxlogger.Log(std::format("Write message error: {}", error));
break;
}
}
std::this_thread::sleep_for(std::chrono::seconds(3));
*/
}
done.release();
uxlogger.Log("Send messages done");