Merge "[Feature][T106]version update to T106CN-ZS03.V2.01.01.02P52U02.AP.09.02_CAP.09.02"
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-sms-demo/files/lynq-qser-sms-demo.cpp b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-sms-demo/files/lynq-qser-sms-demo.cpp
index ba29e2d..0cb7976 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-sms-demo/files/lynq-qser-sms-demo.cpp
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-sms-demo/files/lynq-qser-sms-demo.cpp
@@ -30,7 +30,7 @@
 int (*qser_sms_setsmscenteraddress)(sms_client_handle_type h_sms, QSER_sms_service_center_cfg_t *get_sca_cfg);

 

 void qser_sms_handler(QSER_SMS_MsgRef msgRef, void* contextPtr) {

-    printf("[%s-%d] sms handler, msgRef->sms_data = %s\n", __FUNCTION__, __LINE__, msgRef->sms_data);

+    printf("[%s-%d] sms handler, msgRef->sms_data = %s,addr =%s\n", __FUNCTION__, __LINE__, msgRef->sms_data, msgRef->src_addr);

 }

 

 bool isNumeric(char *phnum) {

diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-led/lynq_led.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-led/lynq_led.cpp
index 66ff18d..453a29c 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-led/lynq_led.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-led/lynq_led.cpp
@@ -15,6 +15,8 @@
 {

     char buf_netled[BUF_LEN] = "";

 

+    if(led_mode != 0 && led_mode != 1)

+        return -1;

     sprintf(buf_netled,"%s.%s.%s=%d", LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_STATUSLED_KEY, led_mode);

     lynq_uci_set(buf_netled);

 

@@ -25,8 +27,11 @@
 {

     char buf_statusled[BUF_LEN] = "";

 

+    if(led_mode != 0 && led_mode != 1)

+        return -1;

     sprintf(buf_statusled,"%s.%s.%s=%d", LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_KEY, led_mode);

     lynq_uci_set(buf_statusled);

 

+    system("/usr/bin/lynq-led-sev");

     return 0;

 }
\ No newline at end of file
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/lynq-qser-data.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/lynq-qser-data.cpp
index 47b5562..2928d8d 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/lynq-qser-data.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/lynq-qser-data.cpp
@@ -990,6 +990,10 @@
     if (NULL == data_call || NULL == err)
     {
         LYERRLOG("call start incoming paramters error");
+        if(err != NULL)
+        {
+            *err = QSER_DATA_CALL_ERROR_INVALID_PARAMS;
+        }
         return ret;
     }
     if (data_call->profile_idx == 0)
@@ -1004,12 +1008,13 @@
         if (ret != 0)
         {
             LYERRLOG("qser_apn_get error");
+            *err = QSER_DATA_CALL_ERROR_INVALID_PARAMS;
             return ret;
         }
         judge_pdp_type(apn_info.pdp_type,pdptype);
         ret = lynq_setup_data_call_sp(&handle,apn_info.apn_name,apn_info.apn_type,apn_info.username,apn_info.password,NULL,pdptype,pdptype);
     }
-    if (ret < 0)
+    if (ret != 0)
     {
         *err = QSER_DATA_CALL_ERROR_INVALID_PARAMS;
     }
@@ -1026,12 +1031,18 @@
         LYERRLOG("call stop incoming paramters error");
         return ret;
     }
-    data_call_handle_get(profile_idx,&handle);
+    ret = data_call_handle_get(profile_idx,&handle);
+    if(ret != 0)
+    {
+        LYERRLOG("datacall handle get error");
+        *err = QSER_DATA_CALL_ERROR_INVALID_PARAMS;
+        return ret;
+    }
     ret = lynq_deactive_data_call(&handle);
-    if (ret < 0)
+    if (ret != 0)
     {
         *err = QSER_DATA_CALL_ERROR_INVALID_PARAMS;
-        return *err;
+        return ret;
     }
     return ret;
 }
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/lynq_qser_sms.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/lynq_qser_sms.cpp
index fb8a686..a86d8a5 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/lynq_qser_sms.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/lynq_qser_sms.cpp
@@ -43,12 +43,17 @@
             {
                 QSER_sms_info.storage_index = handle;
                 QSER_sms_info.format = (QSER_SMS_T)charset;
+                memset(QSER_sms_info.sms_data, 0, sizeof(QSER_sms_info.sms_data));
+                memset(QSER_sms_info.src_addr, 0, sizeof(QSER_sms_info.src_addr));
+                memcpy(QSER_sms_info.src_addr, teleNum, strlen(teleNum));
                 memcpy(QSER_sms_info.sms_data, message, smslen);
                 QSER_sms_info.sms_data[smslen] = '\0';
                 QSER_sms_info.sms_data_len = smslen;
                 if(total > 1)
                 {
                     QSER_sms_info.user_data_head_valid = 1;
+                    QSER_sms_info.user_data_head.seg_number = current;
+                    QSER_sms_info.user_data_head.total_segments = total;
                 }
                 else
                 {
diff --git a/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/data.cpp b/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/data.cpp
index b3d1971..01ba78e 100755
--- a/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/data.cpp
+++ b/cap/zx297520v3/src/lynq/packages/apps/Mobiletek_Tester_RDIT/data.cpp
@@ -167,6 +167,7 @@
     memcpy(datacall.cdma_password, argv[5], QSER_APN_PASSWORD_SIZE);    

     

     ret = qser_data_call_start(&datacall, &err);

+    printf("LYNQ_QSER_SETUP_DATA_CALL err = %d\n", err);

     printf("%s%d\n",TEST_RESULT,ret);

     return ret;

 }

@@ -197,6 +198,7 @@
     }

 

     ret = qser_data_call_stop(profile_idx_int, ip_family, &err);

+    printf("LYNQ_QSER_DEACTIVATE_DATA_CALL err = %d\n", err);

     printf("%s%d\n",TEST_RESULT,ret);

     return ret;

 }

diff --git a/cap/zx297520v3/src/lynq/packages/apps/lynq-led-demo/lynq_led-demo.c b/cap/zx297520v3/src/lynq/packages/apps/lynq-led-demo/lynq_led-demo.c
index 706aa6f..f86f8e0 100755
--- a/cap/zx297520v3/src/lynq/packages/apps/lynq-led-demo/lynq_led-demo.c
+++ b/cap/zx297520v3/src/lynq/packages/apps/lynq-led-demo/lynq_led-demo.c
@@ -9,12 +9,12 @@
 int main(int argc, const char *argv[])
 {
     int ret = 0;
-    ret = lynq_set_netled_on(1);
+    ret = lynq_set_netled_on(atoi(argv[1]));
     if(ret){
         printf("[%s-%d] lynq_set_netled_on error\n", __FUNCTION__, __LINE__);
         return -1;
     }
-    ret = lynq_set_statusled_on(1);
+    ret = lynq_set_statusled_on(atoi(argv[1]));
     if(ret){
         printf("[%s-%d] lynq_set_statusled_on error\n", __FUNCTION__, __LINE__);
         return -1;