Merge "[Bugfix][ZK-78][FOTA]get process and upgrade status error when start fota up status"
diff --git a/IC_src/mtk/telephonyware/3.0/hardware/ril/fusion/libril/rilmipc/telephony/data/RpDataController.cpp b/IC_src/mtk/telephonyware/3.0/hardware/ril/fusion/libril/rilmipc/telephony/data/RpDataController.cpp
index 24aa3ad..d937316 100755
--- a/IC_src/mtk/telephonyware/3.0/hardware/ril/fusion/libril/rilmipc/telephony/data/RpDataController.cpp
+++ b/IC_src/mtk/telephonyware/3.0/hardware/ril/fusion/libril/rilmipc/telephony/data/RpDataController.cpp
@@ -1651,10 +1651,10 @@
case -4: return PDP_FAIL_PREF_RADIO_TECH_CHANGED;
case -5: return PDP_FAIL_RADIO_POWER_OFF;
case -6: return PDP_FAIL_TETHERED_CALL_ACTIVE;
- default: return PDP_FAIL_ERROR_UNSPECIFIED;
+ default: return (RIL_DataCallFailCause)cause;
}
} else {
- return PDP_FAIL_ERROR_UNSPECIFIED;
+ return (RIL_DataCallFailCause)cause;
}
}
diff --git a/common_src/lib/liblynq-network/lynq_network.cpp b/common_src/lib/liblynq-network/lynq_network.cpp
index ca07f55..311a360 100755
--- a/common_src/lib/liblynq-network/lynq_network.cpp
+++ b/common_src/lib/liblynq-network/lynq_network.cpp
@@ -468,6 +468,80 @@
return RESULT_OK;
}
+int lynq_query_registration_state_from_parcel(Parcel* p, int num,int reject_index, int* regState,char * LAC,char * CID,int *netType,int *netRejected)
+{
+ int i;
+ char *resp[LYNQ_RESP_STRING_MAX_NUM]={0};
+ int ret = RESULT_OK;
+ for(i=0;i<num;i++)
+ {
+ resp[i]=lynqStrdupReadString(p);
+ }
+ if(resp[0]==NULL)
+ {
+ LYERRLOG("%s resp[0] %s is NULL",__func__,resp[0]);
+ ret = LYNQ_E_INNER_ERROR;
+ goto registration_from_parcel_return;
+ }
+ *regState = atoi(resp[0]);
+ strcpy(CID,"");
+ strcpy(LAC,"");
+ *netType = RADIO_TECH_UNKNOWN;
+ *netRejected = -1;
+ if((*regState)==1 || (*regState)==5)
+ {
+ if(resp[1]!=NULL)
+ {
+ strcpy(LAC,resp[1]);
+ }
+ else
+ {
+ LYERRLOG("%s resp[1] %s is NULL",__func__);
+ }
+
+ if(resp[2]!=NULL)
+ {
+ strcpy(CID,resp[2]);
+ }
+ else
+ {
+ LYERRLOG("%s resp[2] %s is NULL",__func__);
+ }
+
+ if(resp[3]!=NULL)
+ {
+ *netType = atoi(resp[3]);
+ }
+ else
+ {
+ LYERRLOG("%s data resp[3] %s is NULL",__func__);
+ }
+ }
+ else if((*regState)==3 || (*regState)==13)
+ {
+ if(resp[reject_index]==NULL)
+ {
+ LYERRLOG("%s resp[%d] is NULL",__func__,reject_index);
+ }
+ else
+ {
+ *netRejected = atoi(resp[reject_index]);
+ }
+ }
+
+registration_from_parcel_return:
+
+ for(i=0;i<num;i++)
+ {
+ if(resp[i]!=NULL)
+ {
+ free(resp[i]);
+ }
+ }
+ return ret;
+}
+
+
int lynq_query_registration_state(const char *type,int* regState,int* imsRegState,char * LAC,char * CID,int *netType,int *radioTechFam,int *netRejected)
{
if(g_module_init_flag != MODULE_RUNNING)
@@ -492,14 +566,14 @@
memcpy(str,type,strlen(type)+1);
strUpper(str);
if(!strcmp(str,"VOICE"))
- {
- if(get_state_from_buf(NETWORK_STATE_BUFFER_TYPE_VOICE_REG,3,regState,netType,netRejected,0)==0)
+ {
+ if(get_state_from_buf(NETWORK_STATE_BUFFER_TYPE_VOICE_REG,3,regState,netType,netRejected,2,LAC,CID)==0)
{
return RESULT_OK;
}
request = RIL_REQUEST_VOICE_REGISTRATION_STATE;
}else if(!strcmp(str,"DATA")){
- if(get_state_from_buf(NETWORK_STATE_BUFFER_TYPE_DATA_REG,2,regState,netType,2,LAC,CID)==0)
+ if(get_state_from_buf(NETWORK_STATE_BUFFER_TYPE_DATA_REG,3,regState,netType,netRejected,2,LAC,CID)==0)
{
return RESULT_OK;
}
@@ -524,28 +598,21 @@
return ret;
}
- int num,i;
- char *resp[LYNQ_RESP_STRING_MAX_NUM];
+ int num;
+ char *resp[LYNQ_RESP_STRING_MAX_NUM]={0};
if(!strcmp(str,"VOICE"))
- {
- p->readInt32(&num);
- if(num == 15)
+ {
+ p->readInt32(&num);
+ if(num >0 && num<=15)
{
- for(i=0;i<15;i++)
+ ret=lynq_query_registration_state_from_parcel(p, num, 13, regState, LAC,CID,netType,netRejected);
+ if(ret!=RESULT_OK)
{
- resp[i]=lynqStrdupReadString(p);
- }
- *regState = atoi(resp[0]);
- *netType = atoi(resp[3]);
- *netRejected = atoi(resp[14]);
- for(i=0;i<15;i++)
- {
- if(resp[i]!=NULL)
- {
- free(resp[i]);
- }
- }
- set_state_to_buf(NETWORK_STATE_BUFFER_TYPE_VOICE_REG,3,*regState,*netType,*netRejected,0);
+ LYERRLOG("%s call lynq_query_registration_state_from_parcel fail",__func__);
+ goto registration_return;
+ }
+ set_state_to_buf(NETWORK_STATE_BUFFER_TYPE_VOICE_REG,3,*regState,*netType,*netRejected,2,LAC,CID);
+ goto registration_return;
}
else
{
@@ -556,24 +623,17 @@
}
else if(!strcmp(str,"DATA")){
p->readInt32(&num);
- if(num == 11)
- {
- for(i=0;i<4;i++)
+ if(num >0 && num <=11)
+ {
+ ret=lynq_query_registration_state_from_parcel(p, num, 4, regState, LAC,CID,netType,netRejected);
+ if(ret!=RESULT_OK)
{
- resp[i]=lynqStrdupReadString(p);
- }
- *regState = atoi(resp[0]);
- strcpy(LAC,resp[1]);
- strcpy(CID,resp[2]);
- *netType = atoi(resp[3]);
- for(i=0;i<4;i++)
- {
- if(resp[i]!=NULL)
- {
- free(resp[i]);
- }
- }
- set_state_to_buf(NETWORK_STATE_BUFFER_TYPE_DATA_REG,2,*regState,*netType,2,LAC,CID);
+ LYERRLOG("%s call lynq_query_registration_state_from_parcel fail",__func__);
+ goto registration_return;
+ }
+
+ set_state_to_buf(NETWORK_STATE_BUFFER_TYPE_DATA_REG,3,*regState,*netType,*netRejected,2,LAC,CID);
+ goto registration_return;
}
else
{
@@ -598,10 +658,18 @@
delete p;
return LYNQ_E_INNER_ERROR;
}
- }
- LYINFLOG("%s suc",__func__);
- delete p;
- return RESULT_OK;
+ }
+
+registration_return:
+
+ if(ret==RESULT_OK)
+ {
+ LYINFLOG("%s suc",__func__);
+ }
+
+ delete p;
+ return ret;
+
}
int lynq_query_prefferred_networktype(int *preNetType)
diff --git a/common_src/lib/liblynq-sms/lynq_sms.cpp b/common_src/lib/liblynq-sms/lynq_sms.cpp
index 4522fb6..938eedf 100755
--- a/common_src/lib/liblynq-sms/lynq_sms.cpp
+++ b/common_src/lib/liblynq-sms/lynq_sms.cpp
@@ -152,7 +152,7 @@
char msg_e_b[msglen*2+1] = {0};// +1 for end of string.*2:A char array contains two elements of a string for each value
ArrayToStr(msg, msglen, msg_e_b);
LYINFLOG("tel, charset, msg_e_b: %s, %d, %s", telephony_num, charset, msg_e_b);
- int ret=lynq_send_common_request(p,g_wait_time,RIL_REQUEST_SEND_SMS,3,"%s %d %s",telephony_num, charset, msg_e_b);
+ int ret=lynq_send_common_request(p,20,RIL_REQUEST_SEND_SMS,3,"%s %d %s",telephony_num, charset, msg_e_b);
if(ret!=RESULT_OK)
{
LYERRLOG("%s 8bit send error %d",__func__,__LINE__);
@@ -163,7 +163,7 @@
}
else//other bit
{
- int ret=lynq_send_common_request(p,g_wait_time,RIL_REQUEST_SEND_SMS,3,"%s %d %s",telephony_num, charset, msg);
+ int ret=lynq_send_common_request(p,20,RIL_REQUEST_SEND_SMS,3,"%s %d %s",telephony_num, charset, msg);
if(ret!=RESULT_OK)
{
LYERRLOG("%s 7bit send error %d",__func__,__LINE__);