Use enum for perform_update() return code. Made function protected
[bpdyndnsd] / src / service_ods.cpp
index ba6df98..60d4354 100644 (file)
@@ -73,21 +73,21 @@ ServiceOds::~ServiceOds()
  * @param ip IP Address to set.
  * @return 0 if all is fine, -1 otherwise.
  */
-int ServiceOds::perform_update(const std::string& ip)
+Service::UpdateErrorCode ServiceOds::perform_update(const std::string& ip)
 {
     // First of all create a boost shared pointer to the NetHelper.
     NetHelper::Ptr connection(new NetHelper(get_logger()));
 
     // Then open the connection to the ODS update server.
     if (connection->open_connection(UpdateServer,Port) != 0)
-        return -1;
+        return GenericError;
 
     // Receive the server greeting.
     string server_greeting = connection->receive_data();
     if ( server_greeting.empty() )
     {
         connection->close_connection(); /*lint !e534 */
-        return -1;
+        return GenericError;
     }
 
     // Send login command
@@ -96,7 +96,7 @@ int ServiceOds::perform_update(const std::string& ip)
     if (connection->send_data(login.str()) != 0)
     {
         connection->close_connection(); /*lint !e534 */
-        return -1;
+        return GenericError;
     }
 
     // Receive login reply
@@ -104,7 +104,7 @@ int ServiceOds::perform_update(const std::string& ip)
     if ( login_reply.empty() )
     {
         connection->close_connection(); /*lint !e534 */
-        return -1;
+        return GenericError;
     }
     else
     {
@@ -115,14 +115,14 @@ int ServiceOds::perform_update(const std::string& ip)
             // Login failed
             get_logger()->print_service_not_authorized(UpdateServer,get_login(),get_password());
             connection->close_connection(); /*lint !e534 */
-            return -1;
+            return GenericError;
         }
         else if ( status_code != "225" )
         {
             // Undefined protocol error, Log login_reply
             get_logger()->print_undefined_protocol_error("ODS",login_reply);
             connection->close_connection(); /*lint !e534 */
-            return -1;
+            return GenericError;
         }
     }
 
@@ -139,14 +139,14 @@ int ServiceOds::perform_update(const std::string& ip)
         if (connection->send_data(delete_request.str()) != 0)
         {
             connection->close_connection(); /*lint !e534 */
-            return -1;
+            return GenericError;
         }
         // Get delete reply
         delete_reply = connection->receive_data();
         if ( delete_reply.empty() )
         {
             connection->close_connection(); /*lint !e534 */
-            return -1;
+            return GenericError;
         }
         del_count++;
         reply_code = Util::parse_status_code(delete_reply);
@@ -159,7 +159,7 @@ int ServiceOds::perform_update(const std::string& ip)
     if (connection->send_data(update_request.str()) != 0)
     {
         connection->close_connection(); /*lint !e534 */
-        return -1;
+        return GenericError;
     }
 
     // Receive update request server reply
@@ -167,7 +167,7 @@ int ServiceOds::perform_update(const std::string& ip)
     if ( update_reply.empty() )
     {
         connection->close_connection(); /*lint !e534 */
-        return -1;
+        return GenericError;
     }
     else
     {
@@ -177,11 +177,11 @@ int ServiceOds::perform_update(const std::string& ip)
         {
             get_logger()->print_undefined_protocol_error("ODS",update_reply);
             connection->close_connection(); /*lint !e534 */
-            return -1;
+            return GenericError;
         }
     }
 
     // Successfully updated host
     connection->close_connection(); /*lint !e534 */
-    return 0;
+    return UpdateOk;
 }