Pretty print.
[kopensolaris-gnu/glibc.git] / resolv / netdb.h
index f906eda..fdfc056 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it
@@ -21,8 +21,8 @@
    system calls).  */
 
 #ifndef        _NETDB_H
-
 #define        _NETDB_H        1
+
 #include <features.h>
 
 /* This is necessary to make this include file properly replace the
@@ -63,7 +63,7 @@ __set_h_errno (int __err)
 #endif /* _LIBC */
 
 
-#if defined __USE_REENTRANT && (!defined _LIBC || defined _LIBC_REENTRANT)
+#if !defined _LIBC || defined _LIBC_REENTRANT
 /* Use a macro to access always the thread specific `h_errno' variable.  */
 # define h_errno (*__h_errno_location ())
 #endif
@@ -73,7 +73,7 @@ __set_h_errno (int __err)
 #define        NETDB_INTERNAL  -1      /* See errno.  */
 #define        NETDB_SUCCESS   0       /* No problem.  */
 #define        HOST_NOT_FOUND  1       /* Authoritative Answer Host not found.  */
-#define        TRY_AGAIN       2       /* Non-Authoritive Host not found,
+#define        TRY_AGAIN       2       /* Non-Authoritative Host not found,
                                   or SERVERFAIL.  */
 #define        NO_RECOVERY     3       /* Non recoverable errors, FORMERR, REFUSED,
                                   NOTIMP.  */
@@ -98,7 +98,7 @@ struct hostent
   int h_addrtype;              /* Host address type.  */
   int h_length;                        /* Length of address.  */
   char **h_addr_list;          /* List of addresses from name server.  */
-#define        h_addr  h_addr_list[0]  /* Address, for backward compatiblity.  */
+#define        h_addr  h_addr_list[0]  /* Address, for backward compatibility.  */
 };
 
 /* Open host data base files and mark them as staying open even after
@@ -125,7 +125,7 @@ extern struct hostent *gethostbyname __P ((__const char *__name));
    for IPv6.  */
 extern struct hostent *gethostbyname2 __P ((__const char *__name, int __af));
 
-#ifdef __USE_REENTRANT
+#ifdef __USE_MISC
 /* Reentrant versions of the functions above.  The additional
    arguments specify a buffer of BUFLEN starting at BUF.  The last
    argument is a pointer to a variable which gets the value which
@@ -164,7 +164,7 @@ extern int gethostbyname2_r __P ((__const char *__name, int __af,
                                  struct hostent *__result_buf, char *__buf,
                                  size_t __buflen, struct hostent **__result,
                                  int *__h_errnop));
-#endif /* reentrant */
+#endif /* misc */
 
 
 /* Description of data base entry for a single network.  NOTE: here a
@@ -197,7 +197,7 @@ extern struct netent *getnetbyaddr __P ((unsigned long int __net,
 /* Return entry from network data base for network with NAME.  */
 extern struct netent *getnetbyname __P ((__const char *__name));
 
-#ifdef __USE_REENTRANT
+#ifdef __USE_MISC
 /* Reentrant versions of the functions above.  The additional
    arguments specify a buffer of BUFLEN starting at BUF.  The last
    argument is a pointer to a variable which gets the value which
@@ -227,7 +227,7 @@ extern int getnetbyname_r __P ((__const char *__name,
                                struct netent *__result_buf, char *__buf,
                                size_t __buflen, struct netent **__result,
                                int *__h_errnop));
-#endif /* reentrant */
+#endif /* misc */
 
 
 /* Description of data base entry for a single service.  */
