diff options
author | Alex Riesen <raa.lkml@gmail.com> | 2007-06-13 22:54:32 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-06-16 09:48:34 +0400 |
commit | fa0c87c34471286b6c261c781a45ed090135295c (patch) | |
tree | 083fd345b588cc495a7acad8b2cd07c3d516b364 /compat/hstrerror.c | |
parent | 18a936805e82d769e33ea0dd866f8fe12ef1827e (diff) |
Add a local implementation of hstrerror for the system which do not have it
The function converts the value of h_errno (last error of name
resolver library, see netdb.h).
One of systems which supposedly do not have the function is SunOS.
POSIX does not mandate its presence.
Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'compat/hstrerror.c')
-rw-r--r-- | compat/hstrerror.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/compat/hstrerror.c b/compat/hstrerror.c new file mode 100644 index 0000000000..069c555da4 --- /dev/null +++ b/compat/hstrerror.c @@ -0,0 +1,21 @@ +#include <string.h> +#include <stdio.h> +#include <netdb.h> + +const char *githstrerror(int err) +{ + static char buffer[48]; + switch (err) + { + case HOST_NOT_FOUND: + return "Authoritative answer: host not found"; + case NO_DATA: + return "Valid name, no data record of requested type"; + case NO_RECOVERY: + return "Non recoverable errors, FORMERR, REFUSED, NOTIMP"; + case TRY_AGAIN: + return "Non-authoritative \"host not found\", or SERVERFAIL"; + } + sprintf(buffer, "Name resolution error %d", err); + return buffer; +} |