xmlChar *node_content = xmlNodeGetContent(node);
if (!node_content) {
ret = -LTTNG_ERR_NOMEM;
- goto end;
+ goto error;
}
name = (char *) node_content;
xmlChar *node_content = xmlNodeGetContent(node);
if (!node_content) {
ret = -LTTNG_ERR_NOMEM;
- goto end;
+ goto error;
}
ret = parse_bool(node_content, &started);
free(node_content);
if (ret) {
ret = -LTTNG_ERR_LOAD_INVALID_CONFIG;
- goto end;
+ goto error;
}
} else if (!output_node && !strcmp((const char *) node->name,
config_element_output)) {
xmlNodeGetContent(attributes_child);
if (!snapshot_mode_content) {
ret = -LTTNG_ERR_NOMEM;
- goto end;
+ goto error;
}
ret = parse_bool(snapshot_mode_content, &snapshot_mode);
free(snapshot_mode_content);
if (ret) {
ret = -LTTNG_ERR_LOAD_INVALID_CONFIG;
- goto end;
+ goto error;
}
} else {
/* live_timer_interval */
xmlNodeGetContent(attributes_child);
if (!timer_interval_content) {
ret = -LTTNG_ERR_NOMEM;
- goto end;
+ goto error;
}
ret = parse_uint(timer_interval_content, &live_timer_interval);
free(timer_interval_content);
if (ret) {
ret = -LTTNG_ERR_LOAD_INVALID_CONFIG;
- goto end;
+ goto error;
}
}
}
if (!name) {
/* Mandatory attribute, as defined in the session XSD */
ret = -LTTNG_ERR_LOAD_INVALID_CONFIG;
- goto end;
+ goto error;
}
if (session_name && strcmp(name, session_name)) {
/* This is not the session we are looking for */
- ret = -LTTNG_ERR_LOAD_SESSION_NOENT;
- goto end;
+ ret = -LTTNG_ERR_NO_SESSION;
+ goto error;
}
/* Init domains to create the session handles */
domain = zmalloc(sizeof(*domain));
if (!domain) {
ret = -LTTNG_ERR_NOMEM;
- goto end;
+ goto error;
}
ret = init_domain(node, domain);
domain_init_error:
free(domain);
ret = -LTTNG_ERR_LOAD_INVALID_CONFIG;
- goto end;
+ goto error;
}
if (override) {
ret = lttng_destroy_session(name);
if (ret && ret != -LTTNG_ERR_SESS_NOT_FOUND) {
ERR("Failed to destroy existing session.");
- goto end;
+ goto error;
}
}
ret = create_session(name, kernel_domain, ust_domain, jul_domain,
output_node, UINT64_MAX);
}
-
if (ret) {
- goto end;
+ goto error;
}
for (node = xmlFirstElementChild(domains_node); node;
goto end;
}
}
+
end:
if (ret < 0) {
ERR("Failed to load session %s: %s", name, lttng_strerror(ret));
lttng_destroy_session(name);
}
+error:
free(kernel_domain);
free(ust_domain);
free(jul_domain);