#include "request_handlers.h" declare_RequestHandler(ServerPublicInfo) { Deferral(4); logDebug(log_ctx, "requested %s", req_type_name); ServerPublicInfoRequest req = {0}; try_void(PacketHeader_validateContentSize(req_head, sizeof(req))); try_void(EncryptedSocketTCP_recvStruct(&conn->sock, &req)); //TODO: try find requested info Array(u8) content; switch(req.property){ default:{ try(char* err_msg, p, sendErrorMessage(conn, res_head, "Unknown ServerPublicInfo property %u", req.property)); logWarn(log_ctx, "%s", err_msg); free(err_msg); Return RESULT_VOID; } case ServerPublicInfo_Name: content = str_castTo_Array(server->name); break; case ServerPublicInfo_Description: content = str_castTo_Array(server->name); break; } PacketHeader_construct(res_head, PROTOCOL_VERSION, PacketType_ServerPublicInfoResponse, content.size); try_void(EncryptedSocketTCP_sendStruct(&conn->sock, res_head)); try_void(EncryptedSocketTCP_send(&conn->sock, content)); Return RESULT_VOID; }