[Bugfix][TAT-26][AT]The result of AT+LEAPNMOD is incomplete when the apn information is returned
Change-Id: I200ecd16fa969677a213610d3e8f4a13d74f1bf4
diff --git a/framework/lynq-ril-service/src/atci/ATCI.cpp b/framework/lynq-ril-service/src/atci/ATCI.cpp
index 6d5ecf5..a8f6188 100755
--- a/framework/lynq-ril-service/src/atci/ATCI.cpp
+++ b/framework/lynq-ril-service/src/atci/ATCI.cpp
@@ -479,7 +479,7 @@
}
static int atci_send_data(char *data)
{
- char buf[128];
+ char buf[256];
int data_len = 0;
memset(buf, 0, sizeof(buf));
if(NULL == data)
@@ -490,10 +490,10 @@
else
{
data_len = strlen(data);
- if(data_len > 122)// \r\n + \r\n\0
+ if(data_len > 252)// \r\n + \r\n\0
{
RLOGD("data too long");
- snprintf(buf,127,"\r\n%s\r\n",data);
+ snprintf(buf,252,"\r\n%s\r\n",data);
}
else
{
diff --git a/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.cpp b/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.cpp
index f01c341..e9b67f0 100755
--- a/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.cpp
+++ b/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.cpp
@@ -25,6 +25,9 @@
#define LINE __LINE__
#define FUNC __FUNCTION__
#define SET_DEFAULT_SIM_ALL -1
+
+int g_flag_apn = 0;
+
atci_cmd_type_t atci_data_cmd_table[] = {
//cmd_name target_type handler
{ "AT+LAPNACT", TARGET_TELEPHONY, atci_data_enable_pdp_hdlr }, //AT command to enable defult PDP
@@ -574,6 +577,7 @@
argv[0] = reqStr;
argc = 3;
sendAtciRequest(req.request_id, reqStr, argc, argv);
+ g_flag_apn = 1;
}
else if (state == 1)
{
diff --git a/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.h b/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.h
index 61ecb08..09a030f 100755
--- a/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.h
+++ b/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.h
@@ -11,6 +11,8 @@
#ifndef __ATCI_LYNQ_DATA_CMD_H__
#define __ATCI_LYNQ_DATA__CMD_H__
+extern int g_flag_apn;
+
int atci_lynq_data_init(void *arg);
int atci_data_enable_pdp_hdlr(char *cmd, int op_type, int target, char *response);
int atci_data_enable_pdp_with_apn_hdlr(char *cmd, int op_mode, int target, char *response);
diff --git a/framework/lynq-ril-service/src/data/data_gdbus.cpp b/framework/lynq-ril-service/src/data/data_gdbus.cpp
index 5e4f8f5..de2d478 100755
--- a/framework/lynq-ril-service/src/data/data_gdbus.cpp
+++ b/framework/lynq-ril-service/src/data/data_gdbus.cpp
@@ -49,6 +49,7 @@
#include "lynq_interface.h"
#include <binder/Parcel.h>
#include "ATCI.h"
+#include "atci_lynq_data_cmd.h"
#ifdef LED_SUPPORT
#include "led.h"
#endif
@@ -427,9 +428,12 @@
printf("modify apn db success, return message: %s\n", ((reason == NULL)? "":reason));
//printf("modifyApnDB_method_cb reason %s\n", ((reason == NULL)? "":reason));
/*lei add for AT+LEAPNMOD*/
- char apn_buf[1024];
- sprintf(apn_buf, "+LEAPNMOD:%s", ((reason == NULL)? "":reason));
- ATCIResponseNoToken(0, apn_buf, 666);//tmp plan
+ if(g_flag_apn)
+ {
+ char apn_buf[256];
+ sprintf(apn_buf, "+LEAPNMOD:%s", ((reason == NULL)? "":reason));
+ ATCIResponseNoToken(0, apn_buf, 666);//tmp plan
+ }
/*lei add for AT+LEAPNMOD*/
g_variant_unref(result);
lynq_data_modify_apn(reason,LYNQ_URC_MODIFY_APNDB);