aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--send.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/send.c b/send.c
index f526b4c..585c925 100644
--- a/send.c
+++ b/send.c
@@ -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;