working commit

This commit is contained in:
Олег Бородин
2026-05-07 11:24:50 +02:00
parent 9540ac05d4
commit a5d78c09a6
18 changed files with 2192 additions and 3226 deletions
+20 -18
View File
@@ -19,6 +19,7 @@ extern "C" {
#include <uxclient.hpp>
#include <msgheader.hpp>
#include <uxlogger.hpp>
#include <iprouter.hpp>
#include <uxcontrol.pb.h>
@@ -116,26 +117,13 @@ void UxClient::RecvMessages(void) {
void UxClient::SendMessages(void) {
while (true) {
auto readRes = interface.Read();
if (!readRes) {
uxlogger.Log(std::format("Read packet error: {}", readRes.error()));
}
auto packet = readRes.value();
uxlogger.Log(std::format("Read packet size {}", packet.size()));
int wsize = 0;
MessageHeader header(packet.size());
auto rawHeader = header.Encode();
if ((wsize = write(sock, rawHeader.data(), rawHeader.size())) < 0) {
int errnoCopy = errno;
std::string error = std::strerror(errnoCopy);
uxlogger.Log(std::format("Write header error: {}", error));
break;
}
uxlogger.Log(std::format("Write header wsize: {}", wsize));
uxcontrol::InternetPacket intPacket;
uxcontrol::PacketMessage intPacket;
auto meta = intPacket.mutable_meta();
meta->set_kind("internetPacket");
intPacket.set_payload(packet);
@@ -143,15 +131,22 @@ void UxClient::SendMessages(void) {
std::string rawMessage;
intPacket.SerializeToString(&rawMessage);
if ((wsize = write(sock, rawMessage.data(), rawMessage.size())) < 0) {
MessageHeader header(rawMessage.size());
auto rawHeader = header.Encode();
int wsize = 0;
if ((wsize = send(sock, rawHeader.data(), rawHeader.size(), 0)) < 0) {
int errnoCopy = errno;
std::string error = std::strerror(errnoCopy);
uxlogger.Log(std::format("Write header error: {}", error));
break;
}
if ((wsize = send(sock, rawMessage.data(), rawMessage.size(), 0)) < 0) {
int errnoCopy = errno;
std::string error = std::strerror(errnoCopy);
uxlogger.Log(std::format("Write message error: {}", error));
break;
}
uxlogger.Log("Send message");
//std::this_thread::sleep_for(std::chrono::seconds(1));
}
done.release();
return;
@@ -168,7 +163,7 @@ std::expected<void, std::string> UxClient::Run(void) {
if (!setAddrRes) {
return std::unexpected(setAddrRes.error());
}
auto setMaskRes = interface.SetIP4Netmask(24);
auto setMaskRes = interface.SetIP4Netmask(30);
if (!setMaskRes) {
return std::unexpected(setMaskRes.error());
}
@@ -180,6 +175,13 @@ std::expected<void, std::string> UxClient::Run(void) {
if (!createRes) {
return std::unexpected(createRes.error());
}
Router router;
auto addRouteRes = router.AddRoute("1.1.1.2", 32, "10.1.1.2");
if (!addRouteRes) {
return std::unexpected(addRouteRes.error());
}
std::thread sendThr(&UxClient::SendMessages, this);
sendThr.detach();