Pārlūkot izejas kodu

Upgrade Procedures completed

Sasan Torabkheslat 5 gadi atpakaļ
vecāks
revīzija
47cc8e0710
3 mainītis faili ar 74 papildinājumiem un 136 dzēšanām
  1. 40 117
      .idea/workspace.xml
  2. 34 18
      main.cpp
  3. 0 1
      soapcwmpService.cpp

+ 40 - 117
.idea/workspace.xml

@@ -32,8 +32,8 @@
       <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/main.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="278">
-              <caret line="673" column="20" selection-start-line="673" selection-start-column="20" selection-end-line="673" selection-end-column="20" />
+            <state relative-caret-position="366">
+              <caret line="609" column="34" selection-start-line="609" selection-start-column="34" selection-end-line="609" selection-end-column="34" />
               <folding>
                 <element signature="e#604#788#0" />
                 <element signature="e#790#856#0" />
@@ -46,7 +46,8 @@
                 <element signature="e#13027#33145#0" />
                 <element signature="e#16266#16299#0" />
                 <element signature="e#25273#25300#0" />
-                <element signature="e#33694#33915#0" />
+                <element signature="e#33745#33966#0" />
+                <element signature="e#37122#38422#0" />
               </folding>
             </state>
           </provider>
@@ -55,54 +56,10 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/soapcwmpService.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="594">
-              <caret line="1029" selection-start-line="1029" selection-end-line="1029" />
+            <state relative-caret-position="223">
+              <caret line="291" column="20" lean-forward="true" selection-start-line="291" selection-start-column="20" selection-end-line="291" selection-end-column="20" />
               <folding>
                 <element signature="e#0#614#0" />
-                <element signature="e#646#784#0" />
-                <element signature="e#786#889#0" />
-                <element signature="e#891#1037#0" />
-                <element signature="e#1039#1175#0" />
-                <element signature="e#1177#1327#0" />
-                <element signature="e#1329#1440#0" />
-                <element signature="e#1442#2236#0" />
-                <element signature="e#2238#2321#0" />
-                <element signature="e#2323#2485#0" />
-                <element signature="e#2513#2714#0" />
-                <element signature="e#2723#2962#0" />
-                <element signature="e#2964#3039#0" />
-                <element signature="e#3041#3128#0" />
-                <element signature="e#3130#3269#0" />
-                <element signature="e#3271#3458#0" />
-                <element signature="e#3460#3603#0" />
-                <element signature="e#3605#3796#0" />
-                <element signature="e#3798#3882#0" />
-                <element signature="e#3922#4016#0" />
-                <element signature="e#4025#4138#0" />
-                <element signature="e#4147#4211#0" />
-                <element signature="e#4213#4854#0" />
-                <element signature="e#4856#4933#0" />
-                <element signature="e#4953#5424#0" />
-                <element signature="e#5921#6035#0" />
-                <element signature="e#6048#6106#0" />
-                <element signature="e#6243#7177#0" />
-                <element signature="e#8145#8205#0" />
-                <element signature="e#10409#12427#0" />
-                <element signature="e#12429#14471#0" />
-                <element signature="e#14473#15281#0" />
-                <element signature="e#15283#17325#0" />
-                <element signature="e#17327#19465#0" />
-                <element signature="e#19467#21605#0" />
-                <element signature="e#23411#25165#0" />
-                <element signature="e#25167#26993#0" />
-                <element signature="e#26995#28893#0" />
-                <element signature="e#28895#30817#0" />
-                <element signature="e#30819#32573#0" />
-                <element signature="e#32575#34519#0" />
-                <element signature="e#34521#36499#0" />
-                <element signature="e#36673#38418#0" />
-                <element signature="e#38420#39375#0" />
-                <element signature="e#39377#39564#0" />
               </folding>
             </state>
           </provider>
