From: <am...@us...> - 2009-01-28 16:06:23
|
Revision: 5992 http://jython.svn.sourceforge.net/jython/?rev=5992&view=rev Author: amak Date: 2009-01-28 16:05:59 +0000 (Wed, 28 Jan 2009) Log Message: ----------- Fix and unit test for bug 1244. Problem letting system choose the port for binding UDP socket http://bugs.jython.org/issue1244 Modified Paths: -------------- trunk/jython/Lib/socket.py trunk/jython/Lib/test/test_socket.py Modified: trunk/jython/Lib/socket.py =================================================================== --- trunk/jython/Lib/socket.py 2009-01-27 05:06:54 UTC (rev 5991) +++ trunk/jython/Lib/socket.py 2009-01-28 16:05:59 UTC (rev 5992) @@ -384,7 +384,7 @@ def __init__(self, port=None, address=None, reuse_addr=0): self.jchannel = java.nio.channels.DatagramChannel.open() self.jsocket = self.jchannel.socket() - if port: + if port is not None: if address is not None: local_address = java.net.InetSocketAddress(address, port) else: Modified: trunk/jython/Lib/test/test_socket.py =================================================================== --- trunk/jython/Lib/test/test_socket.py 2009-01-27 05:06:54 UTC (rev 5991) +++ trunk/jython/Lib/test/test_socket.py 2009-01-28 16:05:59 UTC (rev 5992) @@ -813,7 +813,22 @@ def _testDup(self): self.serv_conn.send(MSG) self.serv_conn.send('and ' + MSG) + +class UDPBindTest(unittest.TestCase): + + HOST = HOST + PORT = PORT + def setUp(self): + self.sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) + + def testBindEphemeral(self): + self.sock.bind( (self.HOST, 0) ) # let system choose a free port + self.failUnless(self.sock.getsockname()[1] != 0, "Binding to port zero should have allocated an ephemeral port number") + + def tearDown(self): + self.sock.close() + class BasicUDPTest(ThreadedUDPSocketTest): def __init__(self, methodName='runTest'): @@ -1609,6 +1624,7 @@ TestInvalidUsage, TestTCPAddressParameters, TestUDPAddressParameters, + UDPBindTest, BasicUDPTest, UDPTimeoutTest, NonBlockingTCPTests, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |