#include "client_list.h"
#include "daemon.h"
-#include "sysexec.h"
int init_command_socket(const char* path)
{
char* linefeed = strchr(resp, '\n');
if(linefeed) linefeed[0] = 0;
client_t* client;
+ int listener_cnt = 0;
for(client = client_lst; client; client = client->next)
- if(client->request_listener && client->fd != fd)
+ if(client->request_listener && client->fd != fd) {
send_response(client->fd, resp);
+ listener_cnt++;
+ }
free(resp);
+ log_printf(DEBUG, "sent request to %d additional listeners", listener_cnt);
}
// else silently ignore memory alloc error
}
if(buffer->buf[buffer->offset] == '\n') {
buffer->buf[buffer->offset] = 0;
+ if(buffer->offset > 0 && buffer->buf[buffer->offset-1] == '\r')
+ buffer->buf[buffer->offset-1] = 0;
+
log_printf(NOTICE, "door-firmware: %s", buffer->buf);
int cmd_fd = -1;
if(!strncmp(buffer->buf, "Status:", 7)) {
client_t* client;
+ int listener_cnt = 0;
for(client = client_lst; client; client = client->next)
- if(client->status_listener && client->fd != cmd_fd)
+ if(client->status_listener && client->fd != cmd_fd) {
send_response(client->fd, buffer->buf);
+ listener_cnt++;
+ }
+ log_printf(DEBUG, "sent status to %d additional listeners", listener_cnt);
}
if(!strncmp(buffer->buf, "Error:", 6)) {
client_t* client;
+ int listener_cnt = 0;
for(client = client_lst; client; client = client->next)
- if(client->error_listener && client->fd != cmd_fd)
+ if(client->error_listener && client->fd != cmd_fd) {
send_response(client->fd, buffer->buf);
+ listener_cnt++;
+ }
+ log_printf(DEBUG, "sent error to %d additional listeners", listener_cnt);
}
cmd_pop(cmd_q);