fdwalk should return 0 on an empty directory
[kopensolaris-gnu/glibc.git] / inet / ruserpass.c
index 3b66c30..e5b2caf 100644 (file)
@@ -39,6 +39,7 @@ static char sccsid[] = "@(#)ruserpass.c       8.3 (Berkeley) 4/2/94";
 #include <errno.h>
 #include <netdb.h>
 #include <stdio.h>
+#include <stdio_ext.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
@@ -113,12 +114,14 @@ ruserpass(host, aname, apass)
        buf = alloca (strlen (hdir) + 8);
 
        __stpcpy (__stpcpy (buf, hdir), "/.netrc");
-       cfile = fopen(buf, "r");
+       cfile = fopen(buf, "rc");
        if (cfile == NULL) {
                if (errno != ENOENT)
                        warn("%s", buf);
                return (0);
        }
+       /* No threads use this stream.  */
+       __fsetlocking (cfile, FSETLOCKING_BYCALLER);
        if (__gethostname(myname, sizeof(myname)) < 0)
                myname[0] = '\0';
        mydomain = __strchrnul(myname, '.');
@@ -283,6 +286,7 @@ bad:
        (void) fclose(cfile);
        return (-1);
 }
+libc_hidden_def (ruserpass)
 
 static int
 token()
@@ -317,7 +321,7 @@ token()
        *cp = 0;
        if (tokval[0] == 0)
                return (0);
-       for (i = 0; i < sizeof (toktab) / sizeof (toktab[0]); ++i)
+       for (i = 0; i < (int) (sizeof (toktab) / sizeof (toktab[0])); ++i)
                if (!strcmp(&tokstr[toktab[i].tokstr_off], tokval))
                        return toktab[i].tval;
        return (ID);