Minor change. init now uses dup2.
authorErik Andersen <andersen@codepoet.org>
Sat, 29 Jan 2000 06:29:32 +0000 (06:29 -0000)
committerErik Andersen <andersen@codepoet.org>
Sat, 29 Jan 2000 06:29:32 +0000 (06:29 -0000)
 -Erik

init.c
init/init.c
networking/ping.c
ping.c

diff --git a/init.c b/init.c
index dd92854..722ccd2 100644 (file)
--- a/init.c
+++ b/init.c
@@ -366,8 +366,9 @@ static pid_t run(char* command,
            message(LOG|CONSOLE, "Bummer, can't open %s\r\n", terminal);
            exit(1);
        }
-       dup(fd);
-       dup(fd);
+       dup2(fd, 0);
+       dup2(fd, 1);
+       dup2(fd, 2);
        tcsetpgrp (0, getpgrp());
        set_term(0);
 
index dd92854..722ccd2 100644 (file)
@@ -366,8 +366,9 @@ static pid_t run(char* command,
            message(LOG|CONSOLE, "Bummer, can't open %s\r\n", terminal);
            exit(1);
        }
-       dup(fd);
-       dup(fd);
+       dup2(fd, 0);
+       dup2(fd, 1);
+       dup2(fd, 2);
        tcsetpgrp (0, getpgrp());
        set_term(0);
 
index 5cadac3..5b68019 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: ping.c,v 1.8 2000/01/29 05:52:40 erik Exp $
+ * $Id: ping.c,v 1.9 2000/01/29 06:29:32 erik Exp $
  * Mini ping implementation for busybox
  *
  * Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@@ -312,14 +312,17 @@ static void unpack(char *buf, int sz, struct sockaddr_in *from)
 
 static void ping(char *host)
 {
-    struct protoent *proto=NULL;
+    struct protoent *proto;
     struct hostent *h;
     char buf[MAXHOSTNAMELEN];
     char packet[DEFDATALEN + MAXIPLEN + MAXICMPLEN];
     int sockopt;
     
     proto = getprotobyname("icmp");
-    if ((pingsock = socket(AF_INET, SOCK_RAW, (proto)? proto->p_proto : 1 )) < 0) { /* 1 == ICMP */
+    /* if getprotobyname failed, just silently force 
+     * proto->p_proto to have the correct value for "icmp" */
+    if ((pingsock = socket(AF_INET, SOCK_RAW, 
+                           (proto ? proto->p_proto : 1))) < 0) { /* 1 == ICMP */
        if (errno == EPERM) {
            fprintf(stderr, "ping: permission denied. (are you root?)\n");
        } else {
diff --git a/ping.c b/ping.c
index 5cadac3..5b68019 100644 (file)
--- a/ping.c
+++ b/ping.c
@@ -1,5 +1,5 @@
 /*
- * $Id: ping.c,v 1.8 2000/01/29 05:52:40 erik Exp $
+ * $Id: ping.c,v 1.9 2000/01/29 06:29:32 erik Exp $
  * Mini ping implementation for busybox
  *
  * Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@@ -312,14 +312,17 @@ static void unpack(char *buf, int sz, struct sockaddr_in *from)
 
 static void ping(char *host)
 {
-    struct protoent *proto=NULL;
+    struct protoent *proto;
     struct hostent *h;
     char buf[MAXHOSTNAMELEN];
     char packet[DEFDATALEN + MAXIPLEN + MAXICMPLEN];
     int sockopt;
     
     proto = getprotobyname("icmp");
-    if ((pingsock = socket(AF_INET, SOCK_RAW, (proto)? proto->p_proto : 1 )) < 0) { /* 1 == ICMP */
+    /* if getprotobyname failed, just silently force 
+     * proto->p_proto to have the correct value for "icmp" */
+    if ((pingsock = socket(AF_INET, SOCK_RAW, 
+                           (proto ? proto->p_proto : 1))) < 0) { /* 1 == ICMP */
        if (errno == EPERM) {
            fprintf(stderr, "ping: permission denied. (are you root?)\n");
        } else {