[data]BUG86810 & 86836

Change-Id: Id73ac0aaf3a850d70547c4d74740e32a24750a23
diff --git a/mbtk/liblynq_lib/src/lynq_data_call.c b/mbtk/liblynq_lib/src/lynq_data_call.c
index 3d3cdda..bcf76dd 100644
--- a/mbtk/liblynq_lib/src/lynq_data_call.c
+++ b/mbtk/liblynq_lib/src/lynq_data_call.c
@@ -743,18 +743,13 @@
         return QSER_RESULT_FAIL;
     }
 
-    
     apninfo.req_type = MBTK_APN_REQ_TYPE_ADD;
     apninfo.auth_proto = (mbtk_apn_auth_proto_enum)apn->auth_proto;
     if(strlen(apn->apn_name))
     {
         memcpy(apninfo.apn_name, apn->apn_name, strlen(apn->apn_name));
     }
-    else
-    {
-        LOGE("[qser_data] apn_name is NULL.");
-        return QSER_RESULT_FAIL;
-    }
+
     if(strlen(apn->username))
     {
         memcpy(apninfo.user_name, apn->username, strlen(apn->username));
diff --git a/mbtk/mbtk_rild/src/mbtk_data_call.c b/mbtk/mbtk_rild/src/mbtk_data_call.c
index 8a6dc2f..542b5e4 100644
--- a/mbtk/mbtk_rild/src/mbtk_data_call.c
+++ b/mbtk/mbtk_rild/src/mbtk_data_call.c
@@ -264,7 +264,7 @@
         LOGE("paran is NULL.");
         return MBTK_RESULT_FAIL;
     }
-
+     
     //check 2 - 7
     int pdp_type_tmp = 1;
     for (;pdp_type_tmp <= MBTK_APN_CID_MAX; pdp_type_tmp++)
@@ -275,23 +275,30 @@
         }
         if( (apn_set_state[pdp_type_tmp] == '1') || (apn_set_state[pdp_type_tmp] == '2') )
         {
-            if(strcmp((char *)apninfo_s[pdp_type_tmp].apn_type, (char *)apn_type) == 0)
+            if(0x0 != apn_type[0])
             {
-                LOGE("apn_type is same!idx = [%d]", pdp_type_tmp);
-                return MBTK_RESULT_FAIL;
-            }
-            if (strcmp((char *)apninfo_s[pdp_type_tmp].apn_name, (char *)apn_name) == 0)
-            {
-                if(apninfo_s[pdp_type_tmp].ip_type == MBTK_IP_TYPE_IPV4V6 || ip_type == MBTK_IP_TYPE_IPV4V6)
+                if(strcmp((char *)apninfo_s[pdp_type_tmp].apn_type, (char *)apn_type) == 0)
                 {
-                    LOGE("[qser_data] apn_name is same and pdp_type is IPV4V6!idx = [%d]", pdp_type_tmp);
+                    LOGE("apn_type is same!idx = [%d]", pdp_type_tmp);
                     return MBTK_RESULT_FAIL;
                 }
-
-                if(apninfo_s[pdp_type_tmp].ip_type == ip_type)
+            }
+            
+            if(0x0 != apn_name[0])
+            {
+                if (strcmp((char *)apninfo_s[pdp_type_tmp].apn_name, (char *)apn_name) == 0)
                 {
-                    LOGE("pdp_type is same and pdp_type is same!idx = [%d]", pdp_type_tmp);
-                    return MBTK_RESULT_FAIL;
+                    if(apninfo_s[pdp_type_tmp].ip_type == MBTK_IP_TYPE_IPV4V6 || ip_type == MBTK_IP_TYPE_IPV4V6)
+                    {
+                        LOGE("[qser_data] apn_name is same and pdp_type is IPV4V6!idx = [%d]", pdp_type_tmp);
+                        return MBTK_RESULT_FAIL;
+                    }
+
+                    if(apninfo_s[pdp_type_tmp].ip_type == ip_type)
+                    {
+                        LOGE("pdp_type is same and pdp_type is same!idx = [%d]", pdp_type_tmp);
+                        return MBTK_RESULT_FAIL;
+                    }
                 }
             }
         }
