no retries or perror if EADDRNOTAVAIL, so can fail gracefully if no net
authorMike Karels <karels@ucbvax.Berkeley.EDU>
Sat, 7 Sep 1985 02:47:13 +0000 (18:47 -0800)
committerMike Karels <karels@ucbvax.Berkeley.EDU>
Sat, 7 Sep 1985 02:47:13 +0000 (18:47 -0800)
SCCS-vsn: lib/libc/net/rcmd.c 5.2

usr/src/lib/libc/net/rcmd.c

index b40dff1..18defab 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)rcmd.c     5.1 (Berkeley) %G%";
+static char sccsid[] = "@(#)rcmd.c     5.2 (Berkeley) %G%";
 #endif not lint
 
 #include <stdio.h>
 #endif not lint
 
 #include <stdio.h>
@@ -124,15 +124,17 @@ rresvport(alport)
        int s;
 
        sin.sin_family = AF_INET;
        int s;
 
        sin.sin_family = AF_INET;
-       sin.sin_addr.s_addr = 0;
-       s = socket(AF_INET, SOCK_STREAM, 0, 0);
+       sin.sin_addr.s_addr = INADDR_ANY;
+       s = socket(AF_INET, SOCK_STREAM, 0);
        if (s < 0)
                return (-1);
        for (;;) {
                sin.sin_port = htons((u_short)*alport);
                if (bind(s, (caddr_t)&sin, sizeof (sin), 0) >= 0)
                        return (s);
        if (s < 0)
                return (-1);
        for (;;) {
                sin.sin_port = htons((u_short)*alport);
                if (bind(s, (caddr_t)&sin, sizeof (sin), 0) >= 0)
                        return (s);
-               if (errno != EADDRINUSE && errno != EADDRNOTAVAIL) {
+               if (errno == EADDRNOTAVAIL)
+                       return (-1);
+               if (errno != EADDRINUSE) {
                        perror("socket");
                        (void) close(s);
                        return (-1);
                        perror("socket");
                        (void) close(s);
                        return (-1);