Added API data definitions.
This commit is contained in:
@@ -1,10 +1,20 @@
|
||||
#include "include/data.h"
|
||||
#include "include/api.h"
|
||||
|
||||
PacketType packet_type_parse(const char* type_str) {
|
||||
if (!type_str) return PACKET_TYPE_INVALID;
|
||||
if (!strcmp(type_str, "join")) return PACKET_TYPE_JOIN;
|
||||
if (!strcmp(type_str, "JOIN_EV")) return PACKET_TYPE_JOIN_EV;
|
||||
return PACKET_TYPE_INVALID;
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
static const char* packet_type_strings[] = {
|
||||
[PACKET_TYPE_JOIN] = "join", [PACKET_TYPE_WELCOME] = "welcome",
|
||||
[PACKET_TYPE_JOIN_EVT] = "join_evt", [PACKET_TYPE_MSG] = "msg",
|
||||
[PACKET_TYPE_MSG_EVT] = "msg_evt",
|
||||
|
||||
};
|
||||
|
||||
PacketType packet_type_parse(const char* type) {
|
||||
for (int i = 0; i < PACKET_TYPE_MAX; i++)
|
||||
if (!strcmp(type, packet_type_strings[i])) return (PacketType)i;
|
||||
|
||||
return PACKET_TYPE_BAD;
|
||||
}
|
||||
|
||||
Packet* packet_init(PacketType type, void* data) {
|
||||
@@ -17,12 +27,11 @@ Packet* packet_init(PacketType type, void* data) {
|
||||
return packet;
|
||||
}
|
||||
|
||||
Packet* packet_init_untrusted(PacketType type, void* data) {
|
||||
Packet* packet = malloc(sizeof(Packet));
|
||||
if (!packet) return NULL;
|
||||
Packet* packet_init_safe(char* type, void* data) {
|
||||
PacketType t = packet_type_parse(type);
|
||||
if (t == PACKET_TYPE_BAD) return NULL;
|
||||
|
||||
packet->type = type;
|
||||
packet->data = data;
|
||||
if (!data) return NULL;
|
||||
|
||||
return packet;
|
||||
return packet_init(t, data);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user