From: Wootak Jung Date: Fri, 7 Apr 2017 01:34:36 +0000 (+0900) Subject: Add lte attach apn logic X-Git-Tag: submit/tizen/20170407.040737^0 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Ftelephony%2Ftel-plugin-packetservice.git;a=commitdiff_plain;h=b449ea4705dd7a868b8d4eff8c0eecb642acc3c7 Add lte attach apn logic - Add b_lte_supported flag Change-Id: I1075cb3721e1e22d3b432c835891089ae4f8bfe9 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index b427167..543981f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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}") diff --git a/include/ps_common.h b/include/ps_common.h index f919213..70e4666 100644 --- a/include/ps_common.h +++ b/include/ps_common.h @@ -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 { diff --git a/packaging/tel-plugin-packetservice.spec b/packaging/tel-plugin-packetservice.spec index 305d316..eaf96c6 100644 --- a/packaging/tel-plugin-packetservice.spec +++ b/packaging/tel-plugin-packetservice.spec @@ -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} diff --git a/src/ps_context.c b/src/ps_context.c index 5944190..d14e220 100644 --- a/src/ps_context.c +++ b/src/ps_context.c @@ -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); diff --git a/src/ps_master.c b/src/ps_master.c index c3b837c..2c3e4f3 100644 --- a/src/ps_master.c +++ b/src/ps_master.c @@ -21,6 +21,7 @@ */ #include +#include #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); diff --git a/src/ps_modem.c b/src/ps_modem.c index 45bce7f..b4d73c3 100644 --- a/src/ps_modem.c +++ b/src/ps_modem.c @@ -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");