]> rtime.felk.cvut.cz Git - lisovros/iproute2_canprio.git/blobdiff - misc/arpd.c
libnetlink: change rtnl_send() to take void *
[lisovros/iproute2_canprio.git] / misc / arpd.c
index 71cd082e6856330a21d059c70e8dc00513d09b68..4f0021ba477a8ee70ca76f2fe9fe3eb62b94bfa5 100644 (file)
@@ -94,7 +94,7 @@ int broadcast_burst = 3000;
 void usage(void)
 {
        fprintf(stderr,
-"Usage: arpd [ -lk ] [ -a N ] [ -b dbase ] [ -f file ] [ interfaces ]\n");
+"Usage: arpd [ -lkh? ] [ -a N ] [ -b dbase ] [ -B number ] [ -f file ] [ -n time ] [ -R rate ] [ interfaces ]\n");
        exit(1);
 }
 
@@ -281,7 +281,7 @@ int respond_to_kernel(int ifindex, __u32 addr, char *lla, int llalen)
 
        addattr_l(&req.n, sizeof(req), NDA_DST, &addr, 4);
        addattr_l(&req.n, sizeof(req), NDA_LLADDR, lla, llalen);
-       return rtnl_send(&rth, (char*)&req, req.n.nlmsg_len) <= 0;
+       return rtnl_send(&rth, &req, req.n.nlmsg_len) <= 0;
 }
 
 void prepare_neg_entry(__u8 *ndata, __u32 stamp)
@@ -775,27 +775,9 @@ int main(int argc, char **argv)
 
        load_initial_table();
 
-       if (1) {
-               int fd;
-               pid_t pid = fork();
-
-               if (pid > 0)
-                       _exit(0);
-               if (pid < 0) {
-                       perror("arpd: fork");
-                       goto do_abort;
-               }
-
-               chdir("/");
-               fd = open("/dev/null", O_RDWR);
-               if (fd >= 0) {
-                       dup2(fd, 0);
-                       dup2(fd, 1);
-                       dup2(fd, 2);
-                       if (fd > 2)
-                               close(fd);
-               }
-               setsid();
+       if (daemon(0, 0)) {
+               perror("arpd: daemon");
+               goto do_abort;
        }
 
        openlog("arpd", LOG_PID | LOG_CONS, LOG_DAEMON);