summaryrefslogtreecommitdiffstats
path: root/server/dispatcher.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2012-03-14 19:34:35 +0100
committerMarc-André Lureau <marcandre.lureau@redhat.com>2012-03-25 19:00:00 +0200
commitb34fd7432d61b992446a3cd9c6f8eb7747ba0a76 (patch)
tree60a5b34a3e37177ea6a54da9fd8d2b475bfe9257 /server/dispatcher.c
parent359fc1cb5dbbcf32132c3e8ee6f881a23deff684 (diff)
downloadspice-b34fd7432d61b992446a3cd9c6f8eb7747ba0a76.tar.gz
spice-b34fd7432d61b992446a3cd9c6f8eb7747ba0a76.tar.xz
spice-b34fd7432d61b992446a3cd9c6f8eb7747ba0a76.zip
Use the spice-common logging functions
It will abort by default for critical level messages. That behaviour can be tuned at runtime.
Diffstat (limited to 'server/dispatcher.c')
-rw-r--r--server/dispatcher.c34
1 files changed, 16 insertions, 18 deletions
diff --git a/server/dispatcher.c b/server/dispatcher.c
index c15a7a18..cc20f89d 100644
--- a/server/dispatcher.c
+++ b/server/dispatcher.c
@@ -27,14 +27,12 @@
#include <fcntl.h>
#include <poll.h>
+#define SPICE_LOG_DOMAIN "SpiceDispatcher"
+
#include "common/mem.h"
#include "common/spice_common.h"
-
#include "dispatcher.h"
-#define DISPATCHER_DEBUG_PRINTF(level, ...) \
- red_printf_debug(level, "DISP", ##__VA_ARGS__)
-
//#define DEBUG_DISPATCHER
#ifdef DEBUG_DISPATCHER
@@ -64,10 +62,10 @@ static int read_safe(int fd, void *buf, size_t size, int block)
if (!block) {
while ((ret = poll(&pollfd, 1, 0)) == -1) {
if (errno == EINTR) {
- DISPATCHER_DEBUG_PRINTF(3, "EINTR in poll");
+ spice_debug("EINTR in poll");
continue;
}
- red_error("poll failed");
+ spice_error("poll failed");
return -1;
}
if (!(pollfd.revents & POLLIN)) {
@@ -78,13 +76,13 @@ static int read_safe(int fd, void *buf, size_t size, int block)
ret = read(fd, buf + read_size, size - read_size);
if (ret == -1) {
if (errno == EINTR) {
- DISPATCHER_DEBUG_PRINTF(3, "EINTR in read");
+ spice_debug("EINTR in read");
continue;
}
return -1;
}
if (ret == 0) {
- red_error("broken pipe on read");
+ spice_error("broken pipe on read");
return -1;
}
read_size += ret;
@@ -105,7 +103,7 @@ static int write_safe(int fd, void *buf, size_t size)
ret = write(fd, buf + written_size, size - written_size);
if (ret == -1) {
if (errno != EINTR) {
- DISPATCHER_DEBUG_PRINTF(3, "EINTR in write\n");
+ spice_debug("EINTR in write");
return -1;
}
continue;
@@ -124,7 +122,7 @@ static int dispatcher_handle_single_read(Dispatcher *dispatcher)
uint32_t ack = ACK;
if ((ret = read_safe(dispatcher->recv_fd, &type, sizeof(type), 0)) == -1) {
- red_printf("error reading from dispatcher: %d", errno);
+ spice_printerr("error reading from dispatcher: %d", errno);
return 0;
}
if (ret == 0) {
@@ -133,19 +131,19 @@ static int dispatcher_handle_single_read(Dispatcher *dispatcher)
}
msg = &dispatcher->messages[type];
if (read_safe(dispatcher->recv_fd, payload, msg->size, 1) == -1) {
- red_printf("error reading from dispatcher: %d", errno);
+ spice_printerr("error reading from dispatcher: %d", errno);
/* TODO: close socketpair? */
return 0;
}
if (msg->handler) {
msg->handler(dispatcher->opaque, (void *)payload);
} else {
- red_printf("error: no handler for message type %d", type);
+ spice_printerr("error: no handler for message type %d", type);
}
if (msg->ack == DISPATCHER_ACK) {
if (write_safe(dispatcher->recv_fd,
&ack, sizeof(ack)) == -1) {
- red_printf("error writing ack for message %d", type);
+ spice_printerr("error writing ack for message %d", type);
/* TODO: close socketpair? */
}
} else if (msg->ack == DISPATCHER_ASYNC && dispatcher->handle_async_done) {
@@ -177,20 +175,20 @@ void dispatcher_send_message(Dispatcher *dispatcher, uint32_t message_type,
msg = &dispatcher->messages[message_type];
pthread_mutex_lock(&dispatcher->lock);
if (write_safe(send_fd, &message_type, sizeof(message_type)) == -1) {
- red_printf("error: failed to send message type for message %d",
+ spice_printerr("error: failed to send message type for message %d",
message_type);
goto unlock;
}
if (write_safe(send_fd, payload, msg->size) == -1) {
- red_printf("error: failed to send message body for message %d",
+ spice_printerr("error: failed to send message body for message %d",
message_type);
goto unlock;
}
if (msg->ack == DISPATCHER_ACK) {
if (read_safe(send_fd, &ack, sizeof(ack), 1) == -1) {
- red_printf("error: failed to read ack");
+ spice_printerr("error: failed to read ack");
} else if (ack != ACK) {
- red_printf("error: got wrong ack value in dispatcher "
+ spice_printerr("error: got wrong ack value in dispatcher "
"for message %d\n", message_type);
/* TODO handling error? */
}
@@ -259,7 +257,7 @@ void dispatcher_init(Dispatcher *dispatcher, size_t max_message_type,
#endif
dispatcher->opaque = opaque;
if (socketpair(AF_LOCAL, SOCK_STREAM, 0, channels) == -1) {
- red_error("socketpair failed %s", strerror(errno));
+ spice_error("socketpair failed %s", strerror(errno));
return;
}
pthread_mutex_init(&dispatcher->lock, NULL);