X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fplugins%2Fctf%2Flttng-live%2Fviewer-connection.c;h=f094a8f96553f3c9e098c373d3a177df9fc0eecf;hb=f797424a5aa3b965937203073b27d666c25a6987;hp=9b9a78e255e67ee4b2894f40db938c9c24f8c8a1;hpb=b602018bfbd512fd2f8f41778f6560e9fb607bcb;p=babeltrace.git diff --git a/src/plugins/ctf/lttng-live/viewer-connection.c b/src/plugins/ctf/lttng-live/viewer-connection.c index 9b9a78e2..f094a8f9 100644 --- a/src/plugins/ctf/lttng-live/viewer-connection.c +++ b/src/plugins/ctf/lttng-live/viewer-connection.c @@ -74,8 +74,11 @@ ssize_t lttng_live_recv(struct live_viewer_connection *viewer_connection, } } } while (ret > 0 && to_copy > 0); - if (ret > 0) + + if (ret > 0) { ret = copied; + } + /* ret = 0 means orderly shutdown, ret == BT_SOCKET_ERROR is error. */ return ret; } @@ -318,11 +321,6 @@ int list_update_session(bt_value *results, const char *session_name_str = NULL; map = bt_value_array_borrow_element_by_index(results, i); - if (!map) { - BT_COMP_LOGE_STR("Error borrowing map."); - ret = -1; - goto end; - } hostname = bt_value_map_borrow_entry_value(map, "target-hostname"); if (!hostname) { BT_COMP_LOGE_STR("Error borrowing \"target-hostname\" entry."); @@ -971,11 +969,11 @@ error: } BT_HIDDEN -ssize_t lttng_live_get_one_metadata_packet(struct lttng_live_trace *trace, - FILE *fp) +enum lttng_live_get_one_metadata_status lttng_live_get_one_metadata_packet( + struct lttng_live_trace *trace, FILE *fp, size_t *reply_len) { uint64_t len = 0; - int ret; + enum lttng_live_get_one_metadata_status metadata_status; struct lttng_viewer_cmd cmd; struct lttng_viewer_get_metadata rq; struct lttng_viewer_metadata_packet rp; @@ -1022,15 +1020,21 @@ ssize_t lttng_live_get_one_metadata_packet(struct lttng_live_trace *trace, switch (be32toh(rp.status)) { case LTTNG_VIEWER_METADATA_OK: - BT_COMP_LOGD("get_metadata : OK"); + BT_COMP_LOGD("Received get_metadata response : OK"); break; case LTTNG_VIEWER_NO_NEW_METADATA: - BT_COMP_LOGD("get_metadata : NO NEW"); - ret = 0; + BT_COMP_LOGD("Received get_metadata response: no new"); + metadata_status = LTTNG_LIVE_GET_ONE_METADATA_STATUS_END; goto end; case LTTNG_VIEWER_METADATA_ERR: - BT_COMP_LOGD("get_metadata : ERR"); - goto error; + /* + * The Relayd cannot find this stream id. Maybe its + * gone already. This can happen in short lived UST app + * in a per-pid session. + */ + BT_COMP_LOGD("Received get_metadata response: error"); + metadata_status = LTTNG_LIVE_GET_ONE_METADATA_STATUS_CLOSED; + goto end; default: BT_COMP_LOGD("get_metadata : UNKNOWN"); goto error; @@ -1067,14 +1071,18 @@ ssize_t lttng_live_get_one_metadata_packet(struct lttng_live_trace *trace, } BT_ASSERT(ret_len == len); free(data); - ret = len; -end: - return ret; + *reply_len = len; + metadata_status = LTTNG_LIVE_GET_ONE_METADATA_STATUS_OK; + + goto end; error_free_data: free(data); error: - return -1; + metadata_status = LTTNG_LIVE_GET_ONE_METADATA_STATUS_ERROR; + +end: + return metadata_status; } /*