summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-04-08 07:11:38 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-04-08 07:11:38 +0000
commit40a47f6fafa6172a751302f3410144dd2c0c1c59 (patch)
tree86824e69aadf8c4796447f852be29145b37be188
parent215fb1852903bfe9f68fb46b4da3ec73b5353093 (diff)
downloadATCD-40a47f6fafa6172a751302f3410144dd2c0c1c59.tar.gz
*** empty log message ***
-rw-r--r--apps/JAWS/server/IO.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/apps/JAWS/server/IO.cpp b/apps/JAWS/server/IO.cpp
index ef3e9e0230f..f3e675b53e6 100644
--- a/apps/JAWS/server/IO.cpp
+++ b/apps/JAWS/server/IO.cpp
@@ -180,7 +180,7 @@ JAWS_Asynch_IO::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result
// This callback is for this->receive_file()
{
int code = 0;
- if (result.success ())
+ if (result.success () && result.bytes_transferred () != 0)
{
if (result.message_block ().length () == result.message_block ().size ())
code = HTTP_Status_Code::STATUS_OK;
@@ -195,20 +195,23 @@ JAWS_Asynch_IO::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result
else
return;
}
- if (code == HTTP_Status_Code::STATUS_OK)
- this->handler_->receive_file_complete ();
- else
- this->handler_->receive_file_error (code);
-
- delete &result.message_block ();
- JAWS_VFS_Node *vf = (JAWS_VFS_Node *) result.act ();
- VFS::instance ()->close (vf);
}
+ else
+ code = HTTP_Status_Code::STATUS_INTERNAL_SERVER_ERROR;
+
+ if (code == HTTP_Status_Code::STATUS_OK)
+ this->handler_->receive_file_complete ();
+ else
+ this->handler_->receive_file_error (code);
+
+ delete &result.message_block ();
+ JAWS_VFS_Node *vf = (JAWS_VFS_Node *) result.act ();
+ VFS::instance ()->close (vf);
}
else
{
// This callback is for this->read()
- if (result.success ())
+ if (result.success () && result.bytes_transferred () != 0)
this->handler_->client_data (result.message_block ());
else
this->handler_->read_error ();