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
+27 -27
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,23 +45,25 @@ void SocketHandler::Handle(int newsock, std::string laddr, std::string raddr, in
}
std::thread recvThr(&SocketHandler::RecvMessages, this);
recvThr.detach();
std::thread sendThr(&SocketHandler::SendMessages, this, raddr, prefix);
sendThr.detach();
done.acquire();
uxlogger.Log("Handler done");
}
void SocketHandler::SendMessages(std::string raddr, int prefix) {
{
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(prefix);
addrMsg.set_prefix(30);
std::string rawMessage;
addrMsg.SerializeToString(&rawMessage);
@@ -78,6 +80,17 @@ void SocketHandler::SendMessages(std::string raddr, int prefix) {
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) {
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");
+1 -4
View File
@@ -9,9 +9,6 @@
#include <interface.hpp>
class SocketHandler {
private:
int sock;
@@ -21,7 +18,7 @@ private:
public:
void Handle(int newsock, std::string laddr, std::string raddr, int prefix);
void RecvMessages(void);
void SendMessages(std::string raddr, int prefix);
void SendMessages(std::string raddr);
};
#endif