aboutsummaryrefslogtreecommitdiffstats
path: root/include/packet.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/packet.h')
-rw-r--r--include/packet.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/include/packet.h b/include/packet.h
new file mode 100644
index 0000000..224469e
--- /dev/null
+++ b/include/packet.h
@@ -0,0 +1,43 @@
+#ifndef KV_PACKET_H
+#define KV_PACKET_H
+
+#define KV_PACKET_SIZE 512
+
+#ifdef DEBUG
+#define DEBUGF(fmt, ...) fprintf(stderr, "DEBUG: %s:%d:%s(): " fmt, __FILE__, __LINE__, __func__, ##__VA_ARGS__)
+#else
+#define DEBUGF(fmt, ...) \
+ do { } while (0)
+#endif
+
+enum system_operation {
+ do_nothing = 0,
+ join_channel = -1,
+ leave_channel = -2,
+ acknowledgement = -4,
+};
+struct user {
+ unsigned int ip;
+ unsigned short port;
+ int id;
+};
+struct channel_handle {
+ int sockfd;
+ struct user* users;
+};
+struct kv_packet {
+ int id;
+ unsigned char data[KV_PACKET_SIZE - sizeof(unsigned int)];
+};
+struct kv_system_packet {
+ int operation_id;
+ int user_id;
+ unsigned int checksum;
+ unsigned char sentinel[KV_PACKET_SIZE - 4 * sizeof(int) - sizeof(short)];
+};
+
+unsigned int system_packet_checksum(struct kv_system_packet *packet);
+int __user_cmp(const void* a, const void* b);
+
+#endif // KV_PACKET_H
+