X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fnotification-thread-events.c;h=24bc2482ade2590a802057a3e7dd334c01f16220;hb=8a5422a0a990db34189f2c159820e36e0ace7dd1;hp=bdbac0c4001f44f218ea0821eab5891972d35043;hpb=32e10baa3513a50f5dca51193cd9c834a2e0c39a;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/notification-thread-events.c b/src/bin/lttng-sessiond/notification-thread-events.c index bdbac0c40..24bc2482a 100644 --- a/src/bin/lttng-sessiond/notification-thread-events.c +++ b/src/bin/lttng-sessiond/notification-thread-events.c @@ -928,7 +928,10 @@ int evaluate_condition_for_client(const struct lttng_trigger *trigger, ret = -1; goto end; } - + if (ret) { + /* Fatal error. */ + goto end; + } if (!evaluation) { /* Evaluation yielded nothing. Normal exit. */ DBG("[notification-thread] Newly subscribed-to condition evaluated to false, nothing to report to client"); @@ -2571,13 +2574,12 @@ int client_flush_outgoing_queue(struct notification_client *client, ret = lttcomm_send_unix_sock_non_block(client->socket, client->communication.outbound.buffer.data, to_send_count); - if ((ret < 0 && (errno == EAGAIN || errno == EWOULDBLOCK)) || - (ret > 0 && ret < to_send_count)) { + if ((ret >= 0 && ret < to_send_count)) { DBG("[notification-thread] Client (socket fd = %i) outgoing queue could not be completely flushed", client->socket); to_send_count -= max(ret, 0); - memcpy(client->communication.outbound.buffer.data, + memmove(client->communication.outbound.buffer.data, client->communication.outbound.buffer.data + client->communication.outbound.buffer.size - to_send_count, to_send_count);