@@ -111,7 +68,7 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/soapcwmpService.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="526">
+            <state relative-caret-position="3315">
               <caret line="221" column="34" selection-start-line="221" selection-start-column="34" selection-end-line="221" selection-end-column="34" />
               <folding>
                 <element signature="e#0#612#0" />
@@ -124,7 +81,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>WANEthernetInterfaceConfig</find>
       <find>gSOAP/2.8</find>
       <find>Data required for operation</find>
       <find>SOAP_NO_DATA</find>
@@ -150,9 +106,10 @@
       <find>host</find>
       <find>Sassan</find>
       <find>204</find>
-      <find>CheckQueue</find>
       <find>CheckQueue...</find>
       <find>Debug</find>
+      <find>Method :</find>
+      <find>CheckQueue</find>
       <find>cerr</find>
     </findStrings>
   </component>
@@ -197,7 +154,6 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
-      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -209,6 +165,7 @@
           <select />
         </subPane>
       </pane>
+      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -280,7 +237,8 @@
       <workItem from="1577725955348" duration="10970000" />
       <workItem from="1577875009389" duration="1490000" />
       <workItem from="1577888800205" duration="3932000" />
-      <workItem from="1578124895054" duration="43172000" />
+      <workItem from="1578124895054" duration="43427000" />
+      <workItem from="1579512098384" duration="3676000" />
     </task>
     <task id="LOCAL-00001" summary="Disable InfluxDB">
       <created>1572183659791</created>
@@ -324,11 +282,18 @@
       <option name="project" value="LOCAL" />
       <updated>1578234461233</updated>
     </task>
-    <option name="localTasksCounter" value="7" />
+    <task id="LOCAL-00007" summary="Add Database for Inform and CheckQueue (phase 1)&#10;                                  &#10;                                  Inform : Done&#10;                                  &#10;                                  CheckQueue: In progress....&#10;                                  &#10;                                  exception handling on json parsing&#10;                                  &#10;                                  update database after sending task to cpe">
+      <created>1578299912171</created>
+      <option name="number" value="00007" />
+      <option name="presentableId" value="LOCAL-00007" />
+      <option name="project" value="LOCAL" />
+      <updated>1578299912171</updated>
+    </task>
+    <option name="localTasksCounter" value="8" />
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="301706000" />
+    <option name="totallyTimeSpent" value="305637000" />
   </component>
   <component name="TodoView" selected-index="3">
     <todo-panel id="selected-file">
@@ -341,10 +306,11 @@
   </component>
   <component name="ToolWindowManager">
     <frame x="1280" y="-181" width="1920" height="1080" extended-state="6" />
+    <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.46380696" visible="true" weight="0.17891374" />
+      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.46380696" visible="true" weight="0.18051118" />
       <window_info id="Structure" order="1" sideWeight="0.536193" side_tool="true" weight="0.17891374" />
-      <window_info id="Favorites" order="2" sideWeight="0.536193" side_tool="true" visible="true" weight="0.17891374" />
+      <window_info id="Favorites" order="2" sideWeight="0.536193" side_tool="true" weight="0.17891374" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" weight="0.32673267" />
       <window_info anchor="bottom" id="Run" order="2" weight="0.45148516" />
@@ -767,16 +733,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/soapcwmpService.h">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="526">
-          <caret line="221" column="34" selection-start-line="221" selection-start-column="34" selection-end-line="221" selection-end-column="34" />
-          <folding>
-            <element signature="e#0#612#0" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/soapStub.h">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="240">
@@ -791,64 +747,30 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/soapcwmpService.h">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="3315">
+          <caret line="221" column="34" selection-start-line="221" selection-start-column="34" selection-end-line="221" selection-end-column="34" />
+          <folding>
+            <element signature="e#0#612#0" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/soapcwmpService.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="594">
-          <caret line="1029" selection-start-line="1029" selection-end-line="1029" />
+        <state relative-caret-position="223">
+          <caret line="291" column="20" lean-forward="true" selection-start-line="291" selection-start-column="20" selection-end-line="291" selection-end-column="20" />
           <folding>
             <element signature="e#0#614#0" />
