mirror of
https://github.com/python/cpython
synced 2026-09-29 09:05:29 +03:00
Fix portability problems with glibc 2.0, as reported in #449157.
This commit is contained in:
parent
834a85a235
commit
f95dd0a298
7 changed files with 23 additions and 4 deletions
|
|
@ -527,6 +527,8 @@ init_locale(void)
|
|||
ADDINT(ABMON_11);
|
||||
ADDINT(ABMON_12);
|
||||
|
||||
#ifdef RADIXCHAR
|
||||
/* The following are not available with glibc 2.0 */
|
||||
ADDINT(RADIXCHAR);
|
||||
ADDINT(THOUSEP);
|
||||
/* YESSTR and NOSTR are deprecated in glibc, since they are
|
||||
|
|
@ -537,6 +539,7 @@ init_locale(void)
|
|||
ADDINT(NOSTR);
|
||||
*/
|
||||
ADDINT(CRNCYSTR);
|
||||
#endif
|
||||
|
||||
ADDINT(D_T_FMT);
|
||||
ADDINT(D_FMT);
|
||||
|
|
|
|||
|
|
@ -67,6 +67,10 @@
|
|||
#define AI_DEFAULT (AI_V4MAPPED_CFG | AI_ADDRCONFIG)
|
||||
#endif
|
||||
|
||||
#endif /* HAVE_GETADDRINFO */
|
||||
|
||||
#ifndef HAVE_GETNAMEINFO
|
||||
|
||||
/*
|
||||
* Constants for getnameinfo()
|
||||
*/
|
||||
|
|
@ -86,6 +90,8 @@
|
|||
#define NI_DGRAM 0x00000010
|
||||
#endif
|
||||
|
||||
#endif /* HAVE_GETNAMEINFO */
|
||||
|
||||
#ifndef HAVE_ADDRINFO
|
||||
struct addrinfo {
|
||||
int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
|
||||
|
|
@ -137,4 +143,3 @@ extern void freehostent Py_PROTO((struct hostent *));
|
|||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -81,6 +81,10 @@ struct gni_sockinet {
|
|||
#define ENI_FAMILY 5
|
||||
#define ENI_SALEN 6
|
||||
|
||||
/* forward declaration to make gcc happy */
|
||||
int getnameinfo Py_PROTO((const struct sockaddr *, size_t, char *, size_t,
|
||||
char *, size_t, int));
|
||||
|
||||
int
|
||||
getnameinfo(sa, salen, host, hostlen, serv, servlen, flags)
|
||||
const struct sockaddr *sa;
|
||||
|
|
|
|||
|
|
@ -447,7 +447,11 @@ PyGAI_Err(int error)
|
|||
if (error == EAI_SYSTEM)
|
||||
return PySocket_Err();
|
||||
|
||||
#ifdef HAVE_GAI_STRERROR
|
||||
v = Py_BuildValue("(is)", error, gai_strerror(error));
|
||||
#else
|
||||
v = Py_BuildValue("(is)", error, "getaddrinfo failed");
|
||||
#endif
|
||||
if (v != NULL) {
|
||||
PyErr_SetObject(PyGAI_Error, v);
|
||||
Py_DECREF(v);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue