/* command line options */
char *opt_output_path, *opt_working_directory;
static int opt_daemon, opt_background, opt_print_version, opt_allow_clear = 1;
+static int opt_allow_ctf2 = 1;
enum relay_group_output_by opt_group_output_by = RELAYD_GROUP_OUTPUT_BY_UNKNOWN;
/* Argument variables */
{ "group-output-by-session", 0, 0, 's', },
{ "group-output-by-host", 0, 0, 'p', },
{ "disallow-clear", 0, 0, 'x' },
+ { "disallow-ctf2", 0, 0, 'y' },
{ NULL, 0, 0, 0, },
};
if (EXTRA_VERSION_PATCHES[0] != '\0') {
DBG("LTTng-relayd extra patches:\n\t" EXTRA_VERSION_PATCHES "\n");
}
+
+ DBG("Trace format supported: %s%s", "ctf1", opt_allow_ctf2 ? ", ctf2" : "");
}
/*
/* Disallow clear */
opt_allow_clear = 0;
break;
+ case 'y':
+ /* Disallow clear */
+ opt_allow_ctf2 = 0;
+ break;
default:
/* Unknown option or other error.
* Error is printed by getopt, just return */
}
}
+ if (opt_allow_ctf2) {
+ /* Check if env variable exists. */
+ const char *value = lttng_secure_getenv(DEFAULT_LTTNG_RELAYD_DISALLOW_CTF2_ENV);
+ if (value) {
+ ret = config_parse_value(value);
+ if (ret < 0) {
+ ERR("Invalid value for %s specified",
+ DEFAULT_LTTNG_RELAYD_DISALLOW_CTF2_ENV);
+ retval = -1;
+ goto exit;
+ }
+ opt_allow_ctf2 = !ret;
+ }
+ }
+
exit:
free(config_path);
free(optstring);
msg = (typeof(msg)) header_view.data;
query_flags = be64toh(msg->query_flags);
+ /* FIXME: Do we want to return invalid protocol or do we want to return
+ * an array of lttcomm_relayd_get_configuration_specialized_query_reply
+ * for each unknown query bit ?
+ */
if (query_flags & ~LTTCOMM_RELAYD_CONFIGURATION_QUERY_FLAG_MASK) {
ret = LTTNG_ERR_INVALID_PROTOCOL;
goto reply;