diff options
| author | Rich Felker <dalias@aerifal.cx> | 2012-08-15 15:35:32 -0400 | 
|---|---|---|
| committer | Rich Felker <dalias@aerifal.cx> | 2012-08-15 15:35:32 -0400 | 
| commit | 3f80afc50577dada3940b66ef5b67da2f43cc00a (patch) | |
| tree | f003e434702753eaf0441b5791e687d13c4dbbb8 | |
| parent | 7650390de8f72822ec0d4a9fb5b52efcf0be4698 (diff) | |
| download | musl-3f80afc50577dada3940b66ef5b67da2f43cc00a.tar.gz | |
improve headers to better deal with removed-in-posix-2008 features
with this patch, setting _POSIX_SOURCE, or setting _POSIX_C_SOURCE or
_XOPEN_SOURCE to an old version, will bring back the interfaces that
were removed in POSIX 2008 - at least the ones i've covered so far,
which are gethostby*, usleep, and ualarm. if there are other functions
still in widespread use that were removed for which similar changes
would be beneficial, they can be added just like this.
| -rw-r--r-- | include/netdb.h | 27 | ||||
| -rw-r--r-- | include/unistd.h | 8 | 
2 files changed, 22 insertions, 13 deletions
diff --git a/include/netdb.h b/include/netdb.h index 82c78dc8..42a4b682 100644 --- a/include/netdb.h +++ b/include/netdb.h @@ -118,21 +118,30 @@ struct protoent *getprotoent (void);  struct protoent *getprotobyname (const char *);  struct protoent *getprotobynumber (int); +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) \ + || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE < 200809L) \ + || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE < 700) +struct hostent *gethostbyname (const char *); +struct hostent *gethostbyaddr (const void *, socklen_t, int); +#ifdef __GNUC__ +__attribute__((const)) +#endif +int *__h_errno_location(void); +#define h_errno (*__h_errno_location()) +#define HOST_NOT_FOUND 1 +#define TRY_AGAIN      2 +#define NO_RECOVERY    3 +#define NO_DATA        4 +#endif +  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)  const char *hstrerror(int); -struct hostent *gethostbyname (const char *);  int gethostbyname_r(const char *, struct hostent *, char *, size_t, struct hostent **, int *);  int gethostbyname2_r(const char *, int, struct hostent *, char *, size_t, struct hostent **, int *);  struct hostent *gethostbyname2(const char *, int); -struct hostent *gethostbyaddr (const void *, socklen_t, int);  int gethostbyaddr_r(const void *, socklen_t, int, struct hostent *, char *, size_t, struct hostent **, int *);  int getservbyport_r(int, const char *, struct servent *, char *, size_t, struct servent **);  int getservbyname_r(const char *, const char *, struct servent *, char *, size_t, struct servent **); -#ifdef __GNUC__ -__attribute__((const)) -#endif -int *__h_errno_location(void); -#define h_errno (*__h_errno_location())  #define EAI_NODATA     -5  #define EAI_ADDRFAMILY -9  #define EAI_INPROGRESS -100 @@ -143,10 +152,6 @@ int *__h_errno_location(void);  #define EAI_IDN_ENCODE -105  #define NI_MAXHOST 255  #define NI_MAXSERV 32 -#define HOST_NOT_FOUND 1 -#define TRY_AGAIN      2 -#define NO_RECOVERY    3 -#define NO_DATA        4  #endif diff --git a/include/unistd.h b/include/unistd.h index 17fe5e7c..12d153b8 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -144,6 +144,12 @@ void encrypt(char *, int);  void swab(const void *, void *, ssize_t);  #endif +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) \ + || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE < 700) +int usleep(unsigned); +unsigned ualarm(unsigned, unsigned); +#endif +  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)  #define L_SET 0  #define L_INCR 1 @@ -157,8 +163,6 @@ int getpagesize(void);  int getdtablesize(void);  int sethostname(const char *, size_t);  int getdomainname(char *, size_t); -int usleep(unsigned); -unsigned ualarm(unsigned, unsigned);  int setgroups(size_t, const gid_t []);  char *getpass(const char *);  int daemon(int, int);  | 
