projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add close unix socket function to libcomm API
[lttng-tools.git]
/
lttng
/
lttng.c
diff --git
a/lttng/lttng.c
b/lttng/lttng.c
index b08ecfed8af6debe14aeff7d4f35eb691cc42cd5..40cf52bc6a3b02059a1ea8635c412737f8a5f71f 100644
(file)
--- a/
lttng/lttng.c
+++ b/
lttng/lttng.c
@@
-56,6
+56,7
@@
static int set_signal_handler(void);
static int process_client_opt(void)
{
int ret;
static int process_client_opt(void)
{
int ret;
+ uuid_t uuid;
/* Connect to the session daemon */
ret = lttng_connect_sessiond();
/* Connect to the session daemon */
ret = lttng_connect_sessiond();
@@
-84,6
+85,18
@@
static int process_client_opt(void)
}
}
}
}
+ if (opt_destroy_session != NULL) {
+ uuid_parse(opt_destroy_session, uuid);
+ ret = lttng_destroy_session(&uuid);
+ if (ret < 0) {
+ goto end;
+ }
+ }
+
+ if (opt_session_uuid != NULL) {
+ lttng_set_current_session_uuid(opt_session_uuid);
+ }
+
return 0;
end:
return 0;
end:
@@
-100,15
+113,18
@@
end:
static int process_opt_create_session(void)
{
int ret;
static int process_opt_create_session(void)
{
int ret;
- char *session_id;
+ uuid_t session_id;
+ char str_uuid[37];
ret = lttng_create_session(opt_create_session, &session_id);
if (ret < 0) {
goto error;
}
ret = lttng_create_session(opt_create_session, &session_id);
if (ret < 0) {
goto error;
}
+ uuid_unparse(session_id, str_uuid);
+
MSG("Session created:");
MSG("Session created:");
- MSG(" %s (%s)", opt_create_session, s
ession_
id);
+ MSG(" %s (%s)", opt_create_session, s
tr_uu
id);
error:
return ret;
error:
return ret;
@@
-341,6
+357,9
@@
static void sighandler(int sig)
void clean_exit(int code)
{
DBG("Clean exit");
void clean_exit(int code)
{
DBG("Clean exit");
+ if (lttng_disconnect_sessiond() < 0) {
+ ERR("Session daemon disconnect failed.");
+ }
exit(code);
}
exit(code);
}
@@
-360,12
+379,12
@@
int main(int argc, char *argv[])
ret = parse_args(argc, (const char **) argv);
if (ret < 0) {
ret = parse_args(argc, (const char **) argv);
if (ret < 0) {
-
return EXIT_FAILURE
;
+
clean_exit(EXIT_FAILURE)
;
}
ret = set_signal_handler();
if (ret < 0) {
}
ret = set_signal_handler();
if (ret < 0) {
-
return ret
;
+
clean_exit(ret)
;
}
if (opt_tracing_group != NULL) {
}
if (opt_tracing_group != NULL) {
@@
-378,7
+397,7
@@
int main(int argc, char *argv[])
DBG("Kernel tracing activated");
if (getuid() != 0) {
ERR("%s must be setuid root", progname);
DBG("Kernel tracing activated");
if (getuid() != 0) {
ERR("%s must be setuid root", progname);
-
return -EPERM
;
+
clean_exit(-EPERM)
;
}
}
}
}
@@
-386,13
+405,15
@@
int main(int argc, char *argv[])
* If no, a daemon will be spawned.
*/
if (opt_no_sessiond == 0 && (check_ltt_sessiond() < 0)) {
* If no, a daemon will be spawned.
*/
if (opt_no_sessiond == 0 && (check_ltt_sessiond() < 0)) {
-
return EXIT_FAILURE
;
+
clean_exit(EXIT_FAILURE)
;
}
ret = process_client_opt();
if (ret < 0) {
}
ret = process_client_opt();
if (ret < 0) {
-
return ret
;
+
clean_exit(ret)
;
}
}
+ clean_exit(0);
+
return 0;
}
return 0;
}
This page took
0.024692 seconds
and
4
git commands to generate.