# HG changeset patch # Parent 6b840aa1bad9386c57d7896d8b67954ade3a226f diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -3310,7 +3310,6 @@ socket_gethostbyname_ex(PyObject *self, char *name; struct hostent *h; sock_addr_t addr; - struct sockaddr *sa; PyObject *ret = NULL; #ifdef HAVE_GETHOSTBYNAME_R struct hostent hp_allocated; @@ -3349,13 +3348,8 @@ socket_gethostbyname_ex(PyObject *self, h = gethostbyname(name); #endif /* HAVE_GETHOSTBYNAME_R */ Py_END_ALLOW_THREADS - /* Some C libraries would require addr.__ss_family instead of - addr.ss_family. - Therefore, we cast the sockaddr_storage into sockaddr to - access sa_family. */ - sa = SAS2SA(&addr); ret = gethost_common(h, SAS2SA(&addr), sizeof(addr), - sa->sa_family); + addr.sa.sa_family); #ifdef USE_GETHOSTBYNAME_LOCK PyThread_release_lock(netdb_lock); #endif @@ -3378,7 +3372,6 @@ static PyObject * socket_gethostbyaddr(PyObject *self, PyObject *args) { sock_addr_t addr; - struct sockaddr *sa = SAS2SA(&addr); char *ip_num; struct hostent *h; PyObject *ret = NULL; @@ -3406,20 +3399,20 @@ socket_gethostbyaddr(PyObject *self, PyO if (!PyArg_ParseTuple(args, "et:gethostbyaddr", "idna", &ip_num)) return NULL; af = AF_UNSPEC; - if (setipaddr(ip_num, sa, sizeof(addr), af) < 0) + if (setipaddr(ip_num, SAS2SA(&addr), sizeof(addr), af) < 0) goto finally; - af = sa->sa_family; + af = addr.sa.sa_family; ap = NULL; al = 0; switch (af) { case AF_INET: - ap = (char *)&((struct sockaddr_in *)sa)->sin_addr; - al = sizeof(((struct sockaddr_in *)sa)->sin_addr); + ap = (char *)&(addr.in.sin_addr); + al = sizeof(addr.in.sin_addr); break; #ifdef ENABLE_IPV6 case AF_INET6: - ap = (char *)&((struct sockaddr_in6 *)sa)->sin6_addr; - al = sizeof(((struct sockaddr_in6 *)sa)->sin6_addr); + ap = (char *)&(addr.in6.sin6_addr); + al = sizeof(addr.in6.sin6_addr); break; #endif default: