aboutsummaryrefslogtreecommitdiff
path: root/archived/v1/README.md
blob: 2cf0aeeb1755b0bae07d05d19067e49e75f26208 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Chatty
The idea is the following:
- tcp server that you can send messages to
- history upon connecting
- date of messages sent
- authentication
- encrypted communication (tls?)
- client for reading the messages and sending them at the same time

# Common
- use memory arena's to manage memory
- manage memory for what if it will not fit
    - for just do nothing when the limit is reached

# Server
- min height & width
- wrapping input
- [ ] bug: retransmissed message have no text
- [ ] history
- [x] max y for new messages and make them scroll
- [x] check resize event
- [x] asynchronously receive/send a message
- [x] send message to all other clients
- [x] fix receiving messages with arbitrary text length
- [x] bug: server copying the bytes correctly

- rooms
- encryption
- authentication

# Client
- bug: when having multiple messages and resizing a lot, the output will be in shambles
- bug: when resizing afters sending messages over network it crashes
- bug: all messages using the same buffer for text
- bug: 1. open chatty, send a message with send, messages won't be received by the server
- bug: memcpy is overlapping a byte in the next message when messages_add
- use pointer for add_message
- validation of sent/received messages
- handle disconnection

# Questions
- will two consecutive sends be read in one recv
    - not always.
- can you recv a message in two messages
    - yes, done.

# Message protocol
Version 1
1 version byte
4 length bytes
12 message_author bytes
- 11 chars + \0
9 timestamp bytes
- 8chars + \0
x text bytes
- x bytes + \0

The variable text bytes can be calculated by substracting the author and timestamp from the length