projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Missing error handling: consumerd parse_args should return errors to caller
[lttng-tools.git]
/
src
/
bin
/
lttng-consumerd
/
lttng-consumerd.c
diff --git
a/src/bin/lttng-consumerd/lttng-consumerd.c
b/src/bin/lttng-consumerd/lttng-consumerd.c
index 4a9a7a4929200bfd53c838eed13b48f52dd0ae50..ceb1da453a915edcde988f6781aa8c41d3234de8 100644
(file)
--- a/
src/bin/lttng-consumerd/lttng-consumerd.c
+++ b/
src/bin/lttng-consumerd/lttng-consumerd.c
@@
-17,6
+17,7
@@
*/
#define _GNU_SOURCE
*/
#define _GNU_SOURCE
+#define _LGPL_SOURCE
#include <fcntl.h>
#include <getopt.h>
#include <grp.h>
#include <fcntl.h>
#include <getopt.h>
#include <grp.h>
@@
-65,6
+66,8
@@
static int sigintcount = 0;
/* Argument variables */
int lttng_opt_quiet; /* not static in error.h */
int lttng_opt_verbose; /* not static in error.h */
/* Argument variables */
int lttng_opt_quiet; /* not static in error.h */
int lttng_opt_verbose; /* not static in error.h */
+int lttng_opt_mi; /* not static in error.h */
+
static int opt_daemon;
static const char *progname;
static char command_sock_path[PATH_MAX]; /* Global command socket path */
static int opt_daemon;
static const char *progname;
static char command_sock_path[PATH_MAX]; /* Global command socket path */
@@
-183,9
+186,9
@@
static void usage(FILE *fp)
/*
* daemon argument parsing
*/
/*
* daemon argument parsing
*/
-static
void
parse_args(int argc, char **argv)
+static
int
parse_args(int argc, char **argv)
{
{
- int c;
+ int c
, ret = 0
;
static struct option long_options[] = {
{ "consumerd-cmd-sock", 1, 0, 'c' },
static struct option long_options[] = {
{ "consumerd-cmd-sock", 1, 0, 'c' },
@@
-215,6
+218,8
@@
static void parse_args(int argc, char **argv)
fprintf(stderr, "option %s", long_options[option_index].name);
if (optarg) {
fprintf(stderr, " with arg %s\n", optarg);
fprintf(stderr, "option %s", long_options[option_index].name);
if (optarg) {
fprintf(stderr, " with arg %s\n", optarg);
+ ret = -1;
+ goto end;
}
break;
case 'c':
}
break;
case 'c':
@@
-257,9
+262,12
@@
static void parse_args(int argc, char **argv)
#endif
default:
usage(stderr);
#endif
default:
usage(stderr);
- exit(EXIT_FAILURE);
+ ret = -1;
+ goto end;
}
}
}
}
+end:
+ return ret;
}
/*
}
/*
@@
-341,7
+349,10
@@
int main(int argc, char **argv)
}
/* Init */
}
/* Init */
- lttng_consumer_init();
+ if (lttng_consumer_init() < 0) {
+ goto error;
+ }
+
/* Init socket timeouts */
lttcomm_init();
lttcomm_inet_init();
/* Init socket timeouts */
lttcomm_init();
lttcomm_inet_init();
@@
-405,9
+416,6
@@
int main(int argc, char **argv)
ctx->type = opt_type;
ctx->type = opt_type;
- /* Initialize communication library */
- lttcomm_init();
-
ret = utils_create_pipe(health_quit_pipe);
if (ret < 0) {
goto error_health_pipe;
ret = utils_create_pipe(health_quit_pipe);
if (ret < 0) {
goto error_health_pipe;
@@
-426,7
+434,7
@@
int main(int argc, char **argv)
* sessiond thread reply to the sessiond that we are ready.
*/
while (uatomic_read(<tng_consumer_ready)) {
* sessiond thread reply to the sessiond that we are ready.
*/
while (uatomic_read(<tng_consumer_ready)) {
-
sleep(1
);
+
usleep(100000
);
}
cmm_smp_mb(); /* Read ready before following operations */
}
cmm_smp_mb(); /* Read ready before following operations */
@@
-520,15
+528,11
@@
health_error:
error_health_pipe:
if (!ret) {
ret = EXIT_SUCCESS;
error_health_pipe:
if (!ret) {
ret = EXIT_SUCCESS;
- lttng_consumer_send_error(ctx, LTTCOMM_CONSUMERD_EXIT_SUCCESS);
goto end;
}
error:
ret = EXIT_FAILURE;
goto end;
}
error:
ret = EXIT_FAILURE;
- if (ctx) {
- lttng_consumer_send_error(ctx, LTTCOMM_CONSUMERD_EXIT_FAILURE);
- }
end:
lttng_consumer_destroy(ctx);
end:
lttng_consumer_destroy(ctx);
This page took
0.039538 seconds
and
5
git commands to generate.