From: Date: December 5 2008 11:48am Subject: bzr commit into mysql-5.1 branch (msvensson:3160) List-Archive: http://lists.mysql.com/commits/60714 Message-Id: <20081205104833.6B968134056@pilot> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///home/msvensson/mysql/6.4/ based on revid:msvensson@stripped 3160 Magnus Svensson 2008-12-05 [merge] Merge modified: storage/ndb/include/logger/ConsoleLogHandler.hpp storage/ndb/include/logger/FileLogHandler.hpp storage/ndb/include/logger/LogHandler.hpp storage/ndb/include/logger/SysLogHandler.hpp storage/ndb/include/util/File.hpp storage/ndb/src/common/logger/ConsoleLogHandler.cpp storage/ndb/src/common/logger/FileLogHandler.cpp storage/ndb/src/common/logger/Logger.cpp storage/ndb/src/common/logger/SysLogHandler.cpp storage/ndb/src/common/util/File.cpp === modified file 'storage/ndb/include/logger/ConsoleLogHandler.hpp' --- a/storage/ndb/include/logger/ConsoleLogHandler.hpp 2006-12-23 19:20:40 +0000 +++ b/storage/ndb/include/logger/ConsoleLogHandler.hpp 2008-12-05 10:18:59 +0000 @@ -39,6 +39,8 @@ public: virtual bool open(); virtual bool close(); + virtual bool is_open(); + virtual bool setParam(const BaseString ¶m, const BaseString &value); protected: === modified file 'storage/ndb/include/logger/FileLogHandler.hpp' --- a/storage/ndb/include/logger/FileLogHandler.hpp 2008-10-05 07:12:28 +0000 +++ b/storage/ndb/include/logger/FileLogHandler.hpp 2008-12-05 10:18:59 +0000 @@ -71,6 +71,8 @@ public: virtual bool open(); virtual bool close(); + virtual bool is_open(); + virtual bool setParam(const BaseString ¶m, const BaseString &value); virtual bool checkParams(); === modified file 'storage/ndb/include/logger/LogHandler.hpp' --- a/storage/ndb/include/logger/LogHandler.hpp 2008-10-05 07:12:28 +0000 +++ b/storage/ndb/include/logger/LogHandler.hpp 2008-12-05 10:18:59 +0000 @@ -64,7 +64,14 @@ public: * @return true if successful. */ virtual bool close() = 0; - + + /** + * Check if LogHandler is open + * + * @return true if open. + */ + virtual bool is_open() = 0; + /** * Append a log message to the output stream/file whatever. * append() will call writeHeader(), writeMessage() and writeFooter() for === modified file 'storage/ndb/include/logger/SysLogHandler.hpp' --- a/storage/ndb/include/logger/SysLogHandler.hpp 2006-12-23 19:20:40 +0000 +++ b/storage/ndb/include/logger/SysLogHandler.hpp 2008-12-05 10:18:59 +0000 @@ -73,6 +73,8 @@ public: virtual bool open(); virtual bool close(); + virtual bool is_open(); + virtual bool setParam(const BaseString ¶m, const BaseString &value); bool setFacility(const BaseString &facility); @@ -93,6 +95,7 @@ private: /** Syslog identity for all log entries. */ const char* m_pIdentity; int m_facility; + bool m_open; }; #endif === modified file 'storage/ndb/include/util/File.hpp' --- a/storage/ndb/include/util/File.hpp 2006-12-31 00:32:21 +0000 +++ b/storage/ndb/include/util/File.hpp 2008-12-05 10:18:59 +0000 @@ -109,6 +109,13 @@ public: bool open(const char* aFileName, const char* mode); /** + * Check if the file is open + * + * @return true if file is open, false if closed + */ + bool is_open(); + + /** * Removes the file. * * @return true if successful. === modified file 'storage/ndb/src/common/logger/ConsoleLogHandler.cpp' --- a/storage/ndb/src/common/logger/ConsoleLogHandler.cpp 2006-12-23 19:20:40 +0000 +++ b/storage/ndb/src/common/logger/ConsoleLogHandler.cpp 2008-12-05 10:18:59 +0000 @@ -38,6 +38,12 @@ ConsoleLogHandler::close() return true; } +bool +ConsoleLogHandler::is_open() +{ + return true; +} + // // PROTECTED // === modified file 'storage/ndb/src/common/logger/FileLogHandler.cpp' --- a/storage/ndb/src/common/logger/FileLogHandler.cpp 2008-11-07 11:00:38 +0000 +++ b/storage/ndb/src/common/logger/FileLogHandler.cpp 2008-12-05 10:18:59 +0000 @@ -74,6 +74,12 @@ FileLogHandler::open() } bool +FileLogHandler::is_open() +{ + return m_pLogFile->is_open(); +} + +bool FileLogHandler::close() { bool rc = true; === modified file 'storage/ndb/src/common/logger/Logger.cpp' --- a/storage/ndb/src/common/logger/Logger.cpp 2008-11-06 17:17:12 +0000 +++ b/storage/ndb/src/common/logger/Logger.cpp 2008-12-05 10:18:59 +0000 @@ -165,17 +165,17 @@ Logger::addHandler(LogHandler* pHandler) Guard g(m_mutex); assert(pHandler != NULL); - bool rc = pHandler->open(); - if (rc) - { - m_pHandlerList->add(pHandler); - } - else + if (!pHandler->is_open() && + !pHandler->open()) { + // Failed to open delete pHandler; - } + return false; + } - return rc; + m_pHandlerList->add(pHandler); + + return true; } bool === modified file 'storage/ndb/src/common/logger/SysLogHandler.cpp' --- a/storage/ndb/src/common/logger/SysLogHandler.cpp 2006-12-23 19:20:40 +0000 +++ b/storage/ndb/src/common/logger/SysLogHandler.cpp 2008-12-05 10:18:59 +0000 @@ -24,14 +24,16 @@ SysLogHandler::SysLogHandler() : m_severity(LOG_INFO), m_pIdentity("NDB"), - m_facility(LOG_USER) + m_facility(LOG_USER), + m_open(false) { } SysLogHandler::SysLogHandler(const char* pIdentity, int facility) : m_severity(LOG_INFO), m_pIdentity(pIdentity), - m_facility(facility) + m_facility(facility), + m_open(false) { } @@ -45,7 +47,7 @@ SysLogHandler::open() { ::setlogmask(LOG_UPTO(LOG_DEBUG)); // Log from EMERGENCY down to DEBUG ::openlog(m_pIdentity, LOG_PID|LOG_CONS|LOG_ODELAY, m_facility); // PID, CONSOLE delay openlog - + m_open= true; return true; } @@ -53,10 +55,16 @@ bool SysLogHandler::close() { ::closelog(); - + m_open= false; return true; } +bool +SysLogHandler::is_open() +{ + return m_open; +} + void SysLogHandler::writeHeader(const char* pCategory, Logger::LoggerLevel level) { === modified file 'storage/ndb/src/common/util/File.cpp' --- a/storage/ndb/src/common/util/File.cpp 2007-10-31 21:24:32 +0000 +++ b/storage/ndb/src/common/util/File.cpp 2008-12-05 10:18:59 +0000 @@ -89,6 +89,7 @@ File_class::open() bool File_class::open(const char* aFileName, const char* mode) { + assert(m_file == NULL); // Not already open if(m_fileName != aFileName){ /** * Only copy if it's not the same string @@ -104,6 +105,13 @@ File_class::open(const char* aFileName, return rc; } + +bool +File_class::is_open() +{ + return (m_file != NULL); +} + File_class::~File_class() { close();