-            <element signature="e#646#784#0" />
-            <element signature="e#786#889#0" />
-            <element signature="e#891#1037#0" />
-            <element signature="e#1039#1175#0" />
-            <element signature="e#1177#1327#0" />
-            <element signature="e#1329#1440#0" />
-            <element signature="e#1442#2236#0" />
-            <element signature="e#2238#2321#0" />
-            <element signature="e#2323#2485#0" />
-            <element signature="e#2513#2714#0" />
-            <element signature="e#2723#2962#0" />
-            <element signature="e#2964#3039#0" />
-            <element signature="e#3041#3128#0" />
-            <element signature="e#3130#3269#0" />
-            <element signature="e#3271#3458#0" />
-            <element signature="e#3460#3603#0" />
-            <element signature="e#3605#3796#0" />
-            <element signature="e#3798#3882#0" />
-            <element signature="e#3922#4016#0" />
-            <element signature="e#4025#4138#0" />
-            <element signature="e#4147#4211#0" />
-            <element signature="e#4213#4854#0" />
-            <element signature="e#4856#4933#0" />
-            <element signature="e#4953#5424#0" />
-            <element signature="e#5921#6035#0" />
-            <element signature="e#6048#6106#0" />
-            <element signature="e#6243#7177#0" />
-            <element signature="e#8145#8205#0" />
-            <element signature="e#10409#12427#0" />
-            <element signature="e#12429#14471#0" />
-            <element signature="e#14473#15281#0" />
-            <element signature="e#15283#17325#0" />
-            <element signature="e#17327#19465#0" />
-            <element signature="e#19467#21605#0" />
-            <element signature="e#23411#25165#0" />
-            <element signature="e#25167#26993#0" />
-            <element signature="e#26995#28893#0" />
-            <element signature="e#28895#30817#0" />
-            <element signature="e#30819#32573#0" />
-            <element signature="e#32575#34519#0" />
-            <element signature="e#34521#36499#0" />
-            <element signature="e#36673#38418#0" />
-            <element signature="e#38420#39375#0" />
-            <element signature="e#39377#39564#0" />
           </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/main.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="278">
-          <caret line="673" column="20" selection-start-line="673" selection-start-column="20" selection-end-line="673" selection-end-column="20" />
+        <state relative-caret-position="366">
+          <caret line="609" column="34" selection-start-line="609" selection-start-column="34" selection-end-line="609" selection-end-column="34" />
           <folding>
             <element signature="e#604#788#0" />
             <element signature="e#790#856#0" />
@@ -861,7 +783,8 @@
             <element signature="e#13027#33145#0" />
             <element signature="e#16266#16299#0" />
             <element signature="e#25273#25300#0" />
-            <element signature="e#33694#33915#0" />
+            <element signature="e#33745#33966#0" />
+            <element signature="e#37122#38422#0" />
           </folding>
         </state>
       </provider>

+ 34 - 18
main.cpp

@@ -21,8 +21,8 @@
 
 using json = nlohmann::json;
 
-//int port = 7547;
-int port = 8001;
+int port = 7547;
+//int port = 8001;
 
 int POST_handler(struct soap *soap);
 
