added definitions for sending and receiving messages

This commit is contained in:
2025-11-24 19:11:09 +05:00
parent 0abee3f7df
commit 571fdd900f
18 changed files with 168 additions and 65 deletions

View File

@@ -0,0 +1,42 @@
#include "responses.h"
#define LOGGER conn->server->logger
#define LOG_FUNC conn->server->log_func
declare_RequestHandler(ServerPublicInfo)
{
Deferral(4);
logInfo(log_ctx, "requested %s", req_type_name);
// receive request
ServerPublicInfoRequest req;
try_void(PacketHeader_validateContentSize(req_head, sizeof(req)));
try_void(EncryptedSocketTCP_recvStruct(&conn->sock, &req));
// find requested info
Array(u8) content;
switch(req.property){
default:{
try_void(sendErrorMessage_f(log_ctx, conn, res_head,
LogSeverity_Warn,
"Unknown ServerPublicInfo property %u",
req.property));
Return RESULT_VOID;
}
case ServerPublicInfo_Name:
content = str_castTo_Array(conn->server->name);
break;
case ServerPublicInfo_Description:
content = str_castTo_Array(conn->server->description);
break;
}
// send response
ServerPublicInfoResponse res;
ServerPublicInfoResponse_construct(&res, res_head, content.size);
try_void(EncryptedSocketTCP_sendStruct(&conn->sock, res_head));
try_void(EncryptedSocketTCP_sendStruct(&conn->sock, &res));
try_void(EncryptedSocketTCP_send(&conn->sock, content));
Return RESULT_VOID;
}