X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=converter%2Fbabeltrace.c;h=c521ac1516c459641b24ec476f4c425ad09fcfe4;hp=d5a7040cdb33b4bc4085a2c31cb8efcd8a3b8c6a;hb=37566b71e5598181de2ecdb390a8cab19786f4e1;hpb=92c6a024cd3e81293bd39fd2b322e12ce57ea502 diff --git a/converter/babeltrace.c b/converter/babeltrace.c index d5a7040c..c521ac15 100644 --- a/converter/babeltrace.c +++ b/converter/babeltrace.c @@ -26,8 +26,6 @@ * SOFTWARE. */ -#define _GNU_SOURCE -#include #include #include #include @@ -57,6 +55,10 @@ #define DEFAULT_FILE_ARRAY_SIZE 1 +#define NET_URL_PREFIX "net://" +#define NET4_URL_PREFIX "net4://" +#define NET6_URL_PREFIX "net6://" + static char *opt_input_format, *opt_output_format; /* @@ -497,6 +499,17 @@ int bt_context_add_traces_recursive(struct bt_context *ctx, const char *path, { int ret = 0, trace_ids = 0; + if ((strncmp(path, NET4_URL_PREFIX, sizeof(NET4_URL_PREFIX) - 1)) == 0 || + (strncmp(path, NET6_URL_PREFIX, sizeof(NET6_URL_PREFIX) - 1)) == 0 || + (strncmp(path, NET_URL_PREFIX, sizeof(NET_URL_PREFIX) - 1)) == 0) { + ret = bt_context_add_trace(ctx, + path, format_str, packet_seek, NULL, NULL); + if (ret < 0) { + fprintf(stderr, "[warning] [Context] cannot open trace \"%s\" " + "for reading.\n", path); + } + return ret; + } /* Should lock traversed_paths mutex here if used in multithread */ traversed_paths = g_ptr_array_new(); @@ -697,7 +710,7 @@ int main(int argc, char **argv) } } fmt_read = bt_lookup_format(g_quark_from_static_string(opt_input_format)); - if (!fmt_read || fmt_read->name != g_quark_from_static_string("ctf")) { + if (!fmt_read) { fprintf(stderr, "[error] Format \"%s\" is not supported.\n\n", opt_input_format); partial_error = 1; @@ -757,10 +770,13 @@ int main(int argc, char **argv) goto error_copy_trace; } - ret = convert_trace(td_write, ctx); - if (ret) { - fprintf(stderr, "Error printing trace.\n\n"); - goto error_copy_trace; + /* For now, we support only CTF iterators */ + if (fmt_read->name == g_quark_from_static_string("ctf")) { + ret = convert_trace(td_write, ctx); + if (ret) { + fprintf(stderr, "Error printing trace.\n\n"); + goto error_copy_trace; + } } ret = trace_post_handler(td_write, ctx);