working commit
This commit is contained in:
+20
-18
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user