diff options
author | Raymaekers Luca <luca@spacehb.net> | 2025-04-29 13:41:20 +0200 |
---|---|---|
committer | Raymaekers Luca <luca@spacehb.net> | 2025-04-29 13:48:55 +0200 |
commit | 5242ba4f54326dec76a49eedcb4866dee64db33c (patch) | |
tree | a15d0748a9f193b3dd5e4da773b55f86031bb8b7 | |
parent | f87f7b4f0aaccc65d03ccee5bb11915ead6fb0e1 (diff) |
Use our Assert macro; Added screenshotmain
-rw-r--r-- | README.md | 12 | ||||
-rwxr-xr-x | build/chatty | bin | 139016 -> 134384 bytes | |||
-rwxr-xr-x | build/server | bin | 44688 -> 40176 bytes | |||
-rw-r--r-- | screenshot.png | bin | 0 -> 95088 bytes | |||
-rw-r--r-- | source/protocol.h | 36 |
5 files changed, 26 insertions, 22 deletions
@@ -3,6 +3,10 @@ ## Overview `chatty` is a terminal chat application. Included is also a server. +<br> +<br> +<img src="https://git.spacehb.net/chatty/plain/screenshot.png?h=main"> + ### Client features - users are saved @@ -41,13 +45,13 @@ In another prompt, start a client with ``` # Resources -- terminal library: [Termbox2](https://github.com/termbox/termbox2) -- source code I looked at: +- Terminal library: [Termbox2](https://github.com/termbox/termbox2) +- Source code I looked at: - https://github.com/git-bruh/matrix-tui - https://github.com/NikitaIvanovV/ictree - *mmap & gdb*: [Tsoding - "Why linux has this syscall?" ](https://youtu.be/sFYFuBzu9Ow?si=CX32IzFVA8OPDZvS) - *pthreads*: [C for dummies](https://c-for-dummies.com/blog/?p=5365) - *unicode and wide characters*: [C for dummies](https://c-for-dummies.com/blog/?p=2578) - *sockets*: [Nir Lichtman - Making Minimalist Chat Server in C on Linux](https://www.youtube.com/watch?v=gGfTjKwLQxY) -- syscall manpages `man` -- UTF8 Comprssion: [Casey Muratori - Simple RLE Compressor](https://www.youtube.com/watch?v=kikLEdc3C1c&t=6312s) +- Syscall manpages `man` +- Compression: [Casey Muratori - Simple RLE Compressor](https://www.youtube.com/watch?v=kikLEdc3C1c&t=6312s) diff --git a/build/chatty b/build/chatty Binary files differindex 06f4379..824eff9 100755 --- a/build/chatty +++ b/build/chatty diff --git a/build/server b/build/server Binary files differindex 90d2d33..3a11bc7 100755 --- a/build/server +++ b/build/server diff --git a/screenshot.png b/screenshot.png Binary files differnew file mode 100644 index 0000000..db6d5d9 --- /dev/null +++ b/screenshot.png diff --git a/source/protocol.h b/source/protocol.h index f863f0a..5d330d7 100644 --- a/source/protocol.h +++ b/source/protocol.h @@ -204,16 +204,16 @@ recvTextMessage(Arena* msgsArena, u32 fd) // Receive everything but the text so we can know the text's size and act accordingly s32 nrecv = recv(fd, message, TEXTMESSAGE_SIZE, 0); - assert(nrecv != -1); - assert(nrecv == TEXTMESSAGE_SIZE); + Assert(nrecv != -1); + Assert(nrecv == TEXTMESSAGE_SIZE); // Allocate memory for text and receive in that memory u32 text_size = message->len * sizeof(*message->text); ArenaPush(msgsArena, text_size); nrecv = recv(fd, (u8*)&message->text, text_size, 0); - assert(nrecv != -1); - assert(nrecv == (s32)(message->len * sizeof(*message->text))); + Assert(nrecv != -1); + Assert(nrecv == (s32)(message->len * sizeof(*message->text))); return message; } @@ -234,7 +234,7 @@ getMessageSize(HeaderType type) case HEADER_TYPE_INTRODUCTION: size = sizeof(IntroductionMessage); break; case HEADER_TYPE_PRESENCE: size = sizeof(PresenceMessage); break; case HEADER_TYPE_ID: size = sizeof(IDMessage); break; - default: assert(0); + default: Assert(0); } return size; } @@ -245,7 +245,7 @@ recvAnyMessageType(s32 fd, HeaderMessage* header, void *anyMessage, HeaderType t s32 nrecv = recv(fd, header, sizeof(*header), 0); if (nrecv == -1 || nrecv == 0) return nrecv; - assert(nrecv == sizeof(*header)); + Assert(nrecv == sizeof(*header)); s32 size = 0; switch (type) @@ -262,13 +262,13 @@ recvAnyMessageType(s32 fd, HeaderMessage* header, void *anyMessage, HeaderType t TextMessage* message = anyMessage; size = TEXTMESSAGE_SIZE + message->len * sizeof(*message->text); } break; - default: assert(0); break; + default: Assert(0); break; } - assert(header->type == type); + Assert(header->type == type); nrecv = recv(fd, anyMessage, size, 0); - assert(nrecv != -1); - assert(nrecv == size); + Assert(nrecv != -1); + Assert(nrecv == size); return size; } @@ -279,8 +279,8 @@ recvAnyMessage(Arena* arena, s32 fd) { HeaderMessage* header = ArenaPush(arena, sizeof(*header)); s32 nrecv = recv(fd, header, sizeof(*header), 0); - assert(nrecv != -1); - assert(nrecv == sizeof(*header)); + Assert(nrecv != -1); + Assert(nrecv == sizeof(*header)); s32 size = 0; switch (header->type) @@ -300,8 +300,8 @@ recvAnyMessage(Arena* arena, s32 fd) void* message = ArenaPush(arena, size); nrecv = recv(fd, message, size, 0); - assert(nrecv != -1); - assert(nrecv == size); + Assert(nrecv != -1); + Assert(nrecv == size); Message result; result.header = header; @@ -333,7 +333,7 @@ sendAnyMessage(u32 fd, HeaderMessage header, void* anyMessage) s32 nsend = send(fd, &header, sizeof(header), 0); if (nsend == -1) return nsend; LoggingF("sendAnyMessage (%d)|sending "HEADER_FMT"\n", fd, HEADER_ARG(header)); - assert(nsend == sizeof(header)); + Assert(nsend == sizeof(header)); nsend_total = nsend; s32 size = 0; @@ -349,8 +349,8 @@ sendAnyMessage(u32 fd, HeaderMessage header, void* anyMessage) case HEADER_TYPE_TEXT: { nsend = send(fd, anyMessage, TEXTMESSAGE_SIZE, 0); - assert(nsend != -1); - assert(nsend == TEXTMESSAGE_SIZE); + Assert(nsend != -1); + Assert(nsend == TEXTMESSAGE_SIZE); nsend_total += nsend; // set size to remaning text size that should be sent TextMessage* message = (TextMessage*)anyMessage; @@ -366,7 +366,7 @@ sendAnyMessage(u32 fd, HeaderMessage header, void* anyMessage) nsend = send(fd, anyMessage, size, 0); if (nsend == -1) return nsend; - assert(nsend == size); + Assert(nsend == size); nsend_total += nsend; return nsend_total; |