#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, true); } try_void(PacketHeader_validateType(res_header, res_type)); try_void(PacketHeader_validateContentSize(res_header, res.len)); 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; }