X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Flttng-ctl.c;h=3b67923b9cae45ce088b02853c19d7b0e31799bc;hb=4f50c803f026f217d37588c46265b5c2fb9a1195;hp=8f63bf3e85e367285f9c599176040a4cd266dcd5;hpb=d0b96690836f4b876096f3dc14801f8e25281a77;p=lttng-tools.git diff --git a/src/lib/lttng-ctl/lttng-ctl.c b/src/lib/lttng-ctl/lttng-ctl.c index 8f63bf3e8..3b67923b9 100644 --- a/src/lib/lttng-ctl/lttng-ctl.c +++ b/src/lib/lttng-ctl/lttng-ctl.c @@ -73,6 +73,33 @@ static int connected; int lttng_opt_quiet; int lttng_opt_verbose; +/* + * Compare two URL destination. + * + * Return 0 is equal else is not equal. + */ +static int compare_destination(struct lttng_uri *ctrl, struct lttng_uri *data) +{ + int ret; + + assert(ctrl); + assert(data); + + switch (ctrl->dtype) { + case LTTNG_DST_IPV4: + ret = strncmp(ctrl->dst.ipv4, data->dst.ipv4, sizeof(ctrl->dst.ipv4)); + break; + case LTTNG_DST_IPV6: + ret = strncmp(ctrl->dst.ipv6, data->dst.ipv6, sizeof(ctrl->dst.ipv6)); + break; + default: + ret = -1; + break; + } + + return ret; +} + static void set_default_url_attr(struct lttng_uri *uri, enum lttng_stream_type stype) { @@ -158,6 +185,8 @@ static ssize_t parse_str_urls_to_uri(const char *ctrl_url, const char *data_url, } if (data_url) { + int ret; + /* We have to parse the data URL in this case */ size_data = uri_parse(data_url, &data_uris); if (size_data < 1) { @@ -169,6 +198,12 @@ static ssize_t parse_str_urls_to_uri(const char *ctrl_url, const char *data_url, } set_default_url_attr(&data_uris[0], LTTNG_STREAM_DATA); + + ret = compare_destination(&ctrl_uris[0], &data_uris[0]); + if (ret != 0) { + ERR("Control and data destination mismatch"); + goto error; + } } /* Compute total size */ @@ -1360,6 +1395,8 @@ void lttng_channel_set_default_attr(struct lttng_domain *domain, attr->subbuf_size = default_get_kernel_channel_subbuf_size(); attr->num_subbuf = DEFAULT_KERNEL_CHANNEL_SUBBUF_NUM; attr->output = DEFAULT_KERNEL_CHANNEL_OUTPUT; + attr->tracefile_size = DEFAULT_KERNEL_CHANNEL_TRACEFILE_SIZE; + attr->tracefile_count = DEFAULT_KERNEL_CHANNEL_TRACEFILE_COUNT; break; case LTTNG_DOMAIN_UST: #if 0 @@ -1374,6 +1411,8 @@ void lttng_channel_set_default_attr(struct lttng_domain *domain, attr->subbuf_size = default_get_ust_channel_subbuf_size(); attr->num_subbuf = DEFAULT_UST_CHANNEL_SUBBUF_NUM; attr->output = DEFAULT_UST_CHANNEL_OUTPUT; + attr->tracefile_size = DEFAULT_UST_CHANNEL_TRACEFILE_SIZE; + attr->tracefile_count = DEFAULT_UST_CHANNEL_TRACEFILE_COUNT; break; default: /* Default behavior: leave set to 0. */