]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/util-int.c
Renamed ppcontrol.c to ppolicy.c
[openldap] / libraries / libldap / util-int.c
index 23bf1d194c6cdab1d8262a3c24ba415d6366df9e..dbdc8b298c54cce5c61b5f1da6a11536e3e2e4da 100644 (file)
@@ -1,25 +1,28 @@
 /* $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
@@ -184,16 +194,15 @@ static const char *
 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
 
@@ -214,7 +223,7 @@ int ldap_pvt_get_hname(
 #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 */
@@ -533,27 +542,28 @@ char * ldap_pvt_get_fqdn( char *name )
        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 }
        };
 
@@ -561,10 +571,10 @@ char *ldap_pvt_gai_strerror (int code) {
 
        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