/* $OpenLDAP$ */
-/*
- * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2004 The OpenLDAP Foundation.
+ * Portions Copyright 1998 A. Hartgers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+/* ACKNOWLEDGEMENTS:
+ * This work was initially developed by Bart Hartgers for inclusion in
+ * OpenLDAP Software.
*/
+
/*
* util-int.c Various functions to replace missing threadsafe ones.
- * Without the real *_r funcs, things will
- * work, but might not be threadsafe.
- *
- * Written by Bart Hartgers.
- *
- * Copyright 1998, A. Hartgers, All rights reserved.
- * This software is not subject to any license of Eindhoven University of
- * Technology, since it was written in my spare time.
- *
- * Redistribution and use in source and binary forms are permitted only
- * as authorized by the OpenLDAP Public License. A copy of this
- * license is available at http://www.OpenLDAP.org/license.html or
- * in file LICENSE in the top-level directory of the distribution.
- */
-
+ * Without the real *_r funcs, things will
+ * work, but might not be threadsafe.
+ */
#include "portable.h"
#include "ldap-int.h"
+#ifndef h_errno
+/* newer systems declare this in <netdb.h> for you, older ones don't.
+ * harmless to declare it again (unless defined by a macro).
+ */
+extern int h_errno;
+#endif
+
#ifndef LDAP_R_COMPILE
# undef HAVE_REENTRANT_FUNCTIONS
# undef HAVE_CTIME_R
hp_strerror( int err )
{
switch (err) {
- case HOST_NOT_FOUND: return "Host not found (authoritative)";
- case TRY_AGAIN: return "Host not found (server fail?)";
- case NO_RECOVERY: return "Non-recoverable failure";
- case NO_DATA: return "No data of requested type";
+ case HOST_NOT_FOUND: return _("Host not found (authoritative)");
+ case TRY_AGAIN: return _("Host not found (server fail?)");
+ case NO_RECOVERY: return _("Non-recoverable failure");
+ case NO_DATA: return _("No data of requested type");
#ifdef NETDB_INTERNAL
case NETDB_INTERNAL: return STRERROR( errno );
#endif
- default: break;
}
- return "Unknown resolver error";
+ return _("Unknown resolver error");
}
#endif
#if defined( LDAP_R_COMPILE )
ldap_pvt_thread_mutex_unlock( &ldap_int_resolv_mutex );
#endif
- if ( rc ) *err = AC_GAI_STRERROR( rc );
+ if ( rc ) *err = (char *)AC_GAI_STRERROR( rc );
return rc;
#else /* !HAVE_GETNAMEINFO */
return fqdn;
}
-#if defined( HAVE_GETADDRINFO ) && !defined( HAVE_GAI_STRERROR )
+#if ( defined( HAVE_GETADDRINFO ) || defined( HAVE_GETNAMEINFO ) ) \
+ && !defined( HAVE_GAI_STRERROR )
char *ldap_pvt_gai_strerror (int code) {
static struct {
int code;
const char *msg;
} values[] = {
#ifdef EAI_ADDRFAMILY
- { EAI_ADDRFAMILY, "Address family for hostname not supported" },
+ { EAI_ADDRFAMILY, N_("Address family for hostname not supported") },
#endif
- { EAI_AGAIN, "Temporary failure in name resolution" },
- { EAI_BADFLAGS, "Bad value for ai_flags" },
- { EAI_FAIL, "Non-recoverable failure in name resolution" },
- { EAI_FAMILY, "ai_family not supported" },
- { EAI_MEMORY, "Memory allocation failure" },
+ { EAI_AGAIN, N_("Temporary failure in name resolution") },
+ { EAI_BADFLAGS, N_("Bad value for ai_flags") },
+ { EAI_FAIL, N_("Non-recoverable failure in name resolution") },
+ { EAI_FAMILY, N_("ai_family not supported") },
+ { EAI_MEMORY, N_("Memory allocation failure") },
#ifdef EAI_NODATA
- { EAI_NODATA, "No address associated with hostname" },
+ { EAI_NODATA, N_("No address associated with hostname") },
#endif
- { EAI_NONAME, "Name or service not known" },
- { EAI_SERVICE, "Servname not supported for ai_socktype" },
- { EAI_SOCKTYPE, "ai_socktype not supported" },
- { EAI_SYSTEM, "System error" },
+ { EAI_NONAME, N_("Name or service not known") },
+ { EAI_SERVICE, N_("Servname not supported for ai_socktype") },
+ { EAI_SOCKTYPE, N_("ai_socktype not supported") },
+ { EAI_SYSTEM, N_("System error") },
{ 0, NULL }
};
for ( i = 0; values[i].msg != NULL; i++ ) {
if ( values[i].code == code ) {
- return (char *) values[i].msg;
+ return (char *) _(values[i].msg);
}
}
- return "Unknown error";
+ return _("Unknown error");
}
#endif