Skip to content

Commit 32c4ac0

Browse files
committed
Down with str8!
Change various socket APIs to use bytes or str instead str8.
1 parent 13c3e38 commit 32c4ac0

File tree

2 files changed

+21
-20
lines changed

2 files changed

+21
-20
lines changed

Lib/test/test_socket.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1043,7 +1043,7 @@ class TestLinuxAbstractNamespace(unittest.TestCase):
10431043
UNIX_PATH_MAX = 108
10441044

10451045
def testLinuxAbstractNamespace(self):
1046-
address = "\x00python-test-hello\x00\xff"
1046+
address = b"\x00python-test-hello\x00\xff"
10471047
s1 = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
10481048
s1.bind(address)
10491049
s1.listen(1)
@@ -1054,7 +1054,7 @@ def testLinuxAbstractNamespace(self):
10541054
self.assertEqual(s2.getpeername(), address)
10551055

10561056
def testMaxName(self):
1057-
address = "\x00" + "h" * (self.UNIX_PATH_MAX - 1)
1057+
address = b"\x00" + b"h" * (self.UNIX_PATH_MAX - 1)
10581058
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
10591059
s.bind(address)
10601060
self.assertEqual(s.getsockname(), address)

Modules/socketmodule.c

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -967,7 +967,7 @@ makeipaddr(struct sockaddr *addr, int addrlen)
967967
set_gaierror(error);
968968
return NULL;
969969
}
970-
return PyString_FromString(buf);
970+
return PyUnicode_FromString(buf);
971971
}
972972

973973

@@ -1011,7 +1011,7 @@ makebdaddr(bdaddr_t *bdaddr)
10111011
sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X",
10121012
bdaddr->b[5], bdaddr->b[4], bdaddr->b[3],
10131013
bdaddr->b[2], bdaddr->b[1], bdaddr->b[0]);
1014-
return PyString_FromString(buf);
1014+
return PyUnicode_FromString(buf);
10151015
}
10161016
#endif
10171017

