Author: Armin Rigo <[email protected]>
Branch:
Changeset: r73823:c8871c379375
Date: 2014-10-06 10:38 +0200
http://bitbucket.org/pypy/pypy/changeset/c8871c379375/
Log: Issue #1880: test and fix
diff --git a/pypy/module/_socket/interp_socket.py
b/pypy/module/_socket/interp_socket.py
--- a/pypy/module/_socket/interp_socket.py
+++ b/pypy/module/_socket/interp_socket.py
@@ -402,8 +402,10 @@
The value argument can either be an integer or a string.
"""
try:
- optval = space.int_w(w_optval)
- except:
+ optval = space.c_int_w(w_optval)
+ except OperationError, e:
+ if e.async(space):
+ raise
optval = space.str_w(w_optval)
try:
self.sock.setsockopt(level, optname, optval)
diff --git a/pypy/module/_socket/test/test_sock_app.py
b/pypy/module/_socket/test/test_sock_app.py
--- a/pypy/module/_socket/test/test_sock_app.py
+++ b/pypy/module/_socket/test/test_sock_app.py
@@ -498,6 +498,13 @@
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
reuse = s.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR)
assert reuse == 0
+ #
+ raises(TypeError, s.setsockopt, socket.SOL_SOCKET,
+ socket.SO_REUSEADDR, 2 ** 31)
+ raises(TypeError, s.setsockopt, socket.SOL_SOCKET,
+ socket.SO_REUSEADDR, 2 ** 32 + 1)
+ assert s.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 0
+ #
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
reuse = s.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR)
assert reuse != 0
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit