X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=formats%2Fctf%2Fctf.c;h=f1c0de478ba7f5cc60a1c9e0ffa99555136eab49;hp=ab4945dddcff18b8c41c6df91798096b4940695b;hb=5b80ddfb8dfa4db544efddcd8acaed1228f87daa;hpb=1842a4c801d0878adf40862fda0c310a52a6fdd2 diff --git a/formats/ctf/ctf.c b/formats/ctf/ctf.c index ab4945dd..f1c0de47 100644 --- a/formats/ctf/ctf.c +++ b/formats/ctf/ctf.c @@ -64,7 +64,7 @@ uint64_t opt_clock_offset; extern int yydebug; static -struct trace_descriptor *ctf_open_trace(const char *collection_path, const char *path, int flags, +struct trace_descriptor *ctf_open_trace(const char *path, int flags, void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, int whence), FILE *metadata_fp); static @@ -1268,97 +1268,8 @@ error: return ret; } -static void -init_domain_name(struct ctf_trace *td) -{ - char *start, *end; - - start = td->path + strlen(td->collection_path); - while (start[0] == '/') - start++; /* skip / */ - end = strchr(start, '/'); - if (!end) - end = start + strlen(start); - memcpy(td->domain, start, end - start); - td->domain[end - start] = '\0'; -} - -static void -init_proc_name(struct ctf_trace *td) -{ - char buf[PATH_MAX]; - char *start, *end; - - if (td->domain[0] == '\0') - return; - memcpy(buf, td->path, PATH_MAX); - start = buf + strlen(td->collection_path); - while (start[0] == '/') - start++; /* skip / */ - start = strchr(start, '/'); /* get begin of domain content */ - if (!start) - return; - while (start[0] == '/') - start++; /* skip / */ - /* find last -, skips time */ - end = strrchr(start, '-'); - if (!end) - return; - *end = '\0'; - /* find previous -, skips date */ - end = strrchr(start, '-'); - if (!end) - return; - *end = '\0'; - /* find previous -, skips pid */ - end = strrchr(start, '-'); - if (!end) - return; - *end = '\0'; - - memcpy(td->procname, start, end - start); - td->procname[end - start] = '\0'; -} - -static void -init_vpid(struct ctf_trace *td) -{ - char buf[PATH_MAX]; - char *start, *end; - - if (td->domain[0] == '\0') - return; - memcpy(buf, td->path, PATH_MAX); - start = buf + strlen(td->collection_path); - while (start[0] == '/') - start++; /* skip / */ - start = strchr(start, '/'); /* get begin of domain content */ - if (!start) - return; - while (start[0] == '/') - start++; /* skip / */ - /* find last -, skips time */ - end = strrchr(start, '-'); - if (!end) - return; - *end = '\0'; - /* find previous -, skips date */ - end = strrchr(start, '-'); - if (!end) - return; - *end = '\0'; - /* find previous -, skips pid */ - start = strrchr(start, '-'); - if (!start) - return; - start++; /* skip - */ - - memcpy(td->vpid, start, end - start); - td->vpid[end - start] = '\0'; -} - static -int ctf_open_trace_read(struct ctf_trace *td, const char *collection_path, +int ctf_open_trace_read(struct ctf_trace *td, const char *path, int flags, void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, int whence), FILE *metadata_fp) @@ -1367,7 +1278,6 @@ int ctf_open_trace_read(struct ctf_trace *td, const char *collection_path, struct dirent *dirent; struct dirent *diriter; size_t dirent_len; - char *respath, *rescolpath; td->flags = flags; @@ -1386,19 +1296,8 @@ int ctf_open_trace_read(struct ctf_trace *td, const char *collection_path, ret = -errno; goto error_dirfd; } - rescolpath = realpath(collection_path, td->collection_path); - if (!rescolpath) { - fprintf(stderr, "[error] collection path resolution failure\n"); - return -EINVAL; - } - respath = realpath(path, td->path); - if (!respath) { - fprintf(stderr, "[error] path resolution failure\n"); - return -EINVAL; - } - init_domain_name(td); - init_proc_name(td); - init_vpid(td); + strncpy(td->path, path, sizeof(td->path)); + td->path[sizeof(td->path) - 1] = '\0'; /* * Keep the metadata file separate. @@ -1454,7 +1353,7 @@ error: } static -struct trace_descriptor *ctf_open_trace(const char *collection_path, const char *path, int flags, +struct trace_descriptor *ctf_open_trace(const char *path, int flags, void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, int whence), FILE *metadata_fp) { @@ -1469,7 +1368,7 @@ struct trace_descriptor *ctf_open_trace(const char *collection_path, const char fprintf(stderr, "[error] Path missing for input CTF trace.\n"); goto error; } - ret = ctf_open_trace_read(td, collection_path, path, flags, move_pos_slow, metadata_fp); + ret = ctf_open_trace_read(td, path, flags, move_pos_slow, metadata_fp); if (ret) goto error; break;