github.com/afumu/libc@v0.0.6/musl/include/netdb.h (about)

     1  #ifndef	_NETDB_H
     2  #define	_NETDB_H
     3  
     4  #ifdef __cplusplus
     5  extern "C" {
     6  #endif
     7  
     8  #include <features.h>
     9  #include <netinet/in.h>
    10  
    11  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
    12  #define __NEED_size_t
    13  #include <bits/alltypes.h>
    14  #endif
    15  
    16  struct addrinfo {
    17  	int ai_flags;
    18  	int ai_family;
    19  	int ai_socktype;
    20  	int ai_protocol;
    21  	socklen_t ai_addrlen;
    22  	struct sockaddr *ai_addr;
    23  	char *ai_canonname;
    24  	struct addrinfo *ai_next;
    25  };
    26  
    27  #define AI_PASSIVE      0x01
    28  #define AI_CANONNAME    0x02
    29  #define AI_NUMERICHOST  0x04
    30  #define AI_V4MAPPED     0x08
    31  #define AI_ALL          0x10
    32  #define AI_ADDRCONFIG   0x20
    33  #define AI_NUMERICSERV  0x400
    34  
    35  
    36  #define NI_NUMERICHOST  0x01
    37  #define NI_NUMERICSERV  0x02
    38  #define NI_NOFQDN       0x04
    39  #define NI_NAMEREQD     0x08
    40  #define NI_DGRAM        0x10
    41  #define NI_NUMERICSCOPE 0x100
    42  
    43  #define EAI_BADFLAGS   -1
    44  #define EAI_NONAME     -2
    45  #define EAI_AGAIN      -3
    46  #define EAI_FAIL       -4
    47  #define EAI_FAMILY     -6
    48  #define EAI_SOCKTYPE   -7
    49  #define EAI_SERVICE    -8
    50  #define EAI_MEMORY     -10
    51  #define EAI_SYSTEM     -11
    52  #define EAI_OVERFLOW   -12
    53  
    54  int getaddrinfo (const char *__restrict, const char *__restrict, const struct addrinfo *__restrict, struct addrinfo **__restrict);
    55  void freeaddrinfo (struct addrinfo *);
    56  int getnameinfo (const struct sockaddr *__restrict, socklen_t, char *__restrict, socklen_t, char *__restrict, socklen_t, int);
    57  const char *gai_strerror(int);
    58  
    59  
    60  /* Legacy functions follow (marked OBsolete in SUS) */
    61  
    62  struct netent {
    63  	char *n_name;
    64  	char **n_aliases;
    65  	int n_addrtype;
    66  	uint32_t n_net;
    67  };
    68  
    69  struct hostent {
    70  	char *h_name;
    71  	char **h_aliases;
    72  	int h_addrtype;
    73  	int h_length;
    74  	char **h_addr_list;
    75  };
    76  #define h_addr h_addr_list[0]
    77  
    78  struct servent {
    79  	char *s_name;
    80  	char **s_aliases;
    81  	int s_port;
    82  	char *s_proto;
    83  };
    84  
    85  struct protoent {
    86  	char *p_name;
    87  	char **p_aliases;
    88  	int p_proto;
    89  };
    90  
    91  void sethostent (int);
    92  void endhostent (void);
    93  struct hostent *gethostent (void);
    94  
    95  void setnetent (int);
    96  void endnetent (void);
    97  struct netent *getnetent (void);
    98  struct netent *getnetbyaddr (uint32_t, int);
    99  struct netent *getnetbyname (const char *);
   100  
   101  void setservent (int);
   102  void endservent (void);
   103  struct servent *getservent (void);
   104  struct servent *getservbyname (const char *, const char *);
   105  struct servent *getservbyport (int, const char *);
   106  
   107  void setprotoent (int);
   108  void endprotoent (void);
   109  struct protoent *getprotoent (void);
   110  struct protoent *getprotobyname (const char *);
   111  struct protoent *getprotobynumber (int);
   112  
   113  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) \
   114   || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE+0 < 200809L) \
   115   || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)
   116  struct hostent *gethostbyname (const char *);
   117  struct hostent *gethostbyaddr (const void *, socklen_t, int);
   118  #ifdef __GNUC__
   119  __attribute__((const))
   120  #endif
   121  int *__h_errno_location(void);
   122  #define h_errno (*__h_errno_location())
   123  #define HOST_NOT_FOUND 1
   124  #define TRY_AGAIN      2
   125  #define NO_RECOVERY    3
   126  #define NO_DATA        4
   127  #define NO_ADDRESS     NO_DATA
   128  #endif
   129  
   130  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
   131  void herror(const char *);
   132  const char *hstrerror(int);
   133  int gethostbyname_r(const char *, struct hostent *, char *, size_t, struct hostent **, int *);
   134  int gethostbyname2_r(const char *, int, struct hostent *, char *, size_t, struct hostent **, int *);
   135  struct hostent *gethostbyname2(const char *, int);
   136  int gethostbyaddr_r(const void *, socklen_t, int, struct hostent *, char *, size_t, struct hostent **, int *);
   137  int getservbyport_r(int, const char *, struct servent *, char *, size_t, struct servent **);
   138  int getservbyname_r(const char *, const char *, struct servent *, char *, size_t, struct servent **);
   139  #define EAI_NODATA     -5
   140  #define EAI_ADDRFAMILY -9
   141  #define EAI_INPROGRESS -100
   142  #define EAI_CANCELED   -101
   143  #define EAI_NOTCANCELED -102
   144  #define EAI_ALLDONE    -103
   145  #define EAI_INTR       -104
   146  #define EAI_IDN_ENCODE -105
   147  #define NI_MAXHOST 255
   148  #define NI_MAXSERV 32
   149  #endif
   150  
   151  
   152  #ifdef __cplusplus
   153  }
   154  #endif
   155  
   156  #endif