Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] 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  
Status new   Product Version 3.8
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.
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