diff options
author | fschildt <florian.schildt@protonmail.com> | 2025-08-22 15:23:11 +0200 |
---|---|---|
committer | fschildt <florian.schildt@protonmail.com> | 2025-08-22 15:23:11 +0200 |
commit | 2050c0e0576f05156f192aa4caf48834d2f28b14 (patch) | |
tree | ee58bd35b0df0a1bacfbc9700ed99ce80c99294e /src/messages |
Diffstat (limited to 'src/messages')
-rw-r--r-- | src/messages/messages.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/messages/messages.h b/src/messages/messages.h new file mode 100644 index 0000000..dfc0df3 --- /dev/null +++ b/src/messages/messages.h @@ -0,0 +1,75 @@ +#ifndef FSCORD_MESSAGES_H +#define FSCORD_MESSAGES_H + +// Todo: Currently every user is identified via his name. Can we change it to an id? + +#include <basic/basic.h> +#include <basic/string32.h> +#include <os/os.h> +#include <crypto/aes_gcm.h> + + +#define MESSAGES_MAX_USER_COUNT 128 +#define MESSAGES_MAX_USERNAME_LEN 32 +#define MESSAGES_MAX_PASSWORD_LEN 32 +#define MESSAGES_MAX_MESSAGE_LEN 1024 +#define MESSAGES_MAX_PACKAGE_SIZE 1408 + +typedef struct { + u32 size; + u32 type; +} MessageHeader; + +enum { + C2S_LOGIN, + C2S_CHAT_MESSAGE, +}; + +enum { + S2C_LOGIN, + S2C_USER_UPDATE, + S2C_CHAT_MESSAGE, +}; + +enum { + S2C_LOGIN_ERROR, + S2C_LOGIN_SUCCESS +}; + +enum { + S2C_USER_UPDATE_OFFLINE, + S2C_USER_UPDATE_ONLINE, +}; + +typedef struct { + MessageHeader header; + String32 *username; + String32 *password; +} C2S_Login; + +typedef struct { + MessageHeader header; + String32 *content; +} C2S_ChatMessage; + +typedef struct { + MessageHeader header; + u32 login_result; +} S2C_Login; + +typedef struct { + MessageHeader header; + u32 status; + String32 *username; +} S2C_UserUpdate; + +typedef struct { + MessageHeader header; + i64 epoch_time_seconds; + i64 epoch_time_nanoseconds; + String32 *username; + String32 *content; +} S2C_ChatMessage; + + +#endif // FSCORD_MESSAGES_H |