[Bugfix][T106BUG-218]fix able to call api without initialization.
Only Configure: No
Affected branch: master
Affected module: data
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: Yes
Change-Id: I115b40f7ce2cc4e41cad43c573a9666d0b35991a
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/include/lynq-qser-data.h b/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/include/lynq-qser-data.h
index a9e7ca0..75bfd03 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/include/lynq-qser-data.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/include/lynq-qser-data.h
@@ -9,6 +9,7 @@
typedef enum {
QSER_DATA_CALL_ERROR_NONE = 0,
QSER_DATA_CALL_ERROR_INVALID_PARAMS,
+ QSER_DATA_CALL_ERROR_NO_INIT,
} qser_data_call_error_e;
typedef enum {
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 cae5273..eebf913 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
@@ -18,6 +18,11 @@
#define RESULT_OK (0)
#define RESULT_ERROR (-1)
+typedef enum{
+ LYNQ_E_NO_INIT=9002
+}LYNQ_E;
+
+static int g_lynq_qser_data_init_flag = 0;
static pthread_t s_cb_tid = -1;
static int s_qser_data_cb_thread_status = 0;
static pthread_mutex_t s_qser_data_cb_mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -986,6 +991,7 @@
LYERRLOG("open xml file error");
return RESULT_ERROR;
}
+ g_lynq_qser_data_init_flag = 1;
return RESULT_OK;
}
@@ -999,6 +1005,7 @@
lynq_deinit_data();
qser_cb_pthread_cancel();
s_data_call_cb = NULL;
+ g_lynq_qser_data_init_flag = 0;
LYINFLOG("[%s] end [%d]",__FUNCTION__,__LINE__);
return ;
}
@@ -1007,6 +1014,14 @@
{
int ret = -1;
int handle = 0;
+ if(g_lynq_qser_data_init_flag == 0)
+ {
+ if(err != NULL)
+ {
+ *err = QSER_DATA_CALL_ERROR_NO_INIT;
+ }
+ return LYNQ_E_NO_INIT;
+ }
if (NULL == data_call || NULL == err)
{
LYERRLOG("call start incoming paramters error");
@@ -1045,6 +1060,14 @@
{
int ret = -1;
int handle = 0;
+ if(g_lynq_qser_data_init_flag == 0)
+ {
+ if(err != NULL)
+ {
+ *err = QSER_DATA_CALL_ERROR_NO_INIT;
+ }
+ return LYNQ_E_NO_INIT;
+ }
if (NULL == data_call || NULL == err)
{
LYERRLOG("call start incoming paramters error");
@@ -1084,6 +1107,14 @@
int ret = 0;
int handle = -1;
+ if(g_lynq_qser_data_init_flag == 0)
+ {
+ if(err != NULL)
+ {
+ *err = QSER_DATA_CALL_ERROR_NO_INIT;
+ }
+ return LYNQ_E_NO_INIT;
+ }
if (NULL == err)
{
LYERRLOG("call stop incoming paramters error");
@@ -1108,6 +1139,14 @@
{
int ret = 0;
int handle = -1;
+ if(g_lynq_qser_data_init_flag == 0)
+ {
+ if(err != NULL)
+ {
+ *err = QSER_DATA_CALL_ERROR_NO_INIT;
+ }
+ return LYNQ_E_NO_INIT;
+ }
lynq_data_call_response_v11_t data_call_info;
data_call_handle_get(profile_idx,&handle);
ret = lynq_get_data_call_list(&handle,&data_call_info);
@@ -1157,6 +1196,10 @@
int qser_apn_set(qser_apn_info_s *apn)
{
int ret = 0;
+ if(g_lynq_qser_data_init_flag == 0)
+ {
+ return LYNQ_E_NO_INIT;
+ }
if (NULL == apn)
{
LYERRLOG("apn set incoming paramters error");
@@ -1191,6 +1234,10 @@
int qser_apn_get(unsigned char profile_idx, qser_apn_info_s *apn)
{
+ if(g_lynq_qser_data_init_flag == 0)
+ {
+ return LYNQ_E_NO_INIT;
+ }
if (profile_idx < 0 || profile_idx > 24 || NULL == apn)
{
LYERRLOG("apn get incoming paramters error");
@@ -1209,6 +1256,10 @@
int qser_apn_add(qser_apn_add_s *apn, unsigned char *profile_idx)
{
int ret = 0;
+ if(g_lynq_qser_data_init_flag == 0)
+ {
+ return LYNQ_E_NO_INIT;
+ }
if (NULL == apn || NULL == profile_idx)
{
LYERRLOG("apn add incoming paramters error");
@@ -1242,6 +1293,10 @@
int qser_apn_del(unsigned char profile_idx)
{
+ if(g_lynq_qser_data_init_flag == 0)
+ {
+ return LYNQ_E_NO_INIT;
+ }
if (profile_idx < 0 || profile_idx > 24)
{
LYERRLOG("apn del incoming paramters error");
@@ -1273,6 +1328,10 @@
int qser_apn_get_list(qser_apn_info_list_s *apn_list)
{
+ if(g_lynq_qser_data_init_flag == 0)
+ {
+ return LYNQ_E_NO_INIT;
+ }
if (NULL == apn_list)
{
LYERRLOG("apn_list incoming paramters error");