working commit

This commit is contained in:
Олег Бородин
2026-05-19 16:58:44 +02:00
parent 99b4f4586e
commit 4bed66d2bb
6 changed files with 29 additions and 45 deletions
+2 -2
View File
@@ -10,12 +10,12 @@ int main(int argc, char** argv) {
UxClient client;
auto connectRes = client.Connect("127.0.0.1", 1025);
if (!connectRes) {
uxlogger.Log(connectRes.error());
uxlogger.Error(connectRes.error());
return 1;
}
auto runRes = client.Run();
if (!runRes) {
uxlogger.Log(runRes.error());
uxlogger.Error(runRes.error());
return 1;
}
+1 -1
View File
@@ -38,7 +38,7 @@ std::expected<void, std::string> Run() {
int main(int argc, char** argv) {
auto runRes = Run();
if (!runRes) {
uxlogger.Log(runRes.error());
uxlogger.Error(runRes.error());
return 1;
}
return 0;
+13 -13
View File
@@ -46,19 +46,19 @@ void SocketHandler::Handle(int newsock, std::string laddr, std::string raddr, st
std::thread recvThr(&SocketHandler::RecvMessages, this);
recvThr.detach();
{
uxlogger.Log(std::format("Send debug empty message"));
uxlogger.Debug(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));
uxlogger.Error(std::format("Write message error: {}", error));
return;
}
}
{
uxlogger.Log(std::format("Send address message"));
uxlogger.Debug(std::format("Send address message"));
uxcontrol::AddressMessage addrMsg;
auto meta = addrMsg.mutable_meta();
meta->set_kind(tunAddressMsg);
@@ -77,7 +77,7 @@ void SocketHandler::Handle(int newsock, std::string laddr, std::string raddr, st
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));
uxlogger.Error(std::format("Write message error: {}", error));
return;
}
}
@@ -96,7 +96,7 @@ void SocketHandler::Handle(int newsock, std::string laddr, std::string raddr, st
auto network = networkRes.value();
auto prefix = prefixRes.value();
uxlogger.Log(std::format("Send route message for {}/{}", network, prefix));
uxlogger.Info(std::format("Send route message for {}/{}", network, prefix));
uxcontrol::RouteMessage routeMsg;
auto meta = routeMsg.mutable_meta();
meta->set_kind(localRouteMsg);
@@ -115,7 +115,7 @@ void SocketHandler::Handle(int newsock, std::string laddr, std::string raddr, st
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));
uxlogger.Error(std::format("Write message error: {}", error));
return;
}
@@ -124,7 +124,7 @@ void SocketHandler::Handle(int newsock, std::string laddr, std::string raddr, st
sendThr.detach();
done.acquire();
uxlogger.Log("Handler done");
uxlogger.Debug("Handler done");
}
void SocketHandler::SendMessages(void) {
@@ -163,7 +163,7 @@ void SocketHandler::SendMessages(void) {
}
done.release();
uxlogger.Log("Send messages done");
uxlogger.Info("Send messages done");
}
void SocketHandler::RecvMessages(void) {
@@ -173,17 +173,17 @@ void SocketHandler::RecvMessages(void) {
if ((rsize = recv(sock, rawHeader.data(), rawHeader.size(), MSG_WAITALL)) < 0) {
int errnoCopy = errno;
std::string error = std::strerror(errnoCopy);
uxlogger.Log(std::format("Read header error: {}", error));
uxlogger.Error(std::format("Read header error: {}", error));
break;
}
if (rsize < msgHeaderSize) {
uxlogger.Log(std::format("Read only {} from {} header bytes", rsize, msgHeaderSize));
uxlogger.Error(std::format("Read only {} from {} header bytes", rsize, msgHeaderSize));
break;
}
MessageHeader header;
auto decodeRes = header.Decode(rawHeader);
if (!decodeRes) {
uxlogger.Log(std::format("Decode header error: {}", decodeRes.error()));
uxlogger.Error(std::format("Decode header error: {}", decodeRes.error()));
break;
}
auto pSize = header.PayloadSize();
@@ -194,7 +194,7 @@ void SocketHandler::RecvMessages(void) {
if ((rsize = recv(sock, rawMessage.data(), rawMessage.size(), MSG_WAITALL)) < 0) {
int errnoCopy = errno;
std::string error = std::strerror(errnoCopy);
uxlogger.Log(std::format("Read message error: {}", error));
uxlogger.Error(std::format("Read message error: {}", error));
break;
}
uxcontrol::SimpleMessage simpleMsg;
@@ -218,5 +218,5 @@ void SocketHandler::RecvMessages(void) {
}
}
done.release();
uxlogger.Log("Recv messages done");
uxlogger.Info("Recv messages done");
}
+11 -11
View File
@@ -87,22 +87,21 @@ void UxClient::RecvMessages(void) {
std::string rawHeader(msgHeaderSize, 0);
if ((rsize = recv(sock, rawHeader.data(), rawHeader.size(), MSG_WAITALL)) < 0) {
int errnoCopy = errno;
uxlogger.Log(std::format("Read0 header error: {}", errno));
std::string error = std::strerror(errnoCopy);
uxlogger.Log(std::format("Read header error: {}", error));
uxlogger.Error(std::format("Read header error: {}", error));
break;
}
if (rsize < msgHeaderSize) {
uxlogger.Log(std::format("Read only {} from {} bytes", rsize, msgHeaderSize));
uxlogger.Error(std::format("Read only {} from {} bytes", rsize, msgHeaderSize));
break;
}
MessageHeader header;
auto decodeRes = header.Decode(rawHeader);
if (!decodeRes) {
uxlogger.Log(std::format("Decode header error: {}", decodeRes.error()));
uxlogger.Error(std::format("Decode header error: {}", decodeRes.error()));
}
auto pSize = header.PayloadSize();
uxlogger.Log(std::format("Receive message with size {}", pSize));
uxlogger.Error(std::format("Receive message with size {}", pSize));
if (pSize == 0) {
continue;
}
@@ -111,14 +110,14 @@ void UxClient::RecvMessages(void) {
if ((rsize = recv(sock, rawMessage.data(), rawMessage.size(), MSG_WAITALL)) < 0) {
int errnoCopy = errno;
std::string error = std::strerror(errnoCopy);
uxlogger.Log(std::format("Read message error: {}", error));
uxlogger.Error(std::format("Read message error: {}", error));
break;
}
uxcontrol::SimpleMessage meta;
meta.ParseFromString(rawMessage);
auto metaPart = meta.meta();
auto kind = metaPart.kind();
uxlogger.Debug(std::format("Received message kind of {}", kind));
uxlogger.Debug(std::format("Received message kind: {}", kind));
if (kind == tunAddressMsg) {
uxcontrol::AddressMessage addrMessage;
@@ -176,7 +175,8 @@ void UxClient::SendMessages(void) {
while (true) {
auto readRes = interface.Read();
if (!readRes) {
uxlogger.Log(std::format("Read packet error: {}", readRes.error()));
uxlogger.Error(std::format("Read packet error: {}", readRes.error()));
break;
}
auto packet = readRes.value();
@@ -199,10 +199,10 @@ void UxClient::SendMessages(void) {
if ((wsize = send(sock, rawPacket.data(), rawPacket.size(), 0)) < 0) {
int errnoCopy = errno;
std::string error = std::strerror(errnoCopy);
uxlogger.Log(std::format("Write packet error: {}", error));
uxlogger.Error(std::format("Write packet error: {}", error));
break;
}
uxlogger.Log("Send message");
uxlogger.Debug("Send internet message");
}
done.release();
return;
@@ -247,7 +247,7 @@ std::expected<void, std::string> UxClient::Run(void) {
recvThr.detach();
done.acquire();
uxlogger.Log("Client done");
uxlogger.Info("Client done");
return {};
}
+2 -16
View File
@@ -15,21 +15,7 @@ UxLogger uxlogger;
static std::mutex mtx;
UxLogger::UxLogger(const std::string ilabel) {
label = ilabel;
}
UxLogger::UxLogger(void) {
label = "global";
}
void UxLogger::Log(const std::string& message) {
auto now = std::chrono::system_clock::now();
std::chrono::zoned_time localnow{std::chrono::current_zone(), now};
std::string timenow = std::format("{:%Y-%m-%dT%H:%M:%OS%Z}", localnow);
std::lock_guard<std::mutex> lock(mtx);
std::cout << std::format("{} {} {}\n", timenow, label, message);
}
UxLogger::UxLogger(void) {}
void UxLogger::Debug(const std::string& message) {
LogLevel("debug", message);
@@ -52,6 +38,6 @@ void UxLogger::LogLevel(const std::string level, const std::string& message) {
std::chrono::zoned_time localnow{std::chrono::current_zone(), now};
std::string timenow = std::format("{:%Y-%m-%dT%H:%M:%OS%Z}", localnow);
std::lock_guard<std::mutex> lock(mtx);
std::cout << std::format("{} {} {} {}\n", timenow, level, label, message);
std::cout << std::format("{} [{}] {}\n", timenow, level, message);
}
-2
View File
@@ -13,9 +13,7 @@ private:
std::string label;
void LogLevel(const std::string level, const std::string& message);
public:
UxLogger(std::string ilabel);
UxLogger();
void Log(const std::string& message);
void Debug(const std::string& message);
void Info(const std::string& message);
void Warning(const std::string& message);