[Cppfcplib] r14358 - trunk/apps/CppFCPLib
mkolar at freenetproject.org
mkolar at freenetproject.org
Thu Jul 26 08:16:15 UTC 2007
Author: mkolar
Date: 2007-07-26 08:16:14 +0000 (Thu, 26 Jul 2007)
New Revision: 14358
Modified:
trunk/apps/CppFCPLib/Message.h
trunk/apps/CppFCPLib/Node.cpp
Log:
* DataMessage is changed in order to gain ownership of stream from which the data is read
Modified: trunk/apps/CppFCPLib/Message.h
===================================================================
--- trunk/apps/CppFCPLib/Message.h 2007-07-25 23:52:31 UTC (rev 14357)
+++ trunk/apps/CppFCPLib/Message.h 2007-07-26 08:16:14 UTC (rev 14358)
@@ -56,7 +56,7 @@
const std::string& toString();
void toSocket(boost::asio::ip::tcp::socket& socket);
- ~DataMessage() {}
+ ~DataMessage() { if (stream_ != NULL) delete stream_; }
friend class Message;
};
Modified: trunk/apps/CppFCPLib/Node.cpp
===================================================================
--- trunk/apps/CppFCPLib/Node.cpp 2007-07-25 23:52:31 UTC (rev 14357)
+++ trunk/apps/CppFCPLib/Node.cpp 2007-07-26 08:16:14 UTC (rev 14358)
@@ -616,16 +616,17 @@
{
// error, try direct mode
- std::ifstream is(filename.c_str(), std::ios::binary);
- if (!is.is_open()) {
+ std::ifstream* is = new std::ifstream(filename.c_str(), std::ios::binary);
+ if (!is->is_open()) {
+ delete is;
log().log(ERROR, "Error while opening file :: " + filename);
throw FileError("Error while opening file.", filename);
}
- is.seekg(0, std::ios_base::end);
- int pos = is.tellg();
- is.seekg(0, std::ios_base::beg);
+ is->seekg(0, std::ios_base::end);
+ int pos = is->tellg();
+ is->seekg(0, std::ios_base::beg);
- return putData(URI, &is, pos, id, fields);
+ return putData(URI, is, pos, id, fields);
}
}
More information about the Cppfcplib
mailing list