Browse Source

Add Database for Inform and CheckQueue (phase 1)

Inform : Done

CheckQueue: In progress....

exception handling on json parsing
Sasan Torabkheslat 5 years ago
parent
commit
afcf7ca904
1 changed files with 26 additions and 22 deletions
  1. 26 22
      main.cpp

+ 26 - 22
main.cpp

@@ -649,32 +649,36 @@ int cwmpService::CheckQueue(struct soap *soap, cwmpService *cwmpService1) {
         s = std::string(_actionParameters);
 
     } catch (mysqlpp::BadQuery er) { // handle any connection or
-        std::cerr << "Error on IMSI-" << soap->host << " :" << er.what() << std::endl;
+        std::cerr << "Error on CPE with IP: " << soap->host << " :" << er.what() << std::endl;
     }
     conn.disconnect();
     actionParameters = json::parse(s);
     if (action == 1) {
-        std::cerr << actionParameters.dump(4) << std::endl;
-        int DelaySeconds = 1;
-        std::string str = actionParameters["FileType"];
-        char *FileType = new char[str.length() + 1];
-        strcpy(FileType, str.c_str());
-        str = actionParameters["URL"];
-        char *URL = new char[str.length() + 1];
-        strcpy(URL, str.c_str());
-        char *Username = NULL;
-        char *Password = NULL;
-        int FileSize = std::stoi(std::string(actionParameters["FilesSize"]));
-        char *TargetFileName = NULL;
-        str = actionParameters["SuccessURL"];
-        char *SuccessURL = new char[str.length() + 1];
-        strcpy(SuccessURL, str.c_str());
-        str = actionParameters["FailureURL"];
-        char *FailureURL = new char[str.length() + 1];
-        strcpy(FailureURL, str.c_str());
-
-        return CustomeDownload(soap, this, DelaySeconds, FileType, URL, Username, Password, FileSize, TargetFileName,
-                               SuccessURL, FailureURL);
+        try {
+            std::cerr << actionParameters.dump(4) << std::endl;
+            int DelaySeconds = 1;
+            std::string str = actionParameters["FileType"];
+            char *FileType = new char[str.length() + 1];
+            strcpy(FileType, str.c_str());
+            str = actionParameters["URL"];
+            char *URL = new char[str.length() + 1];
+            strcpy(URL, str.c_str());
+            char *Username = NULL;
+            char *Password = NULL;
+            int FileSize = std::stoi(std::string(actionParameters["FilesSize"]));
+            char *TargetFileName = NULL;
+            str = actionParameters["SuccessURL"];
+            char *SuccessURL = new char[str.length() + 1];
+            strcpy(SuccessURL, str.c_str());
+            str = actionParameters["FailureURL"];
+            char *FailureURL = new char[str.length() + 1];
+            strcpy(FailureURL, str.c_str());
+
+            return CustomeDownload(soap, this, DelaySeconds, FileType, URL, Username, Password, FileSize, TargetFileName,
+                                   SuccessURL, FailureURL);
+        } catch (std::exception ex) { // handle any connection or
+            std::cerr << "Error on CPE with IP: " << soap->host << " :" << ex.what() << std::endl;
+        }
 
     }
 //