]> granicus.if.org Git - python/commitdiff
Patch by Rob Riggs for Linux -- glibc2 has a different argument
authorGuido van Rossum <guido@python.org>
Mon, 15 Mar 1999 21:40:14 +0000 (21:40 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 15 Mar 1999 21:40:14 +0000 (21:40 +0000)
converntion for gethostbyname_r() etc. than Solaris!

Modules/socketmodule.c

index ab0014c79c7bb8181ffa6bcd3a9f97e4a8fb6b86..8b087d2ce126630b9b21351a345fb2834296a78e 100644 (file)
@@ -334,6 +334,9 @@ BUILD_FUNC_DEF_2(setipaddr, char*,name, struct sockaddr_in *,addr_ret)
        char buf[1001];
        int buf_len = (sizeof buf) - 1;
        int errnop;
+#if defined(linux) && (__GLIBC__ >= 2)
+       int result;
+#endif
 #endif /* HAVE_GETHOSTBYNAME_R */
 
        memset((void *) addr_ret, '\0', sizeof(*addr_ret));
@@ -355,7 +358,11 @@ BUILD_FUNC_DEF_2(setipaddr, char*,name, struct sockaddr_in *,addr_ret)
        }
        Py_BEGIN_ALLOW_THREADS
 #ifdef HAVE_GETHOSTBYNAME_R
+#if defined(linux) && (__GLIBC__ >= 2)
+       result = gethostbyname_r(name, &hp_allocated, buf, buf_len, &hp, &errnop);
+#else
        hp = gethostbyname_r(name, &hp_allocated, buf, buf_len, &errnop);
+#endif
 #else /* not HAVE_GETHOSTBYNAME_R */
 #if defined(WITH_THREAD) && !defined(MS_WINDOWS)
        PyThread_acquire_lock(gethostbyname_lock,1);
@@ -1407,6 +1414,9 @@ BUILD_FUNC_DEF_2(PySocket_gethostbyname_ex,PyObject *,self, PyObject *,args)
        char buf[16384];
        int buf_len = (sizeof buf) - 1;
        int errnop;
+#if defined(linux) && (__GLIBC__ >= 2)
+       int result;
+#endif
 #endif /* HAVE_GETHOSTBYNAME_R */
        if (!PyArg_Parse(args, "s", &name))
                return NULL;
@@ -1414,7 +1424,11 @@ BUILD_FUNC_DEF_2(PySocket_gethostbyname_ex,PyObject *,self, PyObject *,args)
                return NULL;
        Py_BEGIN_ALLOW_THREADS
 #ifdef HAVE_GETHOSTBYNAME_R
+#if defined(linux) && (__GLIBC__ >= 2)
+       result = gethostbyname_r(name, &hp_allocated, buf, buf_len, &h, &errnop);
+#else
        h = gethostbyname_r(name, &hp_allocated, buf, buf_len, &errnop);
+#endif
 #else /* not HAVE_GETHOSTBYNAME_R */
 #if defined(WITH_THREAD) && !defined(MS_WINDOWS)
        PyThread_acquire_lock(gethostbyname_lock,1);
@@ -1449,6 +1463,9 @@ BUILD_FUNC_DEF_2(PySocket_gethostbyaddr,PyObject *,self, PyObject *, args)
        char buf[16384];
        int buf_len = (sizeof buf) - 1;
        int errnop;
+#if defined(linux) && (__GLIBC__ >= 2)
+       int result;
+#endif
 #endif /* HAVE_GETHOSTBYNAME_R */
 
        if (!PyArg_Parse(args, "s", &ip_num))
@@ -1457,10 +1474,17 @@ BUILD_FUNC_DEF_2(PySocket_gethostbyaddr,PyObject *,self, PyObject *, args)
                return NULL;
        Py_BEGIN_ALLOW_THREADS
 #ifdef HAVE_GETHOSTBYNAME_R
+#if defined(linux) && (__GLIBC__ >= 2)
+       result = gethostbyaddr_r((char *)&addr.sin_addr,
+               sizeof(addr.sin_addr),
+               AF_INET, &hp_allocated, buf, buf_len,
+               &h, &errnop);
+#else
        h = gethostbyaddr_r((char *)&addr.sin_addr,
                            sizeof(addr.sin_addr),
                            AF_INET, 
                            &hp_allocated, buf, buf_len, &errnop);
+#endif
 #else /* not HAVE_GETHOSTBYNAME_R */
 #if defined(WITH_THREAD) && !defined(MS_WINDOWS)
        PyThread_acquire_lock(gethostbyname_lock,1);