Update of /cvsroot/jython/jython/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv23341
Modified Files:
socket.py
Log Message:
Fix for "[ #438297 ] SimpleHTTPServer does not work"
Added setsockopt() and getsockopt(). Only support for the SO_REUSEADDR
option. Silently ignore the option on non-jdk1.4.
Index: socket.py
===================================================================
RCS file: /cvsroot/jython/jython/Lib/socket.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** socket.py 2001/07/16 17:04:56 1.11
--- socket.py 2001/11/03 17:12:13 1.12
***************
*** 28,31 ****
--- 28,33 ----
SOCK_RDM = 4 # not supported
SOCK_SEQPACKET = 5 # not supported
+ SOL_SOCKET = 0xFFFF
+ SO_REUSEADDR = 4
def _gethostbyaddr(name):
***************
*** 85,88 ****
--- 87,91 ----
server = 0
file_count = 0
+ reuse_addr = 0
def bind(self, addr, port=None):
***************
*** 107,110 ****
--- 110,115 ----
else:
self.sock = java.net.ServerSocket(port, backlog)
+ if hasattr(self.sock, "setReuseAddress"):
+ self.sock.setReuseAddress(self.reuse_addr)
def accept(self):
***************
*** 132,135 ****
--- 137,142 ----
def _setup(self, sock):
self.sock = sock
+ if hasattr(self.sock, "setReuseAddress"):
+ self.sock.setReuseAddress(self.reuse_addr)
self.istream = sock.getInputStream()
self.ostream = sock.getOutputStream()
***************
*** 169,172 ****
--- 176,187 ----
port = self.sock.getPort()
return (host, port)
+
+ def setsockopt(self, level, optname, value):
+ if optname == SO_REUSEADDR:
+ self.reuse_addr = value
+
+ def getsockopt(self, level, optname):
+ if optname == SO_REUSEADDR:
+ return self.reuse_addr
def makefile(self, mode="r", bufsize=-1):
|