OSDN Git Service

ticket #397
authortsukahara <tsukahara@1ed66053-1c2d-0410-8867-f7571e6e31d3>
Mon, 28 Dec 2009 01:00:30 +0000 (01:00 +0000)
committertsukahara <tsukahara@1ed66053-1c2d-0410-8867-f7571e6e31d3>
Mon, 28 Dec 2009 01:00:30 +0000 (01:00 +0000)
git-svn-id: http://10.144.169.20/repos/um/branches/l7vsd-3.x-ramiel@9460 1ed66053-1c2d-0410-8867-f7571e6e31d3

l7vsd/src/l7vsd.cpp

index 82e9d26..d862c80 100644 (file)
@@ -705,30 +705,84 @@ void    l7vsd::reload_parameter( const PARAMETER_COMPONENT_TAG* comp, error_code
 
     Parameter    param;
     Logger        logger_instance;
-    if( param.read_file( *comp ) ){
-        switch( *comp ){
-        case    PARAM_COMP_REPLICATION:
+
+    switch( *comp ){
+    case    PARAM_COMP_REPLICATION:
+        if( param.read_file( *comp  )){
             rep->reset();
-            break;
-        case    PARAM_COMP_LOGGER:
-            logger_instance.loadConf();
-            break;
-        case    PARAM_COMP_SNMPAGENT:
+        } else {
+            std::string msg("parameter reload failed.");
+            Logger::putLogError(LOG_CAT_L7VSD_PARAMETER, 7, msg, __FILE__, __LINE__);
+            err.setter( true, msg );
+            return;
+        }
+        
+        break;
+    case    PARAM_COMP_LOGGER:
+        if( param.read_file( *comp  )){
+        
+            try {
+                logger_instance.loadConf();
+            }catch(...){
+            }
+            
+        } else {
+            std::string msg("parameter reload failed.");
+            Logger::putLogError(LOG_CAT_L7VSD_PARAMETER, 7, msg, __FILE__, __LINE__);
+            err.setter( true, msg );
+            return;
+        }
+
+        break;
+    case    PARAM_COMP_SNMPAGENT:
+        if( param.read_file( *comp  )){
             bridge->reload_config();
-            break;
-        default:
-            std::string msg("parameter reload command not found.");
-            Logger::putLogWarn(LOG_CAT_L7VSD_PARAMETER, 1, msg, __FILE__, __LINE__);
+        } else {
+            std::string msg("parameter reload failed.");
+            Logger::putLogError(LOG_CAT_L7VSD_PARAMETER, 7, msg, __FILE__, __LINE__);
             err.setter( true, msg );
             return;
         }
-    }
-    else{
-        std::string msg("parameter reload failed.");
-        Logger::putLogError(LOG_CAT_L7VSD_PARAMETER, 7, msg, __FILE__, __LINE__);
+
+        break;
+    case    PARAM_COMP_ALL:
+        if( !param.read_file( PARAM_COMP_REPLICATION  )){
+            std::string msg("parameter reload failed.");
+            Logger::putLogError(LOG_CAT_L7VSD_PARAMETER, 7, msg, __FILE__, __LINE__);
+            err.setter( true, msg );
+            return;
+        }
+        
+        if( !param.read_file( PARAM_COMP_LOGGER  )){
+            std::string msg("parameter reload failed.");
+            Logger::putLogError(LOG_CAT_L7VSD_PARAMETER, 7, msg, __FILE__, __LINE__);
+            err.setter( true, msg );
+            return;
+        }
+        
+        if( !param.read_file( PARAM_COMP_SNMPAGENT  )){
+            std::string msg("parameter reload failed.");
+            Logger::putLogError(LOG_CAT_L7VSD_PARAMETER, 7, msg, __FILE__, __LINE__);
+            err.setter( true, msg );
+            return;
+        }
+        
+        rep->reset();
+        try {
+            logger_instance.loadConf();
+        }catch(...){
+        }
+        bridge->reload_config();
+    
+        break;
+    default:
+        std::string msg("parameter reload command not found.");
+        Logger::putLogWarn(LOG_CAT_L7VSD_PARAMETER, 1, msg, __FILE__, __LINE__);
         err.setter( true, msg );
         return;
     }
+
+
 }
 
 //! vs_list search function