summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog-98a5
-rw-r--r--ace/IOStream_T.i7
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog-98a b/ChangeLog-98a
index 01ff1d429e0..5298c616165 100644
--- a/ChangeLog-98a
+++ b/ChangeLog-98a
@@ -1,5 +1,10 @@
Fri May 1 13:52:32 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+ * ace/IOStream_T.i (recv_n): ACE_IOStream<STREAM>::eof (void) had
+ a subtle bug if it is called when a get operation (>>) has not
+ failed. Thanks to James CE Johnson <ace-users@lads.com> for
+ reporting this bug.
+
* examples/Connection/misc/Connection_Handler.cpp: Make sure to
activate() each active object using THR_DETACHED so we don't run
out of threading resources. Thanks to Brad Walton
diff --git a/ace/IOStream_T.i b/ace/IOStream_T.i
index 9ae8f0017af..fcf28fb02a6 100644
--- a/ace/IOStream_T.i
+++ b/ace/IOStream_T.i
@@ -1,4 +1,5 @@
/* -*- C++ -*- */
+// $Id$
template <class STREAM> ssize_t
ACE_Streambuf_T<STREAM>::send (char *buf, ssize_t len)
@@ -21,6 +22,8 @@ ACE_Streambuf_T<STREAM>::recv (char *buf,
ACE_Time_Value * tv)
{
ssize_t rval = peer_->recv (buf, len, flags, tv);
+ if (errno == ETIME)
+ this->timeout_ = 1;
return rval;
}
@@ -30,7 +33,9 @@ ACE_Streambuf_T<STREAM>::recv_n (char *buf,
int flags,
ACE_Time_Value *tv)
{
- ssize_t rval = peer_->recv_n (buf, len, flags, tv);
+ ssize_t rval = peer_->recv_n (buf, len, flags, tv);
+ if (errno == ETIME)
+ this->timeout_ = 1;
return rval;
}