isotptun: use EXIT_FAILURE instead of 0 (EXIT_SUCCESS) for errors
Exit code does not tell if the service was provided or if it was not provided due to command line or setup errors. Change errors to return EXIT_FAILURE instead of 0. Also change other uses of 0 to EXIT_SUCCESS and 1 to EXIT_FAILURE for clarity and POSIX conformance. Signed-off-by: Marko Kohtala <marko.kohtala@gmail.com>pull/37/head
parent
99f1664e0c
commit
7eb005d9f3
28
isotptun.c
28
isotptun.c
|
|
@ -156,7 +156,7 @@ int main(int argc, char **argv)
|
||||||
else {
|
else {
|
||||||
printf("incorrect extended addr values '%s'.\n", optarg);
|
printf("incorrect extended addr values '%s'.\n", optarg);
|
||||||
print_usage(basename(argv[0]));
|
print_usage(basename(argv[0]));
|
||||||
exit(0);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -176,7 +176,7 @@ int main(int argc, char **argv)
|
||||||
else {
|
else {
|
||||||
printf("incorrect padding values '%s'.\n", optarg);
|
printf("incorrect padding values '%s'.\n", optarg);
|
||||||
print_usage(basename(argv[0]));
|
print_usage(basename(argv[0]));
|
||||||
exit(0);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -191,7 +191,7 @@ int main(int argc, char **argv)
|
||||||
else {
|
else {
|
||||||
printf("unknown padding check option '%c'.\n", optarg[0]);
|
printf("unknown padding check option '%c'.\n", optarg[0]);
|
||||||
print_usage(basename(argv[0]));
|
print_usage(basename(argv[0]));
|
||||||
exit(0);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -222,7 +222,7 @@ int main(int argc, char **argv)
|
||||||
&llopts.tx_flags) != 3) {
|
&llopts.tx_flags) != 3) {
|
||||||
printf("unknown link layer options '%s'.\n", optarg);
|
printf("unknown link layer options '%s'.\n", optarg);
|
||||||
print_usage(basename(argv[0]));
|
print_usage(basename(argv[0]));
|
||||||
exit(0);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -232,13 +232,13 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
case '?':
|
case '?':
|
||||||
print_usage(basename(argv[0]));
|
print_usage(basename(argv[0]));
|
||||||
exit(0);
|
exit(EXIT_SUCCESS);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "Unknown option %c\n", opt);
|
fprintf(stderr, "Unknown option %c\n", opt);
|
||||||
print_usage(basename(argv[0]));
|
print_usage(basename(argv[0]));
|
||||||
exit(1);
|
exit(EXIT_FAILURE);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -247,12 +247,12 @@ int main(int argc, char **argv)
|
||||||
(addr.can_addr.tp.tx_id == NO_CAN_ID) ||
|
(addr.can_addr.tp.tx_id == NO_CAN_ID) ||
|
||||||
(addr.can_addr.tp.rx_id == NO_CAN_ID)) {
|
(addr.can_addr.tp.rx_id == NO_CAN_ID)) {
|
||||||
print_usage(basename(argv[0]));
|
print_usage(basename(argv[0]));
|
||||||
exit(1);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((s = socket(PF_CAN, SOCK_DGRAM, CAN_ISOTP)) < 0) {
|
if ((s = socket(PF_CAN, SOCK_DGRAM, CAN_ISOTP)) < 0) {
|
||||||
perror("socket");
|
perror("socket");
|
||||||
exit(1);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
setsockopt(s, SOL_CAN_ISOTP, CAN_ISOTP_OPTS, &opts, sizeof(opts));
|
setsockopt(s, SOL_CAN_ISOTP, CAN_ISOTP_OPTS, &opts, sizeof(opts));
|
||||||
|
|
@ -261,7 +261,7 @@ int main(int argc, char **argv)
|
||||||
if (llopts.tx_dl) {
|
if (llopts.tx_dl) {
|
||||||
if (setsockopt(s, SOL_CAN_ISOTP, CAN_ISOTP_LL_OPTS, &llopts, sizeof(llopts)) < 0) {
|
if (setsockopt(s, SOL_CAN_ISOTP, CAN_ISOTP_LL_OPTS, &llopts, sizeof(llopts)) < 0) {
|
||||||
perror("link layer sockopt");
|
perror("link layer sockopt");
|
||||||
exit(1);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -270,7 +270,7 @@ int main(int argc, char **argv)
|
||||||
if (!ifr.ifr_ifindex) {
|
if (!ifr.ifr_ifindex) {
|
||||||
perror("if_nametoindex");
|
perror("if_nametoindex");
|
||||||
close(s);
|
close(s);
|
||||||
exit(1);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
addr.can_family = AF_CAN;
|
addr.can_family = AF_CAN;
|
||||||
|
|
@ -279,14 +279,14 @@ int main(int argc, char **argv)
|
||||||
if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
|
if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
|
||||||
perror("bind");
|
perror("bind");
|
||||||
close(s);
|
close(s);
|
||||||
exit(1);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((t = open("/dev/net/tun", O_RDWR)) < 0) {
|
if ((t = open("/dev/net/tun", O_RDWR)) < 0) {
|
||||||
perror("open tunfd");
|
perror("open tunfd");
|
||||||
close(s);
|
close(s);
|
||||||
close(t);
|
close(t);
|
||||||
exit(1);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&ifr, 0, sizeof(ifr));
|
memset(&ifr, 0, sizeof(ifr));
|
||||||
|
|
@ -298,7 +298,7 @@ int main(int argc, char **argv)
|
||||||
perror("ioctl tunfd");
|
perror("ioctl tunfd");
|
||||||
close(s);
|
close(s);
|
||||||
close(t);
|
close(t);
|
||||||
exit(1);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (running) {
|
while (running) {
|
||||||
|
|
@ -351,5 +351,5 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
close(s);
|
close(s);
|
||||||
close(t);
|
close(t);
|
||||||
return 0;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue