Add lte attach apn logic 44/123744/1 submit/tizen/20170407.040737
authorWootak Jung <wootak.jung@samsung.com>
Fri, 7 Apr 2017 01:34:36 +0000 (10:34 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Fri, 7 Apr 2017 01:34:36 +0000 (10:34 +0900)
- Add b_lte_supported flag

Change-Id: I1075cb3721e1e22d3b432c835891089ae4f8bfe9

CMakeLists.txt
include/ps_common.h
packaging/tel-plugin-packetservice.spec
src/ps_context.c
src/ps_master.c
src/ps_modem.c

index b427167..543981f 100644 (file)
@@ -15,7 +15,7 @@ endif()
 # Set required packages
 INCLUDE(FindPkgConfig)
 pkg_check_modules(pkgs REQUIRED glib-2.0 gio-2.0 gio-unix-2.0 tcore iniparser vconf alarm-service libxml-2.0
-       libtzplatform-config capi-system-device)
+       libtzplatform-config capi-system-device capi-system-info)
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
index f919213..70e4666 100644 (file)
@@ -210,6 +210,7 @@ typedef struct packet_service_master {
        GHashTable *modems;
 
        gboolean initial_pdp_conn; // If FALSE, PDP never been connected for any of slots.
+       bool b_lte_supported;
 } ps_master_t;
 
 typedef struct packet_service_modem {
index 305d316..eaf96c6 100644 (file)
@@ -4,7 +4,7 @@
 
 %define major 0
 %define minor 4
-%define patchlevel 6
+%define patchlevel 7
 
 Name:           tel-plugin-packetservice
 Version:        %{major}.%{minor}.%{patchlevel}
@@ -29,6 +29,7 @@ BuildRequires:  pkgconfig(vconf)
 BuildRequires:  pkgconfig(alarm-service)
 BuildRequires:  pkgconfig(capi-system-device)
 BuildRequires:  pkgconfig(libtzplatform-config)
+BuildRequires:  pkgconfig(capi-system-info)
 Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
 Requires:      %{name}-dbinit = %{version}-%{release}
index 5944190..d14e220 100644 (file)
@@ -1622,6 +1622,7 @@ GSList *_ps_context_create_hashtable(ps_modem_t *modem, gboolean roaming)
        gboolean rv = FALSE, roaming_apn = FALSE;
        int retry = 1;
        unsigned int index;
+       ps_master_t *master = _ps_modem_ref_master(modem);
 
        handle = _ps_context_create_database_handle(modem->cp_name);
        if (!handle) {
@@ -1682,10 +1683,9 @@ GSList *_ps_context_create_hashtable(ps_modem_t *modem, gboolean roaming)
                modem->contexts = g_slist_append(modem->contexts, context);
                ps_dbg_ex_modem(modem, "context (%p, %s) insert to linked-list", context, path);
        }
-#ifdef TIZEN_SUPPORT_VOLTE
        /* Update Attach APN here. */
-       _ps_context_update_attach_apn(modem->contexts, modem->operator);
-#endif
+       if (master && master->b_lte_supported)
+               _ps_context_update_attach_apn(modem->contexts, modem->operator);
        g_hash_table_destroy(in_param);
        g_slist_free_full(out_param, (GDestroyNotify)g_hash_table_destroy);
 
index c3b837c..2c3e4f3 100644 (file)
@@ -21,6 +21,7 @@
  */
 
 #include <unistd.h>
+#include <system_info.h>
 
 #include "ps_common.h"
 #include "ps_context.h"
@@ -330,6 +331,9 @@ ps_master_t *_ps_master_create_master(GDBusConnection *conn, TcorePlugin *p)
        new_master->modems = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, __remove_modem_handler);
        new_master->strg = tcore_server_find_storage(tcore_plugin_ref_server(p), "vconf");
 
+       system_info_get_platform_bool("tizen.org/feature/network.telephony.service.lte", &new_master->b_lte_supported);
+       info("b_lte_supported: [%s]", new_master->b_lte_supported ? "TRUE" : "FALSE");
+
        /*Setting Up the call backs for the interface*/
        if (!ps_master_setup_interface(new_master)) {
                g_free(new_master);
index 45bce7f..b4d73c3 100644 (file)
@@ -505,9 +505,11 @@ gboolean _ps_modem_processing_sim_complete(ps_modem_t *modem, gboolean complete,
                                        g_hash_table_iter_init(&iter, modem->services);
                                        while (g_hash_table_iter_next(&iter, &key, &value) == TRUE) {
                                                ps_service_t *service = value;
+                                               ps_master_t *master = _ps_modem_ref_master(modem);
                                                _ps_service_set_number_of_pdn_cnt(service, modem->operator);
                                                _ps_service_ref_contexts(service, contexts, modem->operator);
-                                               //_ps_service_set_attach_apn(service);
+                                               if (master && master->b_lte_supported)
+                                                       _ps_service_set_attach_apn(service);
                                        }
                                } else {
                                        ps_err_ex_modem(modem, "Failed to create HASH table");