]> rtime.felk.cvut.cz Git - can-eth-gw.git/commitdiff
Various fixes (exit codes, infinite sleep etc.)
authorMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 20 Dec 2012 22:08:11 +0000 (23:08 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 20 Dec 2012 22:08:11 +0000 (23:08 +0100)
utils/cegw/cegw.c

index 0efadc22f32678d0694ce4388929fb64c947e57d..3e0e9d5fac09335fb0fe67bde0f49a52d192a359 100644 (file)
@@ -25,7 +25,7 @@
 #include <unistd.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
-#include "canethgw.h"
+#include <linux/can/canethgw.h>
 
 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;
 }