@@ -542,6 +542,14 @@ int cwmpService::Inform(struct _cwmp__Inform *cwmp__Inform,
     tr069_json["InternetGatewayDevice"]["WEB_GUI"]["Network"]["LTE_Setting"]["Status"]["DL_Frequency"]["_value"] = tr069["DL_Frequency"];
     tr069_json["InternetGatewayDevice"]["WEB_GUI"]["Network"]["LTE_Setting"]["Status"]["UL_Frequency"]["_value"] = tr069["UL_Frequency"];
 //</editor-fold>
+    std::ofstream json_data;
+
+    second = time(NULL);
+    strstream << second;
+    strstream >> _time;
+    json_data.open("/var/tmp/json_data/" + url_encode(_id) + "_" + _time, std::ios_base::app);
+    json_data << tr069_json.dump(4);
+
     mysqlpp::Connection conn(false);
     mysqlpp::Query query = conn.query();
     try {
@@ -552,19 +560,6 @@ int cwmpService::Inform(struct _cwmp__Inform *cwmp__Inform,
         std::cerr << "Error on IMSI-" << imsi << " :" << er.what() << std::endl;
     }
     conn.disconnect();
-    std::ofstream json_data;
-//            time_t second;
-    second = time(NULL);
-    strstream << second;
-    strstream >> _time;
-    json_data.open("/var/tmp/json_data/" + url_encode(_id) + "_" + _time, std::ios_base::app);
-    json_data << tr069_json.dump(4);
-//
-//    for(auto elem : tr069)
-//    {
-//        std::cerr<<elem.first<<"\t"<<elem.second<<std::endl;
-//    }
-//    std::cerr<< "Size: "<<tr069.size()<<std::endl;
     return SOAP_OK;
 }
 
@@ -628,7 +623,7 @@ int cwmpService::CheckQueue(struct soap *soap, cwmpService *cwmpService1) {
     actionParameters = json::parse(s);
     if (action == 1) {
         try {
-//            std::cerr << actionParameters.dump(4) << std::endl;
+            std::cerr << "sending download request for " << soap->host << std::endl;
             int DelaySeconds = 1;
             std::string str = actionParameters["FileType"];
             char *FileType = new char[str.length() + 1];
@@ -666,12 +661,33 @@ int cwmpService::CheckQueue(struct soap *soap, cwmpService *cwmpService1) {
 
 int cwmpService::CustomeDownloadResponse(struct soap *pSoap, cwmpService *pService) {
 
-    std::cerr << "Upgrade Response recieved." << std::endl;
+    std::cerr << "Upgrade Response received." << std::endl;
+    std::stringstream strValue;
+    std::string IMSI{}, s, id;
     soap->error = 0;
     mysqlpp::Connection conn(false);
+    mysqlpp::Query query = conn.query();
     mysqlpp::Query _query = conn.query();
-    _query << "update TaskList set Active=1 where id='" << "';";
+    try {
+        conn.connect(DATABASE, HOST, USER, PASSWORD, PORT);
+        query
+                << "select t.id  from TaskList as t join Device_List as d on t.IMSI=d.IMSI where d.IP='"
+                << soap->host << "' and t.response is  null and t.Active=1 order by id limit 1;";
+        mysqlpp::StoreQueryResult result = query.store();
+        if (result.size() == 0)
+            return soap->error = 204;
+        mysqlpp::StoreQueryResult::const_iterator it;
+        for (it = result.begin(); it != result.end(); ++it) {
+            mysqlpp::Row row = *it;
+            strValue << row["id"];
+            strValue >> id;
+        }
+    } catch (mysqlpp::BadQuery er) { // handle any connection or
+        std::cerr << "Error on CPE with IP: " << soap->host << " :" << er.what() << std::endl;
+    }
+    _query << "update TaskList set Response='Done' where id='" << id << "';";
     _query.execute();
+    conn.disconnect();
 //    struct _cwmp__DownloadResponse cwmp__downloadResponse;
 //    if ((soap->mode & SOAP_IO_LENGTH)) {
 //        if (soap_envelope_begin_out(soap)

+ 0 - 1
soapcwmpService.cpp

@@ -292,7 +292,6 @@ int cwmpService::dispatch(struct soap *soap) {
         return CheckQueue(soap, this);
     }
     soap_peek_element(soap);
-    std::cerr << "Method : " << soap->tag << std::endl;
     if (!soap_match_tag(soap, soap->tag, "cwmp:GetParameterNames"))
         return serve___cwmp__GetParameterNames(soap, this);
     if (!soap_match_tag(soap, soap->tag, "cwmp:GetParameterValues"))