From d6f015c8773d6b82c9d2f6421097ef53325a01b6 Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Thu, 20 Dec 2012 23:08:11 +0100 Subject: [PATCH] Various fixes (exit codes, infinite sleep etc.) --- utils/cegw/cegw.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/utils/cegw/cegw.c b/utils/cegw/cegw.c index 0efadc2..3e0e9d5 100644 --- a/utils/cegw/cegw.c +++ b/utils/cegw/cegw.c @@ -25,7 +25,7 @@ #include #include #include -#include "canethgw.h" +#include unsigned int cegw_errno = 0; @@ -144,7 +144,7 @@ int main(int argc, char* argv[]) perr("not enough arguments"); printf(help_msg, argv[0], argv[0]); /* ToDo: print usage */ - return -1; + return 1; } dstcnt = argc-3; @@ -158,7 +158,7 @@ int main(int argc, char* argv[]) if (tmpi == 0) { perr("given can interface not found"); free(gwctl); - return -1; + return 1; } can_addr.can_ifindex = tmpi; break; @@ -167,7 +167,7 @@ int main(int argc, char* argv[]) if (read_addrport(argv[i], &udp_addr.sin_addr, &port) != 0) { perr("listening address mismatch"); free(gwctl); - return -1; + return 1; } udp_addr.sin_port = htons(port); break; @@ -177,7 +177,7 @@ int main(int argc, char* argv[]) if (read_addrport(argv[i], &dst->sin_addr, &port) != 0) { perr("udp destination mismatch"); free(gwctl); - return -1; + return 1; } dst->sin_port = htons(port); break; @@ -189,13 +189,13 @@ int main(int argc, char* argv[]) if (udp_sock == -1) { perror("udp socket()"); free(gwctl); - return -1; + return 1; } if (bind(udp_sock, (struct sockaddr *)&udp_addr, sizeof(struct sockaddr_in)) != 0) { perror("bind(udp)"); free(gwctl); - return -1; + return 1; } /* prepare can socket */ @@ -203,13 +203,13 @@ int main(int argc, char* argv[]) if (can_sock == -1) { perror("can socket()"); free(gwctl); - return -1; + return 1; } if (bind(can_sock, (struct sockaddr *)&can_addr, sizeof(struct sockaddr_can)) != 0) { perror("bind(can)"); free(gwctl); - return -1; + return 1; } /* send it to kernel gateway */ @@ -217,7 +217,7 @@ int main(int argc, char* argv[]) if (fd == -1) { perror("/dev/canethgw"); free(gwctl); - return -1; + return 1; } gwctl->can_sock = can_sock; @@ -226,17 +226,15 @@ int main(int argc, char* argv[]) gwctl->udp_addrlen = sizeof(struct sockaddr_in); if (ioctl(fd, CEGW_IOCTL_START, gwctl) != 0) { - perror(NULL); + perror("ioctl"); free(gwctl); - return -1; + return 1; } printf("gateway successfully set and running\n"); free(gwctl); /* sleep until someone kills me */ - while (1) { - sleep(UINT_MAX); - } + pause(); return 0; } -- 2.39.2