diff --git a/mbtk/mbtk_rild/src/mbtk_info_server.c b/mbtk/mbtk_rild/src/mbtk_info_server.c
old mode 100755
new mode 100644
index 8c047a5..755e94f
--- a/mbtk/mbtk_rild/src/mbtk_info_server.c
+++ b/mbtk/mbtk_rild/src/mbtk_info_server.c
@@ -3420,11 +3420,7 @@
     }
     if(strlen(apn->apn) > 0) {
         index += sprintf(cmd + index,"\"%s\"", apn->apn);
-    } else {
-        LOGE("No set APN.");
-        err = -1;
-        goto exit;
-    }
+    } 
 
     err = at_send_command(cmd, &response);
     if (err < 0 || response->success == 0){
diff --git a/mbtk/test/liblynq_lib/qser_data_call_test.c b/mbtk/test/liblynq_lib/qser_data_call_test.c
old mode 100755
new mode 100644
index 42ee643..7a38036
--- a/mbtk/test/liblynq_lib/qser_data_call_test.c
+++ b/mbtk/test/liblynq_lib/qser_data_call_test.c
@@ -169,6 +169,7 @@
                 } else if(!strncasecmp(cmd, "apn_add", 7)){
                     char qser_idx = 0;
                     qser_apn_add_s qser_apn = {0};
+                    char *tmp = NULL;
                     char *ptr = strstr(cmd, " ");
                     if(ptr == NULL)
                         continue;
@@ -176,13 +177,26 @@
                         ptr++;
                     qser_apn.pdp_type = (qser_apn_pdp_type_e)atoi(ptr);
 
+
                     ptr = strstr(ptr, " ");
                     if(ptr == NULL)
+                    {
+                        err = qser_apn_add(&qser_apn, &qser_idx);
+                        if(err) 
+                        {
+                            printf("Error : %d\n", err);
+                        } 
+                        else 
+                        {
+                            printf("APN set success. get idx = [%d]\n", qser_idx);
+                        }
                         continue;
+                    }
+                
                     while(*ptr != '\0' && *ptr == ' ')
                         ptr++;
                     memcpy(qser_apn.apn_name, ptr, strlen(ptr));
-                    char *tmp = qser_apn.apn_name;
+                    tmp = qser_apn.apn_name;
                     while(*tmp) {
                         if(*tmp == ' ') {
                             *tmp = '\0';
@@ -191,9 +205,21 @@
                         tmp++;
                     }
 
+
                     ptr = strstr(ptr, " ");
                     if(ptr == NULL)
+                    {
+                        err = qser_apn_add(&qser_apn, &qser_idx);
+                        if(err) 
+                        {
+                            printf("Error : %d\n", err);
+                        } 
+                        else 
+                        {
+                            printf("APN set success. get idx = [%d]\n", qser_idx);
+                        }
                         continue;
+                    }
                     while(*ptr != '\0' && *ptr == ' ')
                         ptr++;
                     memcpy(qser_apn.apn_type, ptr, strlen(ptr));
@@ -205,50 +231,68 @@
                         }
                         tmp++;
                     }
+
                     
                     ptr = strstr(ptr, " ");
-                    if(ptr == NULL) {
+                    if(ptr == NULL) 
+                    {
                         err = qser_apn_add(&qser_apn, &qser_idx);
-                    } else {
-                        while(*ptr != '\0' && *ptr == ' ')
-                            ptr++;
-                        memcpy(qser_apn.username, ptr, strlen(ptr));
-                        tmp = qser_apn.username;
-                        while(*tmp) {
-                            if(*tmp == ' ') {
-                                *tmp = '\0';
-                                break;
-                            }
-                            tmp++;
+                         if(err) 
+                        {
+                            printf("Error : %d\n", err);
+                        } 
+                        else 
+                        {
+                            printf("APN set success. get idx = [%d]\n", qser_idx);
                         }
-
-                        ptr = strstr(ptr, " ");
-                        if(ptr == NULL)
-                            continue;
-                        while(*ptr != '\0' && *ptr == ' ')
-                            ptr++;
-                        memcpy(qser_apn.password, ptr, strlen(ptr));
-                        tmp = qser_apn.password;
-                        while(*tmp) {
-                            if(*tmp == ' ') {
-                                *tmp = '\0';
-                                break;
-                            }
-                            tmp++;
+                        continue;
+                    } 
+                    while(*ptr != '\0' && *ptr == ' ')
+                        ptr++;
+                    memcpy(qser_apn.username, ptr, strlen(ptr));
+                    tmp = qser_apn.username;
+                    while(*tmp) {
+                        if(*tmp == ' ') {
+                            *tmp = '\0';
+                            break;
                         }
-
-                        ptr = strstr(ptr, " ");
-                        if(ptr == NULL)
-                            continue;
-                        while(*ptr != '\0' && *ptr == ' ')
-                            ptr++;
-                        qser_apn.auth_proto = (qser_apn_auth_proto_e)atoi(ptr);
-
-                        err = qser_apn_add(&qser_apn, &qser_idx);
+                        tmp++;
                     }
-                    if(err) {
+
+                    ptr = strstr(ptr, " ");
+                    if(ptr == NULL)
+                    {
+                        continue;
+                    } 
+                    while(*ptr != '\0' && *ptr == ' ')
+                        ptr++;
+                    memcpy(qser_apn.password, ptr, strlen(ptr));
+                    tmp = qser_apn.password;
+                    while(*tmp) {
+                        if(*tmp == ' ') {
+                            *tmp = '\0';
+                            break;
+                        }
+                        tmp++;
+                    }
+
+                    ptr = strstr(ptr, " ");
+                    if(ptr == NULL)
+                    {
+                        continue;
+                    } 
+                    while(*ptr != '\0' && *ptr == ' ')
+                        ptr++;
+                    qser_apn.auth_proto = (qser_apn_auth_proto_e)atoi(ptr);
+
+                    err = qser_apn_add(&qser_apn, &qser_idx);
+              
+                    if(err) 
+                    {
                         printf("Error : %d\n", err);
-                    } else {
+                    } 
+                    else 
+                    {
                         printf("APN set success. get idx = [%d]\n", qser_idx);
                     }
                 }
@@ -283,9 +327,21 @@
                         tmp++;
                     }
 
+
                     ptr = strstr(ptr, " ");
                     if(ptr == NULL)
+                    {
+                        err = qser_apn_set(&qser_apn);
+                        if(err) 
+                        {
+                            printf("Error : %d\n", err);
+                        }   
+                        else 
+                        {
+                            printf("APN set success\n");
+                        }
                         continue;
+                    }
                     while(*ptr != '\0' && *ptr == ' ')
                         ptr++;
                     memcpy(qser_apn.apn_type, ptr, strlen(ptr));
@@ -297,47 +353,57 @@
                         }
                         tmp++;
                     }
