[bugfix]api-100 api-117 api-118

Change-Id: I196f90a5722c83821761415a130750bbc0d9614b
diff --git a/framework/lynq-ril-service/src/data/data_gdbus.cpp b/framework/lynq-ril-service/src/data/data_gdbus.cpp
index cd62eb1..4b12ffd 100755
--- a/framework/lynq-ril-service/src/data/data_gdbus.cpp
+++ b/framework/lynq-ril-service/src/data/data_gdbus.cpp
@@ -61,6 +61,33 @@
 GDBusProxy *proxy = NULL;
 MTK_Data_Call_Response_v1 req_response;
 MTK_Data_Call_Response_v1 urc_response;
+
+/*Warren add for t103 szzt atsvc 2022/1/5 start*/
+int lynqUpdateApnStatus(char *apn,char *apntype,int pdnState,char *ifname)
+{
+    char BUF[32] = {};
+    int len = -1;
+    if(pdnState==PDN_CONNECTED)
+    {
+        sprintf(BUF,"+LAPNST:%s,%s,%d,%s\n",apn,apntype,pdnState,ifname);
+        printf("eBuf:%s\n",BUF);
+        len = write(ttyGS3_fd,BUF,strlen(BUF));
+    }
+    else
+    {
+        sprintf(BUF,"+LAPNST:%s,%s,%d\n",apn,apntype,pdnState);
+        printf("eBuf:%s\n",BUF);
+        len = write(ttyGS3_fd,BUF,strlen(BUF));
+    }
+    if(len < 0)
+    {
+        perror("lynq resp write:");
+        return -1;
+    }
+    return 0;
+}
+/*Warren add for t103 szzt atsvc 2022/1/5 end*/
+
 /*Warren add for t800 ril service 2021/12/25 start*/
 int lynq_data_management(MTK_Data_Call_Response_v1 *urc_response)
 {
@@ -91,6 +118,11 @@
                     apn_table[i].used=0;
                     apn_table[i].netId=0;
                     apn_count--;
+                    int n = write(ttyGS3_fd,"OK\n",3);
+                    if(n<0)
+                    {
+                        perror("lynq resp write:");
+                    }
                     p.writeInt32 (1);
                     p.writeInt32 (LYNQ_URC_DATA_CALL_STATUS_IND);
                     p.writeInt32 (0);//temporary plan
@@ -126,6 +158,7 @@
                 apn_table[apn_count].used=1;
                 apn_table[apn_count].netId=urc_response->netId;
                 apn_count++;
+                lynqUpdateApnStatus(urc_response->apnName,urc_response->apnType,urc_response->pdnState,urc_response->ifname);
                 p.writeInt32(1);
                 p.writeInt32(LYNQ_URC_DATA_CALL_STATUS_IND);
                 p.writeInt32(0);//temporary plan
@@ -148,6 +181,7 @@
                         if(apn_table[i].netId!=urc_response->netId)
                         {
                             apn_table[i].netId=urc_response->netId;
+                            lynqUpdateApnStatus(urc_response->apnName,urc_response->apnType,urc_response->pdnState,urc_response->ifname);
                             memcpy(iface_t,apn_table[i].ifaceName,strlen(apn_table[i].ifaceName)+1);
                             memcpy(apnType_t,apn_table[i].apntype,strlen(apn_table[i].apntype)+1);
                             memcpy(apn_t,apn_table[i].apn,strlen(apn_table[i].apn)+1);
@@ -197,6 +231,7 @@
                         apn_table[lable].used=1;
                         apn_table[lable].netId=urc_response->netId;
                         apn_count++;
+                        lynqUpdateApnStatus(urc_response->apnName,urc_response->apnType,urc_response->pdnState,urc_response->ifname);
                         p.writeInt32(1);
                         p.writeInt32(LYNQ_URC_DATA_CALL_STATUS_IND);
                         p.writeInt32(0);//temporary plan
@@ -235,6 +270,7 @@
             {
                 //sprintf(Buf,"+LAPNST:%s,%s,%d\n",apn_table[i].apn,apn_table[i].apntype,urc_response->pdnState);
                 //printf("Buf:%s\n",Buf);
+                lynqUpdateApnStatus(apn_table[i].apn,apn_table[i].apntype,urc_response->pdnState,NULL);
                 memcpy(iface_t,apn_table[i].ifaceName,strlen(apn_table[i].ifaceName)+1);
                 memcpy(apnType_t,apn_table[i].apntype,strlen(apn_table[i].apntype)+1);
                 memcpy(apn_t,apn_table[i].apn,strlen(apn_table[i].apn)+1);
@@ -426,6 +462,7 @@
     return 1;
 }
 
+
 void proxy_signals_on_signal (GDBusProxy  *proxy,
                               const gchar *sender_name,
                               const gchar *signal_name,