Error handling for unknown service.
authorBjoern Sikora <bjoern.sikora@intra2net.com>
Tue, 28 Jul 2009 10:53:05 +0000 (12:53 +0200)
committerBjoern Sikora <bjoern.sikora@intra2net.com>
Tue, 28 Jul 2009 10:53:05 +0000 (12:53 +0200)
src/config.cpp

index 71742c9..4b3fa8c 100644 (file)
@@ -91,7 +91,11 @@ const int Config::parse_cmd_line(int argc, char *argv[])
 
             //TODO: convert protocol option to lowercase
 
-            Services.push_back(create_service(protocol,host,login,password));
+            ServicePtr service = create_service(protocol,host,login,password);
+            if ( service != NULL )
+            {
+                Services.push_back(service);
+            }
         }
         else
         {
@@ -130,7 +134,9 @@ ServicePtr Config::create_service(const string &protocol,const string &host, con
     }
     else
     {
-        // TODO: error handling for unknown protocol
+        cout << "Could not find specified protocol: " << protocol << endl;
+        ServicePtr service;
+        return service;
     }
 }
 
@@ -209,7 +215,19 @@ const int Config::load_config_from_files(const string& config_path)
                             if(vm.count("service.protocol") && vm.count("service.host") && vm.count("service.login") && vm.count("service.password"))
                             {
                                 // create the corresponding service
-                                Services.push_back(create_service(vm["service.protocol"].as<string>(),vm["service.host"].as<string>(),vm["service.login"].as<string>(),vm["service.password"].as<string>()));
+                                string protocol = vm["service.protocol"].as<string>();
+                                string host = vm["service.host"].as<string>();
+                                string login = vm["service.login"].as<string>();
+                                string password = vm["service.password"].as<string>();
+
+                                // TODO: convert protocol to lowercase
+                                protocol = tolower(protocol.c_str());
+
+                                ServicePtr service = create_service(protocol,host,login,password);
+                                if ( service != NULL )
+                                {
+                                    Services.push_back(service);
+                                }
                             }
                         }
                         catch ( po::unknown_option e )