+ const gchar *username = gtk_entry_get_text(GTK_ENTRY(tcd->username_entry));
+ const gchar *password = gtk_entry_get_text(GTK_ENTRY(tcd->password_entry));
+ const gchar *channel_dir =
+ gtk_entry_get_text(GTK_ENTRY(tcd->channel_dir_entry));
+ const gchar *trace_dir = gtk_entry_get_text(GTK_ENTRY(tcd->trace_dir_entry));
+ const gchar *trace_name =
+ gtk_entry_get_text(GTK_ENTRY(tcd->trace_name_entry));
+
+ const gchar *trace_mode_sel;
+ GtkTreeIter iter;
+
+ gtk_combo_box_get_active_iter(GTK_COMBO_BOX(tcd->trace_mode_combo), &iter);
+ gtk_tree_model_get(
+ gtk_combo_box_get_model(GTK_COMBO_BOX(tcd->trace_mode_combo)),
+ &iter, 0, &trace_mode_sel, -1);
+ //const gchar *trace_mode_sel =
+ //2.6+ gtk_combo_box_get_active_text(GTK_COMBO_BOX(tcd->trace_mode_combo));
+ const gchar *trace_mode;
+ if(strcmp(trace_mode_sel, "normal") == 0)
+ trace_mode = "normal";
+ else
+ trace_mode = "flight";
+
+ gboolean start_daemon =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(tcd->start_daemon_check));
+
+ gboolean append =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(tcd->append_check));
+
+ const gchar *subbuf_size =
+ gtk_entry_get_text(GTK_ENTRY(tcd->subbuf_size_entry));
+ const gchar *subbuf_num =
+ gtk_entry_get_text(GTK_ENTRY(tcd->subbuf_num_entry));
+ const gchar *threads_num =
+ gtk_entry_get_text(GTK_ENTRY(tcd->lttd_threads_entry));
+ const gchar *lttctl_path =
+ gtk_entry_get_text(GTK_ENTRY(tcd->lttctl_path_entry));
+ const gchar *lttd_path = gtk_entry_get_text(GTK_ENTRY(tcd->lttd_path_entry));
+ const gchar *fac_path = gtk_entry_get_text(GTK_ENTRY(tcd->fac_path_entry));
+
+
+ /* Setup arguments to su */
+ /* child */
+ gchar args[MAX_ARGS_LEN];
+ gint args_left = MAX_ARGS_LEN - 1; /* for \0 */
+
+ args[0] = '\0';
+
+ /* Command */
+ strncat(args, "exec", args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+
+ /* space */
+ strncat(args, " ", args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+
+ if(strcmp(lttctl_path, "") == 0)
+ strncat(args, "lttctl", args_left);
+ else
+ strncat(args, lttctl_path, args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+
+ /* space */
+ strncat(args, " ", args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+
+ /* channel dir */
+ strncat(args, "-l ", args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+ strncat(args, channel_dir, args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+
+ /* space */
+ strncat(args, " ", args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+
+ /* trace dir */
+ strncat(args, "-t ", args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+ strncat(args, trace_dir, args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+
+ /* space */
+ strncat(args, " ", args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+
+ /* name */
+ strncat(args, "-n ", args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+ strncat(args, trace_name, args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+
+ /* space */
+ strncat(args, " ", args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+
+ /* trace mode */
+ strncat(args, "-m ", args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+ strncat(args, trace_mode, args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+
+ /* space */
+ strncat(args, " ", args_left);
+ args_left = MAX_ARGS_LEN - strlen(args) - 1;
+
+ /* Start daemon ? */
+ if(start_daemon) {
+ strncat(args, "-d", args_left);