free(attr->raw_override_path_url);
free(attr->raw_override_ctrl_url);
free(attr->raw_override_data_url);
- free(attr->override_attr.path_url);
- free(attr->override_attr.ctrl_url);
- free(attr->override_attr.data_url);
+ if (attr->override_attr) {
+ free(attr->override_attr->path_url);
+ free(attr->override_attr->ctrl_url);
+ free(attr->override_attr->data_url);
+ }
+ free(attr->override_attr);
free(attr);
}
}
{
const char *ret = NULL;
- if (attr && attr->override_attr.path_url) {
+ if (attr && attr->override_attr->path_url) {
ret = attr->raw_override_path_url;
}
{
const char *ret = NULL;
- if (attr && attr->override_attr.ctrl_url) {
+ if (attr && attr->override_attr->ctrl_url) {
ret = attr->raw_override_ctrl_url;
}
{
const char *ret = NULL;
- if (attr && attr->override_attr.data_url) {
+ if (attr && attr->override_attr->data_url) {
ret = attr->raw_override_data_url;
}
{
const char *ret = NULL;
- if (attr && (attr->override_attr.path_url ||
- (attr->override_attr.ctrl_url &&
- attr->override_attr.data_url))) {
+ if (attr && (attr->override_attr->path_url ||
+ (attr->override_attr->ctrl_url &&
+ attr->override_attr->data_url))) {
ret = attr->raw_override_url;
}
goto end;
}
- if (attr->override_attr.ctrl_url || attr->override_attr.data_url) {
+ if (!attr->override_attr) {
+ attr->override_attr = zmalloc(sizeof(struct config_load_session_override_attr));
+ if (!attr->override_attr) {
+ /* FIXME: return valid error */
+ ret = -LTTNG_ERR_INVALID;
+ goto end;
+ }
+ }
+
+ if (attr->override_attr->ctrl_url || attr->override_attr->data_url) {
/*
* FIXME: return a more meaningful error.
* Setting a path override after a ctrl or data override make no
}
/* Squash old value if any */
- free(attr->override_attr.path_url);
+ free(attr->override_attr->path_url);
free(attr->raw_override_path_url);
/* Populate the object */
- attr->override_attr.path_url = url_str;
+ attr->override_attr->path_url = url_str;
attr->raw_override_path_url = raw_str;
url_str = NULL;
goto end;
}
- if (attr->override_attr.path_url) {
+ if (!attr->override_attr) {
+ attr->override_attr = zmalloc(sizeof(struct config_load_session_override_attr));
+ if (!attr->override_attr) {
+ /* FIXME: return valid error */
+ ret = -LTTNG_ERR_INVALID;
+ goto end;
+ }
+ }
+
+ if (attr->override_attr->path_url) {
/*
* FIXME: return a more meaningful error.
* Setting a ctrl override after a path override make no
}
/* Squash old value if any */
- free(attr->override_attr.ctrl_url);
+ free(attr->override_attr->ctrl_url);
free(attr->raw_override_ctrl_url);
/* Populate the object */
- attr->override_attr.ctrl_url = url_str;
+ attr->override_attr->ctrl_url = url_str;
attr->raw_override_ctrl_url = raw_str;
url_str = NULL;
goto end;
}
- if (attr->override_attr.path_url) {
+ if (!attr->override_attr) {
+ attr->override_attr = zmalloc(sizeof(struct config_load_session_override_attr));
+ if (!attr->override_attr) {
+ /* FIXME: return valid error */
+ ret = -LTTNG_ERR_INVALID;
+ goto end;
+ }
+ }
+
+ if (attr->override_attr->path_url) {
/*
* FIXME: return a more meaningful error.
* Setting a data override after a path override make no
}
/* Squash old value if any */
- free(attr->override_attr.data_url);
+ free(attr->override_attr->data_url);
free(attr->raw_override_data_url);
/* Populate the object */
- attr->override_attr.data_url = url_str;
+ attr->override_attr->data_url = url_str;
attr->raw_override_data_url = raw_str;
url_str = NULL;
goto end;
}
+ if (!attr->override_attr) {
+ attr->override_attr = zmalloc(sizeof(struct config_load_session_override_attr));
+ if (!attr->override_attr) {
+ /* FIXME: return valid error */
+ ret = -LTTNG_ERR_INVALID;
+ goto end;
+ }
+ }
/*
* FIXME: uri_parse should be able to take as parameter the protocol
goto end;
}
- free(attr->override_attr.path_url);
- free(attr->override_attr.ctrl_url);
- free(attr->override_attr.data_url);
+ free(attr->override_attr->path_url);
+ free(attr->override_attr->ctrl_url);
+ free(attr->override_attr->data_url);
free(attr->raw_override_url);
free(attr->raw_override_path_url);
free(attr->raw_override_ctrl_url);
free(attr->raw_override_data_url);
- attr->override_attr.path_url = path_str;
- attr->override_attr.ctrl_url = ctrl_str;
- attr->override_attr.data_url = data_str;
+ attr->override_attr->path_url = path_str;
+ attr->override_attr->ctrl_url = ctrl_str;
+ attr->override_attr->data_url = data_str;
attr->raw_override_url = raw_url_str;
attr->raw_override_path_url = raw_path_str;
session_name = attr->session_name[0] != '\0' ?
attr->session_name : NULL;
- ret = config_load_session(url, session_name, attr->overwrite, 0);
+ ret = config_load_session(url, session_name, attr->overwrite, 0,
+ attr->override_attr);
end:
return ret;