request ServerPublicInfo in ServerConnection_open()

This commit is contained in:
2025-11-15 15:26:00 +05:00
parent 0ea241c5db
commit 85c0736c8d
15 changed files with 196 additions and 70 deletions

View File

@@ -0,0 +1,34 @@
#include "requests.h"
Result(void) _recvResponse(EncryptedSocketTCP* sock,
PacketHeader* res_header, Array(u8) res, PacketType res_type)
{
Deferral(4);
try_void(EncryptedSocketTCP_recvStruct(sock, res_header));
try_void(PacketHeader_validateMagic(res_header));
if(res_header->type == PacketType_ErrorMessage){
str err_msg;
try_void(recvErrorMessage(sock, res_header, &err_msg));
Return RESULT_ERROR(err_msg.data, true);
}
try_void(PacketHeader_validateType(res_header, res_type));
try_void(PacketHeader_validateContentSize(res_header, res.size));
try_void(EncryptedSocketTCP_recv(sock, res, SocketRecvFlag_WholeBuffer));
Return RESULT_VOID;
}
Result(void) _sendRequest(EncryptedSocketTCP* sock,
PacketHeader* req_header, Array(u8) req)
{
Deferral(4);
try_void(EncryptedSocketTCP_sendStruct(sock, req_header));
try_void(EncryptedSocketTCP_send(sock, req));
Return RESULT_VOID;
}