[PLM P150429-06495] check telephony feature on SIM/SDN API 14/43014/2
authorSunggoo Kim <sung.goo.kim@samsung.com>
Thu, 30 Apr 2015 00:17:50 +0000 (09:17 +0900)
committerGukhwan Cho <gh78.cho@samsung.com>
Tue, 7 Jul 2015 04:27:31 +0000 (13:27 +0900)
Change-Id: I649b8168de4b2e696e70da7579c431bd7e662ca3

native/ctsvc_db_plugin_sdn.c
packaging/contacts-service.spec
server/CMakeLists.txt
server/ctsvc_server.c
server/ctsvc_server_sim.c [changed mode: 0755->0644]
server/ctsvc_server_socket.c
server/ctsvc_server_utils.c
server/ctsvc_server_utils.h

index b1fda3c..19868eb 100644 (file)
@@ -28,6 +28,7 @@
 #include "ctsvc_db_query.h"
 #include "ctsvc_record.h"
 #include "ctsvc_notification.h"
+#include "ctsvc_server_utils.h"
 
 //static int __ctsvc_db_sdn_insert_record( contacts_record_h record, int *id );
 static int __ctsvc_db_sdn_get_record( int id, contacts_record_h* record );
@@ -80,6 +81,8 @@ static int __ctsvc_db_sdn_value_set(cts_stmt stmt, contacts_record_h *record)
 
 static int __ctsvc_db_sdn_get_record( int id, contacts_record_h* out_record )
 {
+       RETVM_IF(!ctsvc_server_have_telephony_feature(), CONTACTS_ERROR_NOT_SUPPORTED, "Telephony feature disabled");
+
        int ret;
        cts_stmt stmt = NULL;
        char query[CTS_SQL_MAX_LEN] = {0};
@@ -267,6 +270,8 @@ static int __ctsvc_db_sdn_delete_record( int sdn_id )
 static int __ctsvc_db_sdn_get_all_records( int offset, int limit,
        contacts_list_h* out_list )
 {
+       RETVM_IF(!ctsvc_server_have_telephony_feature(), CONTACTS_ERROR_NOT_SUPPORTED, "Telephony feature disabled");
+
        int ret;
        int len;
        cts_stmt stmt;
@@ -307,6 +312,8 @@ static int __ctsvc_db_sdn_get_all_records( int offset, int limit,
 
 static int __ctsvc_db_sdn_get_records_with_query( contacts_query_h query, int offset, int limit, contacts_list_h* out_list )
 {
+       RETVM_IF(!ctsvc_server_have_telephony_feature(), CONTACTS_ERROR_NOT_SUPPORTED, "Telephony feature disabled");
+
        int ret;
        int i;
        int field_count;
index 1536361..e71e267 100644 (file)
@@ -26,6 +26,7 @@ BuildRequires:  pkgconfig(libtzplatform-config)
 BuildRequires:  pkgconfig(cynara-client)
 BuildRequires:  pkgconfig(cynara-session)
 BuildRequires:  pkgconfig(cynara-creds-socket)
+BuildRequires:  pkgconfig(capi-system-info)
 Requires(post): /usr/bin/sqlite3, /bin/chmod, /bin/chown
 Requires(post): /usr/bin/vconftool
 Requires(post): /sbin/ldconfig
index 7c982b9..2642f64 100755 (executable)
@@ -194,6 +194,7 @@ pkg_check_modules(ctsvc_server_pkgs REQUIRED
        cynara-client
        cynara-session
        cynara-creds-socket
+       capi-system-info
 )
 
 FOREACH(flag ${ctsvc_server_pkgs_CFLAGS})
index 343be30..77d3cbe 100755 (executable)
@@ -227,6 +227,7 @@ int main(int argc, char *argv[])
        // update DB for compatability
        ctsvc_server_db_update();
 
+       ctsvc_server_load_feature_list();
        ret = ctsvc_server_socket_init();
        CTS_DBG("%d", ret);
 
old mode 100755 (executable)
new mode 100644 (file)
index 3e7e4c2..7435599
@@ -477,7 +477,6 @@ ERROR_RETURN:
 
 int ctsvc_server_sim_import_contact(void* data, int sim_slot_no)
 {
-#if 0
        CTS_FN_CALL;
        int ret;
        ctsvc_sim_info_s *info;
@@ -504,7 +503,7 @@ int ctsvc_server_sim_import_contact(void* data, int sim_slot_no)
                __ctsvc_server_sim_set_return_data(NULL);
                return CONTACTS_ERROR_SYSTEM;
        }
-#endif
+
        return CONTACTS_ERROR_NONE;
 }
 
@@ -520,7 +519,6 @@ int ctsvc_server_socket_get_sim_init_status(void* data, int sim_slot_no)
 
 static void __ctsvc_server_sim_sdn_read_cb(TapiHandle *handle, int result, void *data, void *user_data)
 {
-#if 0
        CTS_FN_CALL;
        int ret=0;
        TelSimPbAccessResult_t sec_rt = result;
@@ -569,14 +567,10 @@ static void __ctsvc_server_sim_sdn_read_cb(TapiHandle *handle, int result, void
        return;
 ERROR_RETURN:
        ctsvc_server_trim_memory();
-
-       return;
-#endif
 }
 
 static void __ctsvc_server_sim_sdn_meta_info_cb(TapiHandle *handle, int result, void *data, void *user_data)
 {
-#if 0
        CTS_FN_CALL;
        int ret = 0;
        TelSimPbAccessResult_t sec_rt = result;
@@ -598,13 +592,10 @@ static void __ctsvc_server_sim_sdn_meta_info_cb(TapiHandle *handle, int result,
 
 ERROR_RETURN:
        ctsvc_server_trim_memory();
-       return;
-#endif
 }
 
 static int __ctsvc_server_sim_sdn_read(ctsvc_sim_info_s* info)
 {
-#if 0
        CTS_FN_CALL;
        int ret;
        int card_changed = 0;
@@ -648,13 +639,10 @@ static int __ctsvc_server_sim_sdn_read(ctsvc_sim_info_s* info)
 ERROR_RETURN:
        ctsvc_server_trim_memory();
        return ret;
-#endif
-       return CONTACTS_ERROR_NONE;
 }
 
 static void __ctsvc_server_sim_get_meta_info_cb(TapiHandle *handle, int result, void *data, void *user_data)
 {
-#if 0
        CTS_FN_CALL;
        int ret=0;
        int i=0;
@@ -714,14 +702,10 @@ static void __ctsvc_server_sim_get_meta_info_cb(TapiHandle *handle, int result,
                ret = __ctsvc_server_sim_sdn_read(info);
                WARN_IF(CONTACTS_ERROR_NONE != ret, "__ctsvc_server_sim_sdn_read() Failed(%d)", ret);
        }
-
-       return;
-#endif
 }
 
 static void __ctsvc_server_sim_get_iccid_cb(TapiHandle *handle, int result, void *data,void *user_data)
 {
-#if 0
        TelSimAccessResult_t access_rt = result;
        TelSimIccIdInfo_t *iccid = data;
        ctsvc_sim_info_s *info = user_data;
@@ -737,12 +721,10 @@ static void __ctsvc_server_sim_get_iccid_cb(TapiHandle *handle, int result, void
        ret = ctsvc_server_get_sim_id(info->sim_unique_id, &id);
        if (CONTACTS_ERROR_NONE == ret)
                info->sim_info_id = id;
-#endif
 }
 
 static int __ctsvc_server_sim_init_meta_info(ctsvc_sim_info_s *info)
 {
-#if 0
        int ret = TAPI_API_SUCCESS;
        int err = CONTACTS_ERROR_NONE;
 
@@ -763,13 +745,11 @@ static int __ctsvc_server_sim_init_meta_info(ctsvc_sim_info_s *info)
        RETVM_IF(ret != TAPI_API_SUCCESS, CONTACTS_ERROR_SYSTEM,
                                "tel_get_sim_(usim)_meta_info(type:%d) fail (%d)", info->sim_type, ret);
 
-#endif
        return CONTACTS_ERROR_NONE;
 }
 
 static int __ctsvc_server_sim_init_info(ctsvc_sim_info_s *info)
 {
-#if 0
        CTS_FN_CALL;
        int ret;
        TelSimCardType_t cardtype = TAPI_SIM_PB_UNKNOWNN;
@@ -789,7 +769,7 @@ static int __ctsvc_server_sim_init_info(ctsvc_sim_info_s *info)
        // set iccid : unique info of SIM
        ret = tel_get_sim_iccid (info->handle, __ctsvc_server_sim_get_iccid_cb, info);
        RETVM_IF(ret != TAPI_API_SUCCESS, CONTACTS_ERROR_SYSTEM, "tel_get_sim_iccid failed(%d)", ret);
-#endif
+
        return CONTACTS_ERROR_NONE;
 }
 
@@ -809,7 +789,6 @@ static void __ctsvc_server_sim_data_remove(ctsvc_sim_info_s *info)
 
 static void __ctsvc_server_sim_noti_pb_status(TapiHandle *handle, const char *noti_id, void *data, void *user_data)
 {
-#if 0
        CTS_FN_CALL;
        int ret = 0;
        ctsvc_sim_info_s *info = (ctsvc_sim_info_s*)user_data;
@@ -832,7 +811,6 @@ static void __ctsvc_server_sim_noti_pb_status(TapiHandle *handle, const char *no
        else {
                CTS_ERR("This noti did not control !!!");
        }
-#endif
 }
 
 static void __ctsvc_server_sim_noti_sim_refreshed(TapiHandle *handle, const char *noti_id, void *data, void *user_data)
@@ -847,8 +825,6 @@ static void __ctsvc_server_sim_noti_sim_refreshed(TapiHandle *handle, const char
 
 static int __ctsvc_server_sim_info_init()
 {
-#if 0
-
        int ret;
        int sim_stat = -1;
        TelSimPbList_t pb_list = {0,};
@@ -914,13 +890,11 @@ static int __ctsvc_server_sim_info_init()
 
        g_strfreev(cp_name);
 
-#endif
        return CONTACTS_ERROR_NONE;
 }
 
 static void __ctsvc_server_sim_ready_cb(keynode_t *key, void *data)
 {
-#if 0
        int status = 0;
        vconf_get_int(VCONFKEY_TELEPHONY_SIM_STATUS, &status);
 
@@ -933,12 +907,10 @@ static void __ctsvc_server_sim_ready_cb(keynode_t *key, void *data)
        vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SIM_STATUS, __ctsvc_server_sim_ready_cb);
 
        __ctsvc_server_sim_info_init();
-#endif
 }
 
 static void __ctsvc_server_telephony_ready_cb(keynode_t *key, void *data)
 {
-#if 0
        int bReady = 0;
        // TODO: it should be changed API
        vconf_get_bool(VCONFKEY_TELEPHONY_TAPI_STATE, &bReady);
@@ -962,13 +934,11 @@ static void __ctsvc_server_telephony_ready_cb(keynode_t *key, void *data)
        }
 
        __ctsvc_server_sim_info_init();
-#endif
 }
 
 
 int ctsvc_server_sim_init()
 {
-#if 0
        int bReady = 0;
        // TODO: it should be changed API
        vconf_get_bool(VCONFKEY_TELEPHONY_TAPI_STATE, &bReady);
@@ -988,13 +958,12 @@ int ctsvc_server_sim_init()
                __ctsvc_sim_cb = true;
                return CONTACTS_ERROR_NONE;
        }
-#endif
+
        return __ctsvc_server_sim_info_init();
 }
 
 int ctsvc_server_sim_final(void)
 {
-#if 0
        CTS_FN_CALL;
        GSList *info_cursor = NULL;
        sim_contact_s *record = NULL;
@@ -1025,7 +994,7 @@ int ctsvc_server_sim_final(void)
 
                free(info);
        }
-#endif
+
        return CONTACTS_ERROR_NONE;
 }
 
index f998fdb..f761060 100644 (file)
@@ -40,6 +40,8 @@
 #include "ctsvc_sqlite.h"
 #include "ctsvc_socket.h"
 #include "ctsvc_server_socket.h"
+#include "ctsvc_server_utils.h"
+
 #ifdef ENABLE_SIM_FEATURE
 #include "ctsvc_mutex.h"
 #include "ctsvc_server_sim.h"
@@ -307,6 +309,15 @@ static gboolean __ctsvc_server_socket_request_handler(GIOChannel *src, GIOCondit
 
        CTS_DBG("attach number = %d", msg.attach_num);
 
+       bool have_telephony_feature = false;
+       have_telephony_feature = ctsvc_server_have_telephony_feature();
+       if (!have_telephony_feature) {
+               CTS_ERR("Telephony feature disabled");
+               __ctsvc_server_socket_read_flush(src, msg.attach_sizes[0]);     // sim_id
+               ctsvc_server_socket_return(src, CONTACTS_ERROR_NOT_SUPPORTED, 0, NULL);
+               return TRUE;
+       }
+
 #ifdef ENABLE_SIM_FEATURE
        ctsvc_mutex_lock(CTS_MUTEX_SOCKET_CLIENT_INFO);
        struct client_info *info = g_hash_table_lookup(_client_info_table, GINT_TO_POINTER(fd));
index 9b595e3..efbb2ae 100755 (executable)
@@ -21,6 +21,7 @@
 #include <vconf-keys.h>
 #include <ITapiPhonebook.h>
 #include <TapiUtility.h>
+#include <system_info.h>
 
 #include "contacts.h"
 
 #include "ctsvc_localize.h"
 #include "ctsvc_normalize.h"
 
+#define CTSVC_FEATURE_TELEPHONY "http://tizen.org/feature/network.telephony"
+
 static int system_language = -1;
+static bool _ctsvc_have_telephony_feature = false;
+
+int ctsvc_server_load_feature_list(void)
+{
+       system_info_get_platform_bool(CTSVC_FEATURE_TELEPHONY, &_ctsvc_have_telephony_feature);
+       return CONTACTS_ERROR_NONE;
+}
+
+bool ctsvc_server_have_telephony_feature(void)
+{
+       return _ctsvc_have_telephony_feature;
+}
 
 inline int ctsvc_server_set_default_sort(int sort)
 {
index 59bf025..77881e0 100755 (executable)
@@ -19,6 +19,9 @@
 #ifndef __CTSVC_SERVER_UTILS_H__
 #define __CTSVC_SERVER_UTILS_H__
 
+int ctsvc_server_load_feature_list(void);
+bool ctsvc_server_have_telephony_feature(void);
+
 int ctsvc_server_init_configuration(void);
 void ctsvc_server_final_configuration(void);