@@ -260,7 +260,7 @@ extern struct servent *getservbyname __P ((__const char *__name,
 extern struct servent *getservbyport __P ((int __port, __const char *__proto));
 
 
-#ifdef __USE_REENTRANT
+#ifdef __USE_MISC
 /* Reentrant versions of the functions above.  The additional
    arguments specify a buffer of BUFLEN starting at BUF.  */
 extern int __getservent_r __P ((struct servent *__result_buf, char *__buf,
@@ -283,7 +283,7 @@ extern int __getservbyport_r __P ((int __port, __const char *__proto,
 extern int getservbyport_r __P ((int __port, __const char *__proto,
                                 struct servent *__result_buf, char *__buf,
                                 size_t __buflen, struct servent **__result));
-#endif /* reentrant */
+#endif /* misc */
 
 
 /* Description of data base entry for a single service.  */
@@ -312,7 +312,7 @@ extern struct protoent *getprotobyname __P ((__const char *__name));
 extern struct protoent *getprotobynumber __P ((int __proto));
 
 
-#ifdef __USE_REENTRANT
+#ifdef __USE_MISC
 /* Reentrant versions of the functions above.  The additional
    arguments specify a buffer of BUFLEN starting at BUF.  */
 extern int __getprotoent_r __P ((struct protoent *__result_buf, char *__buf,
@@ -335,7 +335,7 @@ extern int __getprotobynumber_r __P ((int __proto, struct protoent *__res_buf,
 extern int getprotobynumber_r __P ((int __proto, struct protoent *__result_buf,
                                    char *__buf, size_t __buflen,
                                    struct protoent **__result));
-#endif /* reentrant */
+#endif /* misc */
 
 
 /* Establish network group NETGROUP for enumeration.  */
@@ -353,7 +353,7 @@ extern int getnetgrent __P ((char **__hostp, char **__userp,
 extern int innetgr __P ((__const char *__netgroup, __const char *__host,
                         __const char *__user, __const char *domain));
 
-#ifdef __USE_REENTRANT
+#ifdef __USE_MISC
 /* Reentrant version of `getnetgrent' where result is placed in BUFFER.  */
 extern int __getnetgrent_r __P ((char **__hostp, char **__userp,
                                 char **__domainp,
@@ -361,6 +361,39 @@ extern int __getnetgrent_r __P ((char **__hostp, char **__userp,
 extern int getnetgrent_r __P ((char **__hostp, char **__userp,
                               char **__domainp,
                               char *__buffer, size_t __buflen));
+#endif /* misc */
+
+
+#ifdef __USE_BSD
+/* Call `rshd' at port RPORT on remote machine *AHOST to execute CMD.
+   The local user is LOCUSER, on the remote machine the command is
+   executed as REMUSER.  In *FD2P the descriptor to the socket for the
+   connection is returned.  The caller must have the right to use a
+   reserved port.  When the function returns *AHOST contains the
+   official host name.  */
+extern int rcmd __P ((char **__ahost, unsigned short int __rport,
+                     __const char *__locuser, __const char *__remuser,
+                     __const char *__cmd, int *__fd2p));
+
+/* Call `rexecd' at port RPORT on remote machine *AHOST to execute
+   CMD.  The process runs at the remote machine using the ID of user
+   NAME whose cleartext password is PASSWD.  In *FD2P the descriptor
+   to the socket for the connection is returned.  When the function
+   returns *AHOST contains the official host name.  */
+extern int rexec __P ((char **__ahost, int __rport, __const char *__name,
+                      __const char *__pass, __const char *__cmd,
+                      int *__fd2p));
+
+/* Check whether user REMUSER on system RHOST is allowed to login as LOCUSER.
+   If SUSER is not zero the user tries to become superuser.  Return 0 if
+   it is possible.  */
+extern int ruserok __P ((__const char *__rhost, int __suser,
+                        __const char *__remuser, __const char *__locuser));
+
+/* Try to allocate reserved port, returning a descriptor for a socket opened
+   at this port or -1 if unsuccessful.  The search for an available port
+   will start at ALPORT and continues with lower numbers.  */
+extern int rresvport __P ((int *__alport));
 #endif
 
 
@@ -380,22 +413,30 @@ struct addrinfo
 };
 
 /* Possible values for `ai_flags' field in `addrinfo' structure.  */
-#define        AI_PASSIVE      1       /* Socket address is intended for `bind'.  */
-#define        AI_CANONNAME    2       /* Request for canonical name.  */
+# define AI_PASSIVE    1       /* Socket address is intended for `bind'.  */
+# define AI_CANONNAME  2       /* Request for canonical name.  */
 
 /* Error values for `getaddrinfo' function.  */
-#define        EAI_BADFLAGS    -1      /* Invalid value for `ai_flags' field.  */
-#define        EAI_NONAME      -2      /* NAME or SERVICE is unknown.  */
-#define        EAI_AGAIN       -3      /* Temporary failure in name resolution.  */
-#define        EAI_FAIL        -4      /* Non-recoverable failure in name res.  */
-#define        EAI_NODATA      -5      /* No address associated with NAME.  */
-#define        EAI_FAMILY      -6      /* `ai_family' not supported.  */
-#define        EAI_SOCKTYPE    -7      /* `ai_socktype' not supported.  */
-#define        EAI_SERVICE     -8      /* SERVICE not supported for `ai_socktype'.  */
-#define        EAI_ADDRFAMILY  -9      /* Address family for NAME not supported.  */
-#define        EAI_MEMORY      -10     /* Memory allocation failure.  */
-#define        EAI_SYSTEM      -11     /* System error returned in `errno'.  */
-
+# define EAI_BADFLAGS  -1      /* Invalid value for `ai_flags' field.  */
+# define EAI_NONAME    -2      /* NAME or SERVICE is unknown.  */
+# define EAI_AGAIN     -3      /* Temporary failure in name resolution.  */
+# define EAI_FAIL      -4      /* Non-recoverable failure in name res.  */
+# define EAI_NODATA    -5      /* No address associated with NAME.  */
+# define EAI_FAMILY    -6      /* `ai_family' not supported.  */
+# define EAI_SOCKTYPE  -7      /* `ai_socktype' not supported.  */
+# define EAI_SERVICE   -8      /* SERVICE not supported for `ai_socktype'.  */
+# define EAI_ADDRFAMILY        -9      /* Address family for NAME not supported.  */
+# define EAI_MEMORY    -10     /* Memory allocation failure.  */
+# define EAI_SYSTEM    -11     /* System error returned in `errno'.  */
+
+# define NI_MAXHOST      1025
+# define NI_MAXSERV      32
+
+# define NI_NUMERICHOST 1
+# define NI_NUMERICSERV 2
+# define NI_NOFQDN 4
+# define NI_NAMEREQD 8
+# define NI_DGRAM 16
 
 /* Translate name of a service location and/or a service name to set of
    socket addresses.  */
@@ -405,6 +446,16 @@ extern int getaddrinfo __P ((__const char *__name, __const char *__service,
 
 /* Free `addrinfo' structure AI including associated storage.  */
 extern void freeaddrinfo __P ((struct addrinfo *__ai));
+
+/* Convert error return from getaddrinfo() to a string.  */
+extern char *gai_strerror __P  ((int __ecode));
+
+/* Translate a socket address to a location and service name.  */
+extern int getnameinfo __P ((__const struct sockaddr *__sa, size_t __salen,
+                            char *__host, size_t __hostlen,
+                            char *__serv, size_t __servlen,
+                            int __flags));
+
 #endif /* POSIX */
 
 __END_DECLS