[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