mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
Issue #24684: socket.socket.getaddrinfo() now calls
PyUnicode_AsEncodedString() instead of calling the encode() method of the host, to handle correctly custom string with an encode() method which doesn't return a byte string. The encoder of the IDNA codec is now called directly instead of calling the encode() method of the string.
This commit is contained in:
parent
db4220ea09
commit
ec1a498a01
2 changed files with 7 additions and 3 deletions
|
@ -5213,9 +5213,7 @@ socket_getaddrinfo(PyObject *self, PyObject *args, PyObject* kwargs)
|
|||
if (hobj == Py_None) {
|
||||
hptr = NULL;
|
||||
} else if (PyUnicode_Check(hobj)) {
|
||||
_Py_IDENTIFIER(encode);
|
||||
|
||||
idna = _PyObject_CallMethodId(hobj, &PyId_encode, "s", "idna");
|
||||
idna = PyUnicode_AsEncodedString(hobj, "idna", NULL);
|
||||
if (!idna)
|
||||
return NULL;
|
||||
assert(PyBytes_Check(idna));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue