[pypy-commit] pypy default: backport b0e0af09b762
arigo
pypy.commits at gmail.com
Mon Dec 18 07:44:01 EST 2017
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r93471:ed98419ad5e6
Date: 2017-12-18 13:43 +0100
http://bitbucket.org/pypy/pypy/changeset/ed98419ad5e6/
Log: backport b0e0af09b762
diff --git a/rpython/rlib/_rsocket_rffi.py b/rpython/rlib/_rsocket_rffi.py
--- a/rpython/rlib/_rsocket_rffi.py
+++ b/rpython/rlib/_rsocket_rffi.py
@@ -1361,6 +1361,11 @@
def gai_strerror_str(errno):
return rwin32.FormatError(errno)
+ def socket_strerror_unicode(errno):
+ return rwin32.FormatErrorW(errno)
+ def gai_strerror_unicode(errno):
+ return rwin32.FormatErrorW(errno)
+
# WinSock does not use a bitmask in select, and uses
# socket handles greater than FD_SETSIZE
MAX_FD_SIZE = None
@@ -1372,4 +1377,9 @@
def gai_strerror_str(errno):
return rffi.charp2str(gai_strerror(errno))
+ def socket_strerror_unicode(errno):
+ return socket_strerror_str(errno).decode('latin-1')
+ def gai_strerror_unicode(errno):
+ return gai_strerror_str(errno).decode('latin-1')
+
MAX_FD_SIZE = FD_SETSIZE
diff --git a/rpython/rlib/rpoll.py b/rpython/rlib/rpoll.py
--- a/rpython/rlib/rpoll.py
+++ b/rpython/rlib/rpoll.py
@@ -28,12 +28,16 @@
self.errno = errno
def get_msg(self):
return _c.socket_strerror_str(self.errno)
+ def get_msg_unicode(self):
+ return _c.socket_strerror_unicode(self.errno)
class SelectError(Exception):
def __init__(self, errno):
self.errno = errno
def get_msg(self):
return _c.socket_strerror_str(self.errno)
+ def get_msg_unicode(self):
+ return _c.socket_strerror_unicode(self.errno)
# ____________________________________________________________
# poll() for POSIX systems
diff --git a/rpython/rlib/rsocket.py b/rpython/rlib/rsocket.py
--- a/rpython/rlib/rsocket.py
+++ b/rpython/rlib/rsocket.py
@@ -1298,6 +1298,8 @@
pass
def get_msg(self):
return ''
+ def get_msg_unicode(self):
+ return self.get_msg().decode('latin-1')
def __str__(self):
return self.get_msg()
@@ -1314,6 +1316,8 @@
class CSocketError(SocketErrorWithErrno):
def get_msg(self):
return _c.socket_strerror_str(self.errno)
+ def get_msg_unicode(self):
+ return _c.socket_strerror_unicode(self.errno)
def last_error():
return CSocketError(_c.geterrno())
@@ -1322,6 +1326,8 @@
applevelerrcls = 'gaierror'
def get_msg(self):
return _c.gai_strerror_str(self.errno)
+ def get_msg_unicode(self):
+ return _c.gai_strerror_unicode(self.errno)
class HSocketError(SocketError):
applevelerrcls = 'herror'
diff --git a/rpython/rlib/test/test_rsocket.py b/rpython/rlib/test/test_rsocket.py
--- a/rpython/rlib/test/test_rsocket.py
+++ b/rpython/rlib/test/test_rsocket.py
@@ -409,6 +409,7 @@
# catch-all address (i.e. opendns).
e = py.test.raises(GAIError, getaddrinfo, 'www.very-invalidaddress.com', None)
assert isinstance(e.value.get_msg(), str)
+ assert isinstance(e.value.get_msg_unicode(), unicode)
def getaddrinfo_pydotorg(i, result):
lst = getaddrinfo('python.org', None)
More information about the pypy-commit
mailing list