(AI_DEFAULT): Add AI_IDN.
[kopensolaris-gnu/glibc.git] / include / netdb.h
index 141dce5..a31cdfd 100644 (file)
@@ -1,11 +1,49 @@
 #ifndef        _NETDB_H
 #include <resolv/netdb.h>
 
+/* Macros for accessing h_errno from inside libc.  */
+# ifdef _LIBC_REENTRANT
+#  include <tls.h>
+#  if USE___THREAD
+#   undef  h_errno
+#   ifndef NOT_IN_libc
+#    define h_errno __libc_h_errno
+#   else
+#    define h_errno h_errno    /* For #ifndef h_errno tests.  */
+#   endif
+extern __thread int h_errno attribute_tls_model_ie;
+#   define __set_h_errno(x)    (h_errno = (x))
+#  else
+static inline int
+__set_h_errno (int __err)
+{
+  return *__h_errno_location () = __err;
+}
+#  endif
+# else
+#  undef  h_errno
+#  define __set_h_errno(x) (h_errno = (x))
+extern int h_errno;
+# endif        /* _LIBC_REENTRANT */
+
+libc_hidden_proto (hstrerror)
+libc_hidden_proto (innetgr)
+libc_hidden_proto (rcmd_af)
+libc_hidden_proto (rexec_af)
+libc_hidden_proto (rresvport_af)
+libc_hidden_proto (ruserok_af)
+
+libc_hidden_proto (getaddrinfo)
+libc_hidden_proto (getnameinfo)
+libc_hidden_proto (freeaddrinfo)
+libc_hidden_proto (gai_strerror)
+libc_hidden_proto (__h_errno_location)
+
 /* Document internal interfaces.  */
 extern int __gethostent_r (struct hostent *__restrict __result_buf,
                           char *__restrict __buf, size_t __buflen,
                           struct hostent **__restrict __result,
-                          int *__restrict __h_errnop);
+                          int *__restrict __h_errnop) attribute_hidden;
 extern int __old_gethostent_r (struct hostent *__restrict __result_buf,
                               char *__restrict __buf, size_t __buflen,
                               struct hostent **__restrict __result,
@@ -49,7 +87,7 @@ extern int __old_gethostbyname2_r (__const char *__restrict __name, int __af,
 extern int __getnetent_r (struct netent *__restrict __result_buf,
                          char *__restrict __buf, size_t __buflen,
                          struct netent **__restrict __result,
-                         int *__restrict __h_errnop);
+                         int *__restrict __h_errnop) attribute_hidden;
 extern int __old_getnetent_r (struct netent *__restrict __result_buf,
                              char *__restrict __buf, size_t __buflen,
                              struct netent **__restrict __result,
@@ -79,7 +117,8 @@ extern int __old_getnetbyname_r (__const char *__restrict __name,
 
 extern int __getservent_r (struct servent *__restrict __result_buf,
                           char *__restrict __buf, size_t __buflen,
-                          struct servent **__restrict __result);
+                          struct servent **__restrict __result)
+     attribute_hidden;
 extern int __old_getservent_r (struct servent *__restrict __result_buf,
                               char *__restrict __buf, size_t __buflen,
                               struct servent **__restrict __result);
@@ -108,7 +147,8 @@ extern int __old_getservbyport_r (int __port,
 
 extern int __getprotoent_r (struct protoent *__restrict __result_buf,
                            char *__restrict __buf, size_t __buflen,
-                           struct protoent **__restrict __result);
+                           struct protoent **__restrict __result)
+     attribute_hidden;
 extern int __old_getprotoent_r (struct protoent *__restrict __result_buf,
                                char *__restrict __buf, size_t __buflen,
                                struct protoent **__restrict __result);
@@ -138,19 +178,34 @@ extern int __getnetgrent_r (char **__restrict __hostp,
 
 extern int ruserpass (const char *host, const char **aname,
                      const char **apass);
+libc_hidden_proto (ruserpass)
 
 
-/* The following declarations and definitions have been removed from
-   the public header since we don't want people to use them.  */
+/* The following definition has been removed from the public header
+   since we don't want people to use them.  */
 
-#define AI_V4MAPPED    0x0008  /* IPv4-mapped addresses are acceptable.  */
-#define AI_ALL         0x0010  /* Return both IPv4 and IPv6 addresses.  */
-#define AI_ADDRCONFIG  0x0020  /* Use configuration of this host to choose
-                                 returned address type.  */
-#define AI_DEFAULT    (AI_V4MAPPED | AI_ADDRCONFIG)
+#define AI_DEFAULT    (AI_V4MAPPED | AI_ADDRCONFIG | AI_IDN)
 
 #include <inet/netgroup.h>
 
+struct parser_data;
+extern int _nss_files_parse_protoent (char *line, struct protoent *result,
+                                     struct parser_data *data,
+                                     size_t datalen, int *errnop);
+extern int _nss_files_parse_servent (char *line, struct servent *result,
+                                    struct parser_data *data,
+                                    size_t datalen, int *errnop);
+extern int _nss_files_parse_netent (char *line, struct netent *result,
+                                   struct parser_data *data,
+                                   size_t datalen, int *errnop);
+extern enum nss_status _nss_netgroup_parseline (char **cursor,
+                                               struct __netgrent *result,
+                                               char *buffer, size_t buflen,
+                                               int *errnop);
+libc_hidden_proto (_nss_files_parse_protoent)
+libc_hidden_proto (_nss_files_parse_servent)
+libc_hidden_proto (_nss_files_parse_netent)
+
 #define DECLARE_NSS_PROTOTYPES(service)                                              \
 extern enum nss_status _nss_ ## service ## _setprotoent (int);               \
 extern enum nss_status _nss_ ## service ## _endprotoent (void);                      \