From: Bjoern Sikora Date: Tue, 16 Jul 2013 09:21:18 +0000 (+0200) Subject: Don't exit program if state file could not be pared (for example corrupted or empty... X-Git-Tag: v1.1~9 X-Git-Url: http://developer.intra2net.com/git/?p=bpdyndnsd;a=commitdiff_plain;h=6741febc2e5f74135941ab61164ae958287431e9 Don't exit program if state file could not be pared (for example corrupted or empty). This fixes mantis-bug#1739. --- diff --git a/src/logger.cpp b/src/logger.cpp index 37bc68d..dec7077 100644 --- a/src/logger.cpp +++ b/src/logger.cpp @@ -867,7 +867,7 @@ void Logger::print_exception_deserialize(const string& errMsg) const if ( level <= Loglevel ) { ostringstream msg; - msg << "Error while trying to de-serialize Serviceholder object: " << errMsg << endl; + msg << "Error while trying to de-serialize Serviceholder object: " << errMsg << ". Continue without recovering state from old services!" << endl; log_error(msg.str()); } } diff --git a/src/serviceholder.cpp b/src/serviceholder.cpp index c1c02e7..7f7968f 100644 --- a/src/serviceholder.cpp +++ b/src/serviceholder.cpp @@ -132,10 +132,12 @@ int Serviceholder::deserialize_services() } catch( const boost::archive::archive_exception& e ) { + // There is a corrupted object file, continue without recovering old Services' state. Log->print_exception_deserialize(e.what()); ifs.close(); - return -1; + return 0; } + SerializeServiceContainer::Ptr service_container(_service_container); IPAddrHelp = IPAddrHelper::Ptr(_ip_addr_helper); ifs.close();