added new packet types
This commit is contained in:
@@ -1,9 +1,73 @@
|
||||
#include "v1.h"
|
||||
|
||||
void ClientHandshake_construct(ClientHandshake* ptr, Array(u8) session_key){
|
||||
memcpy(ptr->session_key, session_key.data, sizeof(ptr->session_key));
|
||||
#define _PacketHeader_construct(T) \
|
||||
PacketHeader_construct(header, PROTOCOL_VERSION, PacketType_##T, sizeof(T))
|
||||
|
||||
Result(void) ClientHandshake_tryConstruct(ClientHandshake* ptr, PacketHeader* header,
|
||||
Array(u8) session_key)
|
||||
{
|
||||
Deferral(1);
|
||||
_PacketHeader_construct(ClientHandshake);
|
||||
|
||||
try_assert(session_key.size == sizeof(ptr->session_key));
|
||||
memcpy(ptr->session_key, session_key.data, session_key.size);
|
||||
|
||||
Return RESULT_VOID;
|
||||
}
|
||||
|
||||
void ServerHandshake_construct(ServerHandshake* ptr, u64 session_id){
|
||||
void ServerHandshake_construct(ServerHandshake* ptr, PacketHeader* header,
|
||||
u64 session_id)
|
||||
{
|
||||
_PacketHeader_construct(ServerHandshake);
|
||||
ptr->session_id = session_id;
|
||||
}
|
||||
|
||||
void ServerPublicInfoRequest_construct(ServerPublicInfoRequest *ptr, PacketHeader* header,
|
||||
ServerPublicInfo property)
|
||||
{
|
||||
_PacketHeader_construct(ServerPublicInfoRequest);
|
||||
ptr->property = property;
|
||||
}
|
||||
|
||||
Result(void) LoginRequest_tryConstruct(LoginRequest *ptr, PacketHeader* header,
|
||||
Array(u8) token)
|
||||
{
|
||||
Deferral(1);
|
||||
_PacketHeader_construct(LoginRequest);
|
||||
|
||||
try_assert(token.size == sizeof(ptr->token));
|
||||
memcpy(ptr->token, token.data, token.size);
|
||||
|
||||
Return RESULT_VOID;
|
||||
}
|
||||
|
||||
void LoginResponse_construct(LoginResponse* ptr, PacketHeader* header,
|
||||
u64 user_id, u64 landing_channel_id)
|
||||
{
|
||||
_PacketHeader_construct(LoginResponse);
|
||||
ptr->user_id = user_id;
|
||||
ptr->landing_channel_id = landing_channel_id;
|
||||
}
|
||||
|
||||
Result(void) RegisterRequest_tryConstruct(RegisterRequest *ptr, PacketHeader* header,
|
||||
str username, Array(u8) token)
|
||||
{
|
||||
Deferral(1);
|
||||
_PacketHeader_construct(RegisterRequest);
|
||||
|
||||
try_assert(username.size >= USERNAME_SIZE_MIN && username.size <= USERNAME_SIZE_MAX);
|
||||
ptr->username_size = username.size;
|
||||
memcpy(ptr->username, username.data, username.size);
|
||||
|
||||
try_assert(token.size == sizeof(ptr->token));
|
||||
memcpy(ptr->token, token.data, token.size);
|
||||
|
||||
Return RESULT_VOID;
|
||||
}
|
||||
|
||||
void RegisterResponse_construct(RegisterResponse *ptr, PacketHeader* header,
|
||||
u64 user_id)
|
||||
{
|
||||
_PacketHeader_construct(RegisterResponse);
|
||||
ptr->user_id = user_id;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user