OSDN Git Service

getservice: fix handling of long lines
[uclinux-h8/uClibc.git] / libc / inet / herror.c
index 51b858f..a1f94ad 100644 (file)
 #include <string.h>
 #include <netdb.h>
 
-#ifdef L_herror
 
+static const char error_msg[] = "Resolver error";
 static const char *const h_errlist[] = {
        "Error 0",
-       "Unknown host",                         /* 1 HOST_NOT_FOUND */
-       "Host name lookup failure",     /* 2 TRY_AGAIN */
-       "Unknown server error",         /* 3 NO_RECOVERY */
-       "No address associated with name", /* 4 NO_ADDRESS */
+       "Unknown host",                     /* 1 HOST_NOT_FOUND */
+       "Host name lookup failure",         /* 2 TRY_AGAIN */
+       "Unknown server error",             /* 3 NO_RECOVERY */
+       "No address associated with name",  /* 4 NO_ADDRESS */
 };
 static const int h_nerr = { sizeof(h_errlist)/sizeof(h_errlist[0]) };
 
@@ -47,18 +47,19 @@ void herror(const char *s)
        if (!s || !*s) {
                c += 2;
        }
-       p = "Unknown error";
+       p = error_msg;
        if ((h_errno >= 0) && (h_errno < h_nerr)) {
-           p = h_errlist[h_errno];
+               p = h_errlist[h_errno];
        }
        fprintf(stderr, "%s%s%s\n", s, c, p);
 }
+libc_hidden_def(herror)
 
-#endif
 
-#ifdef L_hstrerror
 const char *hstrerror(int err)
 {
-       return(strerror(err));
+       if ((unsigned)err < h_nerr)
+               return(h_errlist[err]);
+
+       return error_msg;
 }
-#endif