added definitions for sending and receiving messages
This commit is contained in:
42
src/server/responses/ServerPublicInfo.c
Normal file
42
src/server/responses/ServerPublicInfo.c
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user