Mantis Bugtracker

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001397 [Squeak] Network minor always 06-29-05 18:02 06-29-05 18:03
Reporter lexspoon View Status public  
Assigned To
Priority normal Resolution open Platform
Status new   OS
Projection none   OS Version
ETA none Fixed in Version Product Version 3.8
  Product Build
Summary 0001397: [BUG] waitForData and half-closed connections
Description There is an ancient bug in the method
waitForDataFor:ifClosed:ifTimedOut:. The offending statement is this

    self isConnected
        ifFalse: [^closedBlock value].

isConnected only returns true if the socket is fully connected.
However, surely you should be able to wait-for-data if the socket is
half-open for receiving data?

In that case -- which seems correct -- the test should be
isOtherEndConnected. Or at least, I think it should be. I get mixed up
about this, but it seems like "closing" is a promise not to send any
more data. Thus, if you are waiting for data, you want to know that the
other side has not closed the connection.

However, #flush seems to make the opposite assumption: if you want to
send data, then you need isOtherEndConnected. It seems to me that you
want isThisEndConnected.

Or maybe half-closed connections just aren't modeled. But surely they
should be.....

The other waitForData and waitForSendDone variants have the same bug.
Steps To Reproduce
Additional Information
Attached Files

- Relationships

There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
06-29-05 18:02 KenCausey New Issue
06-29-05 18:03 KenCausey Reporter KenCausey => lexspoon

Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
29 total queries executed.
26 unique queries executed.
Powered by Mantis Bugtracker