- static char buffer[100];
- int ret = 0;
- do { // TODO: replace this whith a actually working readline
- memset(buffer, 0, 100);
- ret = recv(fd, buffer, sizeof(buffer), 0);
- if(!ret)
- return 1;
- if(ret < 0)
- return ret;
-
- char* saveptr;
- char* tok = strtok_r(buffer, "\n\r", &saveptr);
- do {
- if(!tok)
- continue;
+ int cmd_fd = -1;
+ if(cmd_q && (*cmd_q)) {
+ cmd_fd = (*cmd_q)->fd;
+ send_response(cmd_fd, str);
+ }
+
+ if(!strncmp(str, "Status:", 7)) {
+ client_t* client;
+ for(client = client_lst; client; client = client->next)
+ if(client->status_listener && client->fd != cmd_fd)
+ send_response(client->fd, str);
+ }
+
+ cmd_pop(cmd_q);