Matthew Fulmer uploaded a new version of Network to project The Trunk:
http://source.squeak.org/trunk/Network-mtf.105.mcz==================== Summary ====================
Name: Network-mtf.105
Author: mtf
Time: 15 January 2011, 8:27:54.184 pm
UUID: 1b2c2f95-fc87-4b1f-a034-4dc2cb793c9b
Ancestors: Network-cmm.103
the SocketStream refactor broke the semantics of no-timeout streams. no timeout is supposed to mean we wait potentially forever. It was broken to mean timeout silently rather than with a signal.
=============== Diff against Network-cmm.103 ===============
Item was added:
+ ----- Method: BrowserUrl>>retrieveContentsForBrowser: (in category 'downloading') -----
+ retrieveContentsForBrowser: aBrowser
+ ^aBrowser browserUrlContents: locator!
Item was changed:
----- Method: SocketStream>>receiveData (in category 'private-socket') -----
receiveData
+ self waitForData.
- "Receive data. Signal exceptions and timeouts depending on #shouldSignal and #shouldTimeout. Return the position in the buffer where the new data starts, regardless if anything was read."
-
- socket
- waitForDataFor: self timeout
- ifClosed: [self shouldSignal
- ifTrue:[ConnectionClosed signal: 'Connection closed while waiting for data.']]
- ifTimedOut: [self shouldTimeout
- ifTrue:[ConnectionTimedOut signal: 'Data receive timed out.']].
^self receiveAvailableData!
Item was added:
+ ----- Method: SocketStream>>signalClosed (in category 'private-socket') -----
+ signalClosed
+ self shouldSignal ifFalse: [^ self].
+ ConnectionClosed signal: 'Connection closed while waiting for data.'!
Item was added:
+ ----- Method: SocketStream>>signalTimeout (in category 'private-socket') -----
+ signalTimeout
+ self shouldSignal ifFalse: [^ self].
+ ConnectionTimedOut signal: 'Data receive timed out.'!
Item was added:
+ ----- Method: SocketStream>>waitForData (in category 'private-socket') -----
+ waitForData
+ "Wait for data. If shouldTimeout, we will time out if nothing arrives, otherwise we wait indefinitely"
+
+ self shouldTimeout
+ ifTrue: [socket waitForDataFor: self timeout
+ ifClosed: [self signalClosed]
+ ifTimedOut: [self signalTimeout]]
+ ifFalse: [socket waitForDataIfClosed: [self signalClosed]]!