diff options
| author | Victor Stinner <victor.stinner@gmail.com> | 2013-06-03 22:07:27 +0200 | 
|---|---|---|
| committer | Victor Stinner <victor.stinner@gmail.com> | 2013-06-03 22:07:27 +0200 | 
| commit | a534fc4b3bd4b731be9304be626bc161f53d7bfb (patch) | |
| tree | 503ac32ab7c4de6f54c73597d04f97b82930397e /Modules | |
| parent | caa00fec19705c656497658c6ff1b1fff62a4484 (diff) | |
| download | cpython-git-a534fc4b3bd4b731be9304be626bc161f53d7bfb.tar.gz | |
Close #18109: os.uname() now decodes fields from the locale encoding, and
socket.gethostname() now decodes the hostname from the locale encoding, instead
of using the UTF-8 encoding in strict mode.
Diffstat (limited to 'Modules')
| -rw-r--r-- | Modules/posixmodule.c | 2 | ||||
| -rw-r--r-- | Modules/socketmodule.c | 16 | 
2 files changed, 9 insertions, 9 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 7c96a67ea9..3b4b5704ec 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -4514,7 +4514,7 @@ posix_uname(PyObject *self, PyObject *noargs)  #define SET(i, field) \      { \ -    PyObject *o = PyUnicode_DecodeASCII(field, strlen(field), NULL); \ +    PyObject *o = PyUnicode_DecodeFSDefault(field); \      if (!o) { \          Py_DECREF(value); \          return NULL; \ diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 679143cc93..b9579283f8 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -1702,7 +1702,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,              return 0;          }  #endif -             +  #ifdef PF_SYSTEM      case PF_SYSTEM:          switch (s->sock_proto) { @@ -1710,10 +1710,10 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,          case SYSPROTO_CONTROL:          {              struct sockaddr_ctl *addr; -             +              addr = (struct sockaddr_ctl *)addr_ret;              addr->sc_family = AF_SYSTEM; -            addr->ss_sysaddr = AF_SYS_CONTROL;  +            addr->ss_sysaddr = AF_SYS_CONTROL;              if (PyUnicode_Check(args)) {                  struct ctl_info info; @@ -1739,17 +1739,17 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,                            "cannot find kernel control with provided name");                      return 0;                  } -                 +                  addr->sc_id = info.ctl_id;                  addr->sc_unit = 0;              } else if (!PyArg_ParseTuple(args, "II",                                           &(addr->sc_id), &(addr->sc_unit))) {                  PyErr_SetString(PyExc_TypeError, "getsockaddrarg: "                                  "expected str or tuple of two ints"); -                 +                  return 0;              } -               +              *len_ret = sizeof(*addr);              return 1;          } @@ -1866,7 +1866,7 @@ getsockaddrlen(PySocketSockObject *s, socklen_t *len_ret)          return 1;      }  #endif -             +  #ifdef PF_SYSTEM      case PF_SYSTEM:          switch(s->sock_proto) { @@ -4111,7 +4111,7 @@ socket_gethostname(PyObject *self, PyObject *unused)      if (res < 0)          return set_error();      buf[sizeof buf - 1] = '\0'; -    return PyUnicode_FromString(buf); +    return PyUnicode_DecodeFSDefault(buf);  #endif  }  | 
