projects
/
svn42.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
...
[svn42.git]
/
door_daemon
/
door_daemon.c
diff --git
a/door_daemon/door_daemon.c
b/door_daemon/door_daemon.c
index
f7bb2f8
..
ee93657
100644
(file)
--- a/
door_daemon/door_daemon.c
+++ b/
door_daemon/door_daemon.c
@@
-38,7
+38,6
@@
#include "client_list.h"
#include "daemon.h"
#include "client_list.h"
#include "daemon.h"
-#include "sysexec.h"
int init_command_socket(const char* path)
{
int init_command_socket(const char* path)
{
@@
-171,10
+170,14
@@
int process_cmd(const char* cmd, int fd, cmd_t **cmd_q, client_t* client_lst)
char* linefeed = strchr(resp, '\n');
if(linefeed) linefeed[0] = 0;
client_t* client;
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)
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);
send_response(client->fd, resp);
+ listener_cnt++;
+ }
free(resp);
free(resp);
+ log_printf(DEBUG, "sent request to %d additional listeners", listener_cnt);
}
// else silently ignore memory alloc error
}
}
// else silently ignore memory alloc error
}
@@
-289,6
+292,9
@@
int process_door(read_buffer_t* buffer, int door_fd, cmd_t **cmd_q, client_t* cl
if(buffer->buf[buffer->offset] == '\n') {
buffer->buf[buffer->offset] = 0;
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;
log_printf(NOTICE, "door-firmware: %s", buffer->buf);
int cmd_fd = -1;
@@
-299,16
+305,24
@@
int process_door(read_buffer_t* buffer, int door_fd, cmd_t **cmd_q, client_t* cl
if(!strncmp(buffer->buf, "Status:", 7)) {
client_t* client;
if(!strncmp(buffer->buf, "Status:", 7)) {
client_t* client;
+ int listener_cnt = 0;
for(client = client_lst; client; client = client->next)
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);
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;
}
if(!strncmp(buffer->buf, "Error:", 6)) {
client_t* client;
+ int listener_cnt = 0;
for(client = client_lst; client; client = client->next)
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);
send_response(client->fd, buffer->buf);
+ listener_cnt++;
+ }
+ log_printf(DEBUG, "sent error to %d additional listeners", listener_cnt);
}
cmd_pop(cmd_q);
}
cmd_pop(cmd_q);