-                    
+
+
                     ptr = strstr(ptr, " ");
                     if(ptr == NULL) {
                        err = qser_apn_set(&qser_apn);
-                    } else {
-                        while(*ptr != '\0' && *ptr == ' ')
-                            ptr++;
-                        memcpy(qser_apn.username, ptr, strlen(ptr));
-                        tmp = qser_apn.username;
-                        while(*tmp) {
-                            if(*tmp == ' ') {
-                                *tmp = '\0';
-                                break;
-                            }
-                            tmp++;
+                       if(err) 
+                       {
+                           printf("Error : %d\n", err);
+                       }   
+                       else 
+                       {
+                           printf("APN set success\n");
+                       }
+                       continue;
+                    } 
+                    while(*ptr != '\0' && *ptr == ' ')
+                        ptr++;
+                    memcpy(qser_apn.username, ptr, strlen(ptr));
+                    tmp = qser_apn.username;
+                    while(*tmp) {
+                        if(*tmp == ' ') {
+                            *tmp = '\0';
+                            break;
                         }
-
-                        ptr = strstr(ptr, " ");
-                        if(ptr == NULL)
-                            continue;
-                        while(*ptr != '\0' && *ptr == ' ')
-                            ptr++;
-                        memcpy(qser_apn.password, ptr, strlen(ptr));
-                        tmp = qser_apn.password;
-                        while(*tmp) {
-                            if(*tmp == ' ') {
-                                *tmp = '\0';
-                                break;
-                            }
-                            tmp++;
-                        }
-
-                        ptr = strstr(ptr, " ");
-                        if(ptr == NULL)
-                            continue;
-                        while(*ptr != '\0' && *ptr == ' ')
-                            ptr++;
-                        qser_apn.auth_proto = (qser_apn_auth_proto_e)atoi(ptr);
-
-                        err = qser_apn_set(&qser_apn);
+                        tmp++;
                     }
+
+                    ptr = strstr(ptr, " ");
+                    if(ptr == NULL)
+                        continue;
+                    while(*ptr != '\0' && *ptr == ' ')
+                        ptr++;
+                    memcpy(qser_apn.password, ptr, strlen(ptr));
+                    tmp = qser_apn.password;
+                    while(*tmp) {
+                        if(*tmp == ' ') {
+                            *tmp = '\0';
+                            break;
+                        }
+                        tmp++;
+                    }
+
+                    ptr = strstr(ptr, " ");
+                    if(ptr == NULL)
+                        continue;
+                    while(*ptr != '\0' && *ptr == ' ')
+                        ptr++;
+                    qser_apn.auth_proto = (qser_apn_auth_proto_e)atoi(ptr);
+
+                    err = qser_apn_set(&qser_apn);
+                    
                     if(err) {
                         printf("Error : %d\n", err);
                     } else {