@@ -1058,14 +1058,13 @@ makesockaddr(int sockfd, struct sockaddr *addr, int addrlen, int proto)
10581058
#ifdef linux
10591059
if (a->sun_path[0] == 0) { /* Linux abstract namespace */
10601060
addrlen -= (sizeof(*a) - sizeof(a->sun_path));
1061-
return PyString_FromStringAndSize(a->sun_path,
1062-
addrlen);
1061+
return PyBytes_FromStringAndSize(a->sun_path, addrlen);
10631062
}
10641063
else
10651064
#endif /* linux */
10661065
{
10671066
/* regular NULL-terminated string */
1068-
return PyString_FromString(a->sun_path);
1067+
return PyUnicode_FromString(a->sun_path);
10691068
}
10701069
}
10711070
#endif /* AF_UNIX */
@@ -1160,7 +1159,7 @@ makesockaddr(int sockfd, struct sockaddr *addr, int addrlen, int proto)
11601159
if (ioctl(sockfd, SIOCGIFNAME, &ifr) == 0)
11611160
ifname = ifr.ifr_name;
11621161
}
1163-
return Py_BuildValue("shbhs#",
1162+
return Py_BuildValue("shbhy#",
11641163
ifname,
11651164
ntohs(a->sll_protocol),
11661165
a->sll_pkttype,
@@ -1385,12 +1384,12 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
13851384

13861385
addr = (struct sockaddr_sco *)addr_ret;
13871386
_BT_SCO_MEMB(addr, family) = AF_BLUETOOTH;
1388-
straddr = PyString_AsString(args);
1389-
if (straddr == NULL) {
1387+
if (!PyBytes_Check(args)) {
13901388
PyErr_SetString(socket_error, "getsockaddrarg: "
13911389
"wrong format");
13921390
return 0;
13931391
}
1392+
straddr = PyBytes_AS_STRING(args);
13941393
if (setbdaddr(straddr, &_BT_SCO_MEMB(addr, bdaddr)) < 0)
13951394
return 0;
13961395

@@ -2920,7 +2919,7 @@ socket_gethostname(PyObject *self, PyObject *unused)
29202919
if (res < 0)
29212920
return set_error();
29222921
buf[sizeof buf - 1] = '\0';
2923-
return PyString_FromString(buf);
2922+
return PyUnicode_FromString(buf);
29242923
}
29252924

29262925
PyDoc_STRVAR(gethostname_doc,
@@ -3011,7 +3010,7 @@ gethost_common(struct hostent *h, struct sockaddr *addr, int alen, int af)
30113010
if (h->h_aliases) {
30123011
for (pch = h->h_aliases; *pch != NULL; pch++) {
30133012
int status;
3014-
tmp = PyString_FromString(*pch);
3013+
tmp = PyUnicode_FromString(*pch);
30153014
if (tmp == NULL)
30163015
goto err;
30173016

@@ -3300,7 +3299,7 @@ socket_getservbyport(PyObject *self, PyObject *args)
33003299
PyErr_SetString(socket_error, "port/proto not found");
33013300
return NULL;
33023301
}
3303-
return PyString_FromString(sp->s_name);
3302+
return PyUnicode_FromString(sp->s_name);
33043303
}
33053304

33063305
PyDoc_STRVAR(getservbyport_doc,
@@ -3600,7 +3599,7 @@ socket_inet_ntoa(PyObject *self, PyObject *args)
36003599
int addr_len;
36013600
struct in_addr packed_addr;
36023601

3603-
if (!PyArg_ParseTuple(args, "s#:inet_ntoa", &packed_str, &addr_len)) {
3602+
if (!PyArg_ParseTuple(args, "y#:inet_ntoa", &packed_str, &addr_len)) {
36043603
return NULL;
36053604
}
36063605

@@ -3612,7 +3611,7 @@ socket_inet_ntoa(PyObject *self, PyObject *args)
36123611

36133612
memcpy(&packed_addr, packed_str, addr_len);
36143613

3615-
return PyString_FromString(inet_ntoa(packed_addr));
3614+
return PyUnicode_FromString(inet_ntoa(packed_addr));
36163615
}
36173616

36183617
#ifdef HAVE_INET_PTON
@@ -3655,11 +3654,11 @@ socket_inet_pton(PyObject *self, PyObject *args)
36553654
"illegal IP address string passed to inet_pton");
36563655
return NULL;
36573656
} else if (af == AF_INET) {
3658-
return PyString_FromStringAndSize(packed,
3657+
return PyBytes_FromStringAndSize(packed,
36593658
sizeof(struct in_addr));
36603659
#ifdef ENABLE_IPV6
36613660
} else if (af == AF_INET6) {
3662-
return PyString_FromStringAndSize(packed,
3661+
return PyBytes_FromStringAndSize(packed,
36633662
sizeof(struct in6_addr));
36643663
#endif
36653664
} else {
@@ -3686,10 +3685,10 @@ socket_inet_ntop(PyObject *self, PyObject *args)
36863685
char ip[INET_ADDRSTRLEN + 1];
36873686
#endif
36883687

3689-
/* Guarantee NUL-termination for PyString_FromString() below */
3688+
/* Guarantee NUL-termination for PyUnicode_FromString() below */
36903689
memset((void *) &ip[0], '\0', sizeof(ip));
36913690

3692-
if (!PyArg_ParseTuple(args, "is#:inet_ntop", &af, &packed, &len)) {
3691+
if (!PyArg_ParseTuple(args, "iy#:inet_ntop", &af, &packed, &len)) {
36933692
return NULL;
36943693
}
36953694

@@ -3718,7 +3717,7 @@ socket_inet_ntop(PyObject *self, PyObject *args)
37183717
PyErr_SetFromErrno(socket_error);
37193718
return NULL;
37203719
} else {
3721-
return PyString_FromString(retval);
3720+
return PyUnicode_FromString(retval);
37223721
}
37233722

37243723
/* NOTREACHED */
@@ -3770,6 +3769,8 @@ socket_getaddrinfo(PyObject *self, PyObject *args)
37703769
if (PyInt_CheckExact(pobj)) {
37713770
PyOS_snprintf(pbuf, sizeof(pbuf), "%ld", PyInt_AsLong(pobj));
37723771
pptr = pbuf;
3772+
} else if (PyUnicode_Check(pobj)) {
3773+
pptr = PyUnicode_AsString(pobj);
37733774
} else if (PyString_Check(pobj)) {
37743775
pptr = PyString_AsString(pobj);
37753776
} else if (pobj == Py_None) {

0 commit comments

Comments
 (0)