[Feature][ZXW-4][Data]Add liblynq-qser-data Part.2
Change-Id: I7d0d939e3f75517e7cf4b145fadfb275c7c14814
diff --git a/src/lynq/lib/liblynq-data/include/libdata/lynq_data.h b/src/lynq/lib/liblynq-data/include/libdata/lynq_data.h
index 277f4da..a54a7b4 100755
--- a/src/lynq/lib/liblynq-data/include/libdata/lynq_data.h
+++ b/src/lynq/lib/liblynq-data/include/libdata/lynq_data.h
@@ -1,5 +1,5 @@
#ifndef LYNQ_DATA_H
-#define LYNQ_DATA_H 1
+#define LYNQ_DATA_H
#ifdef __cplusplus
extern "C" {
#endif
@@ -48,6 +48,14 @@
Value <= 0 means network has either not sent a value or
sent an invalid value */
} lynq_data_call_response_v11_t;
+
+typedef struct
+{
+ int index;
+ char apn[LYNQ_APN_MAX_LEN];
+ char apnType[LYNQ_APN_TYPE_MAX_LEN];
+}lynq_apn_info;
+
int lynq_init_data(int uToken);
int lynq_deinit_data();
int lynq_setup_data_call(int *handle);
@@ -58,6 +66,7 @@
int lynq_wait_data_call_state_change(int *handle);
int lynq_modify_apn_db(const int cmd,char *id,char *mcc,char *mnc,char *apn,char *apntype,char *user,char *password,char *normalprotocol,char *roamingprotocol,char *carrier,char *out);
int lynq_reset_apn(char *result);
+int lynq_get_apn_table(int *size,lynq_apn_info **list);
#ifdef __cplusplus
}
diff --git a/src/lynq/lib/liblynq-data/lynq_data.cpp b/src/lynq/lib/liblynq-data/lynq_data.cpp
index 460eb9c..6b52ea0 100755
--- a/src/lynq/lib/liblynq-data/lynq_data.cpp
+++ b/src/lynq/lib/liblynq-data/lynq_data.cpp
@@ -145,7 +145,7 @@
lynq_apn_table[apnId].hasTimeout = 0;
lynq_apn_table[apnId].hasUsed = 0;
bzero(lynq_apn_table[apnId].apn,LYNQ_APN_MAX_LEN);
- //bzero(lynq_apn_table[apnId].apnType,LYNQ_APN_TYPE_MAX_LEN);
+ bzero(lynq_apn_table[apnId].apnType,LYNQ_APN_TYPE_MAX_LEN);
bzero(lynq_apn_table[apnId].ifaceName,LYNQ_IFACE_NAME_MAX_LEN);
return;
}
@@ -1384,4 +1384,31 @@
return 0;
}
+int lynq_get_apn_table(int *size,lynq_apn_info **list)
+{
+ if (NULL == size || NULL == list)
+ {
+ LYERRLOG("size or list is NULL");
+ return LYNQ_E_NULL_ANONALY;
+ }
+ int count = 0;
+ int i = 0;
+ for (i = 0;i < LYNQ_APN_CHANNEL_MAX;i++)
+ {
+ if (lynq_apn_table[i].hasUsed == 1)
+ {
+ if (NULL == list[count])
+ {
+ LYERRLOG("list[%d] is NULL",count);
+ return LYNQ_E_NULL_ANONALY;
+ }
+ list[count]->index = i;
+ memcpy(list[count]->apn,lynq_apn_table[i].apn,strlen(lynq_apn_table[i].apn)+1);
+ memcpy(list[count]->apnType,lynq_apn_table[i].apnType,strlen(lynq_apn_table[i].apnType)+1);
+ count++;
+ }
+ }
+ *size = count;
+ return 0;
+}
/*Typethree add for T800 platform 2022/04/21 end*/