diff options
Diffstat (limited to 'send.c')
-rw-r--r-- | send.c | 18 |
1 files changed, 14 insertions, 4 deletions
@@ -30,19 +30,29 @@ main(int argc, char** argv) err = connect(serverfd, (struct sockaddr*)&address, sizeof(address)); assert(err == 0); - HeaderMessage header = HEADER_TEXTMESSAGE; - TextMessage* message; - // convert text to wide string u32 text_len = strlen(argv[2]) + 1; u32 text_wide[text_len]; u32 size = mbstowcs((wchar_t*)text_wide, argv[2], text_len - 1); assert(size == text_len - 1); text_wide[text_len - 1] = 0; - u32 author_len = strlen(argv[1]); assert(author_len + 1 <= AUTHOR_LEN); // add 1 for null terminator + // Introduce ourselves + { + HeaderMessage header = HEADER_PRESENCEMESSAGE; + PresenceMessage message; + memcpy(message.author, argv[1], author_len); + nsend = send(serverfd, &header, sizeof(header), 0); + assert(nsend != -1); + nsend = send(serverfd, &message, sizeof(message), 0); + assert(nsend != -1); + } + + HeaderMessage header = HEADER_TEXTMESSAGE; + TextMessage* message; + u8 buf[text_len * sizeof(*text_wide) + TEXTMESSAGE_SIZE]; bzero(buf, sizeof(buf)); message = (TextMessage*)buf; |