read first, then do all commands

This commit is contained in:
buffet 2019-04-13 15:30:49 +02:00
parent 3da91f59ea
commit 6581d7470e

View file

@ -66,10 +66,8 @@ ipc_connection(int fd, uint32_t mask, void *UNUSED(data))
return 0;
}
bool is_reading = true;
while (is_reading) {
int c = getc(client_file);
int c;
while ((c = getc(client_file)) != '\0') {
if (msg_len >= buffer_size) {
buffer_size *= 2;
char *tmp = realloc(msg, buffer_size);
@ -82,18 +80,13 @@ ipc_connection(int fd, uint32_t mask, void *UNUSED(data))
msg = tmp;
}
switch (c) {
case '\0':
is_reading = false;
// FALLTHROUGH
case '\n':
msg[msg_len] = '\0';
msg_len = 0;
// TODO: handle command
break;
default:
msg[msg_len++] = c;
}
msg[msg_len++] = c;
}
msg[msg_len] = '\0';
for (const char *cmd = strtok(msg, "\n"); cmd; cmd = strtok(NULL, "\n")) {
// TODO: handle client command
}
fclose(client_file);