[Internal: merge private->RSA , Patch create momanager.db]
authorJooHark Park <juhaki.park@samsung.com>
Mon, 22 Apr 2013 13:37:44 +0000 (22:37 +0900)
committerJooHark Park <juhaki.park@samsung.com>
Mon, 22 Apr 2013 13:37:44 +0000 (22:37 +0900)
=====================================
[Problem]
-
[Cause]
-
[Solution]
- merge private->RSA
- Patch create momanager.db
=====================================

Change-Id: Idf5eb5449a011548012e269ca7fdf02528c80c97

28 files changed:
TC/testcase/fw-test-cfg/test_fw_config.xml [changed mode: 0644->0755]
debian/changelog
doc/sample_client.xml [changed mode: 0644->0755]
include/data-adapter/interface_service_item.h
include/event/oma_dm_noti_api.h
include/plugin/data_connector_interface.h
packaging/sync-agent.spec
src/framework/data-adapter/interface_service_item.c
src/framework/device-manager/mo_accessor.c
src/framework/device-manager/mo_database.c
src/framework/device-manager/mo_database_handler.c
src/framework/event/handler.c
src/framework/event/oma_dm_fota_api.c
src/framework/event/oma_dm_noti_api.c
src/framework/initialization/parser.c
src/framework/plugin/data_connector_plugin.c
src/framework/plugin/data_connector_plugin.h
src/framework/utility/fw_compress.c
src/framework/utility/fw_mainloop.c
src/fw-plugins/common-public/contact/src/plugin_interface.c
src/fw-plugins/common-public/http/src/plugin_interface.c
src/fw-plugins/common-public/slp-device/src/slp_device_info.c
src/fw-plugins/common-public/vcalendar-task/include/vcalendar_string_util.h
src/fw-plugins/common-public/vcalendar-task/src/plugin_interface.c
src/fw-plugins/common-public/vcalendar-task/src/vcalendar_string_util.c
src/fw-plugins/common-public/vcalendar/include/vcalendar_string_util.h
src/fw-plugins/common-public/vcalendar/src/plugin_interface.c
src/fw-plugins/common-public/vcalendar/src/vcalendar_string_util.c

old mode 100644 (file)
new mode 100755 (executable)
index 1045bad..4d0a7a5
@@ -15,7 +15,7 @@
                <Max-Thread>5</Max-Thread>\r
        </EngineController>\r
        <FrameworkDB use="1">\r
-               <Path>/opt/dbspace/.fw_test.db</Path>\r
+               <Path>/opt/usr/dbspace/.fw_test.db</Path>\r
        </FrameworkDB>\r
        <ID-Provider>\r
                <Code>1</Code>\r
                </Domain>\r
        </PlugIn-Mgr>\r
        <DeviceManage>\r
-               <MO-DB-Path>/opt/dbspace/.mo_test.db</MO-DB-Path>\r
+               <MO-DB-Path>/opt/usr/dbspace/.mo_test.db</MO-DB-Path>\r
                <DependentDevInfoID>2</DependentDevInfoID>\r
        </DeviceManage>\r
 </INIT>\r
index b37b35b..a6490e7 100755 (executable)
@@ -1,6 +1,24 @@
+sync-agent (0.1.89) unstable; urgency=low
+
+  * 1. remove so link file about devel package.
+  * Git: framework/system/sync-agent
+  * Tag: sync-agent_0.1.89
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Fri, 19 Apr 2013 21:26:44 +0900
+
 sync-agent (0.1.88) unstable; urgency=low
 
-  * 1. Prevent fixed. -  50967, 38040, 26642
+  * 1. merge fixed prevent from RSA
+  * 2. Task Priority data is not converted.
+  * 3. fixed prevent 50967, 50973, 50974, 50994
+  * 4. remove unused build dependency.
+  * 5. PLM issue fix. P130408-0806
+  * 6. DB patch changed.
+  * 7. code cleanup. - vcalendar plugin.
+  * 8. sync status value added in profile info.
+  * 9. add async interface for smartswitch.
+  * 10. FOTA production IOT 015, 017 patch.
+  * 11. Prevent fixed. -  50967, 38040, 26642
   * Git: framework/system/sync-agent
   * Tag: sync-agent_0.1.88
 
old mode 100644 (file)
new mode 100755 (executable)
index 103a6af..a710f2e
@@ -17,7 +17,7 @@
                <Max-Thread>5</Max-Thread>      <!-- Maximum number of thread to allow -->
        </EngineController>
        <FrameworkDB use="1">   <!-- Use Framework DB or not, set use="1" if needed -->
-               <Path>/opt/dbspace/.user_client.db</Path>       <!-- Path to store Framework DB -->
+               <Path>/opt/usr/dbspace/.user_client.db</Path>   <!-- Path to store Framework DB -->
        </FrameworkDB>
        <ID-Provider>   <!-- ID Provider setting -->
                <Code>1</Code>  <!-- Unique identifier code which Framework identifies owner of ID provider instance internally -->
index d9f7d86..34989e6 100755 (executable)
@@ -943,7 +943,7 @@ sync_agent_is_exist_exdate_item(FW_CALENDAR, fw_parent_id, child_vcalendar)
  * @param[in]                  content_type                                            service type - service data connector plug-in's ID described in F/W config file
  * @param[in]                  addressbook_id                                  addressbook id of sim contact
  * @param[out]         item_id                                                 item id of sim contact
- * @param[in]                  content_type                                            data of sim contact
+ * @param[in]                  data                                                            data of sim contact
  * @return                     operation result
  * @retval                     current item count                                      success
  * @retval                     error value                                             fail
@@ -969,7 +969,7 @@ sync_agent_is_exist_exdate_item(FW_CALENDAR, fw_parent_id, child_vcalendar)
  * @endcode
  * @param[in]                  content_type                                            service type - service data connector plug-in's ID described in F/W config file
  * @param[in]                  item_id                                                 item id of sim contact
- * @param[in]                  content_type                                            data of sim contact
+ * @param[in]                  data                                                            data of sim contact
  * @return                     operation result
  * @retval                     current item count                                      success
  * @retval                     error value                                             fail
@@ -1002,6 +1002,33 @@ sync_agent_is_exist_exdate_item(FW_CALENDAR, fw_parent_id, child_vcalendar)
        sync_agent_da_return_e sync_agent_delete_sim_contact_item(int content_type, int item_id);
 
 /**
+ * @brief                              Add item
+ * @par Usage:
+ * @code
+
+ sync_agent_da_return_e ret = SYNC_AGENT_DA_ERRORS;
+ char *data;
+ int count;
+
+ ret = sync_agent_add_async_item(FW_CONTACT, data, count);
+ if (ret == SYNC_AGENT_DA_ERRORS) {
+       ...
+ } else {
+       ...
+ }
+
+ * @endcode
+ * @param[in]                  content_type                                            service type - service data connector plug-in's ID described in F/W config file
+ * @param[in]                  data                                                            data
+ * @param[in]                  count                                                   count of data
+ * @return                     operation result
+ * @retval                     current item count                                      success
+ * @retval                     error value                                             fail
+ */
+       sync_agent_da_return_e sync_agent_add_async_item(int content_type, GList *data, int count);
+
+
+/**
  *     @}
  */
 
index 58dba01..ea59667 100755 (executable)
@@ -121,6 +121,7 @@ extern "C" {
  * @endcode
  * @param[in] server_id server id
  * @param[in] session_id session id
+ * @param[in] triger_type triger type ( push or polling )
  *
  * @return SYNC_AGENT_DM_MO_SUCCESS on success, SYNC_AGENT_DM_MO_FAIL on error
  *
@@ -133,7 +134,7 @@ extern "C" {
  * @see
  *
  */
-       sync_agent_dm_error_e sync_agent_dm_fota_update_noti(char *server_id, char *session_id);
+       sync_agent_dm_error_e sync_agent_dm_fota_update_noti(char *server_id, char *session_id, int triger_type);
 
 /**
  * API to Cancel button in fota noti ui event API.
index 57a15cc..d2b3979 100755 (executable)
@@ -785,7 +785,7 @@ sync_agent_da_return_e sync_agent_plugin_get_info_sim_contact_item_id(int sim_ad
 sync_agent_da_return_e sync_agent_plugin_get_info_sim_contact_item(int item_id, char **data);
 
 /**
- * API to delete sim contact
+ * API to add sim contact
  *
  * @param[in]          contact addressbook ID of sim card
  * @param[out] contact item ID of sim card
@@ -836,6 +836,23 @@ sync_agent_da_return_e sync_agent_plugin_write_sim_contact_item(int item_id, cha
 sync_agent_da_return_e sync_agent_plugin_delete_sim_contact_item(int item_id);
 
 /**
+ * API to add item
+ *
+ * @param[in]          data
+ * @param[in]          count of data
+ *
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ *
+ * @par Since:
+ *
+ *
+ * @see sync_agent_plugin_add_async_item()
+ *
+ */
+
+sync_agent_da_return_e sync_agent_plugin_add_async_item(GList *data, int count);
+
+/**
  *     @}
  */
 #ifdef __cplusplus
index a23f7e1..a74c791 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       sync-agent
 Summary:    Sync agent FW Library
-Version:    0.1.88
+Version:    0.1.89
 Release:    1
 Group:      TO_BE/FILLED_IN
 License:    Apache License, Version 2.0
@@ -18,9 +18,7 @@ BuildRequires:  pkgconfig(libwbxml2)
 BuildRequires:  pkgconfig(calendar-service2)
 BuildRequires:  pkgconfig(pmapi)
 BuildRequires:  pkgconfig(accounts-svc)
-BuildRequires:  pkgconfig(email-service)
 BuildRequires:  pkgconfig(contacts-service2)
-BuildRequires:  pkgconfig(kies_alarm)
 BuildRequires:  pkgconfig(memo)
 BuildRequires:  pkgconfig(push)
 BuildRequires:  pkgconfig(alarm-service)
@@ -35,7 +33,6 @@ BuildRequires:  pkgconfig(aul)
 BuildRequires:  pkgconfig(db-util)
 BuildRequires:  pkgconfig(syspopup-caller)
 BuildRequires:  pkgconfig(capi-network-connection)
-BuildRequires:  pkgconfig(capi-network-serial)
 BuildRequires:  pkgconfig(capi-system-info)
 BuildRequires:  pkgconfig(appsvc)
 BuildRequires:  pkgconfig(dlog)
@@ -102,8 +99,6 @@ rm -rf %{buildroot}
 %defattr(-,root,root,-)
 %{_includedir}/sync_agent.h
 %{_includedir}/sync-agent/*
-%{_libdir}/*.so
-%{_libdir}/*.so.*
 %{_libdir}/pkgconfig/sync-agent.pc
 
 #%files -n common-private-plugins
index 3e7152c..1d3ad35 100755 (executable)
@@ -1313,7 +1313,7 @@ EXPORT_API int sync_agent_get_sim_contact_info_max_name_length(int content_type)
        _EXTERN_FUNC_ENTER;
 
        plugin_get_info_sim_contact_max_name_length_cb func_get_info_sim_contact_max_name_length = plugin_get_function_get_info_sim_contact_max_name_length(content_type);
-       retvm_if(func_get_info_sim_contact_max_name_length == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "cannot get plugin_get_info_sim_contact_max_name_length_cb !!");
+       retvm_if(func_get_info_sim_contact_max_name_length == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get plugin_get_info_sim_contact_max_name_length_cb");
 
        int maxNameLength = func_get_info_sim_contact_max_name_length();
 
@@ -1326,7 +1326,7 @@ EXPORT_API int sync_agent_get_sim_contact_info_max_number_length(int content_typ
        _EXTERN_FUNC_ENTER;
 
        plugin_get_info_sim_contact_max_number_length_cb func_get_info_sim_contact_max_number_length = plugin_get_function_get_info_sim_contact_max_number_length(content_type);
-       retvm_if(func_get_info_sim_contact_max_number_length == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "cannot get plugin_get_info_sim_contact_max_number_length_cb !!");
+       retvm_if(func_get_info_sim_contact_max_number_length == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get plugin_get_info_sim_contact_max_number_length_cb");
 
        int maxNumberLength = func_get_info_sim_contact_max_number_length();
 
@@ -1339,7 +1339,7 @@ EXPORT_API int sync_agent_get_sim_contact_info_max_email_length(int content_type
        _EXTERN_FUNC_ENTER;
 
        plugin_get_info_sim_contact_max_email_length_cb func_get_info_sim_contact_max_email_length = plugin_get_function_get_info_sim_contact_max_email_length(content_type);
-       retvm_if(func_get_info_sim_contact_max_email_length == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "cannot get plugin_get_info_sim_contact_max_email_length_cb !!");
+       retvm_if(func_get_info_sim_contact_max_email_length == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get plugin_get_info_sim_contact_max_email_length_cb");
 
        int maxEmailLength = func_get_info_sim_contact_max_email_length();
 
@@ -1352,7 +1352,7 @@ EXPORT_API int sync_agent_get_sim_contact_empty_count(int content_type)
        _EXTERN_FUNC_ENTER;
 
        plugin_get_info_sim_contact_empty_count_cb func_get_info_sim_contact_empty_count = plugin_get_function_get_info_sim_contact_empty_count(content_type);
-       retvm_if(func_get_info_sim_contact_empty_count == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "cannot get plugin_get_info_sim_contact_empty_count_cb !!");
+       retvm_if(func_get_info_sim_contact_empty_count == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get plugin_get_info_sim_contact_empty_count_cb");
 
        int emptyCount = func_get_info_sim_contact_empty_count();
 
@@ -1365,7 +1365,7 @@ EXPORT_API int sync_agent_get_sim_contact_empty_number_count(int content_type)
        _EXTERN_FUNC_ENTER;
 
        plugin_get_info_sim_contact_empty_number_count_cb func_get_info_sim_contact_empty_number_count = plugin_get_function_get_info_sim_contact_empty_number_count(content_type);
-       retvm_if(func_get_info_sim_contact_empty_number_count == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "cannot get plugin_get_info_sim_contact_empty_number_count_cb !!");
+       retvm_if(func_get_info_sim_contact_empty_number_count == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get plugin_get_info_sim_contact_empty_number_count_cb");
 
        int emptyNumberCount = func_get_info_sim_contact_empty_number_count();
 
@@ -1378,7 +1378,7 @@ EXPORT_API int sync_agent_get_sim_contact_empty_email_count(int content_type)
        _EXTERN_FUNC_ENTER;
 
        plugin_get_info_sim_contact_empty_email_count_cb func_get_info_sim_contact_empty_email_count = plugin_get_function_get_info_sim_contact_empty_email_count(content_type);
-       retvm_if(func_get_info_sim_contact_empty_email_count == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "cannot get plugin_get_info_sim_contact_empty_email_count_cb !!");
+       retvm_if(func_get_info_sim_contact_empty_email_count == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get plugin_get_info_sim_contact_empty_email_count_cb");
 
        int emptyEmailCount = func_get_info_sim_contact_empty_email_count();
 
@@ -1391,7 +1391,7 @@ EXPORT_API int sync_agent_get_sim_contact_addressbook_id(int content_type)
        _EXTERN_FUNC_ENTER;
 
        plugin_get_info_sim_contact_addressbook_id_cb func_get_info_sim_contact_addressbook_id = plugin_get_function_get_info_sim_contact_addressbook_id(content_type);
-       retvm_if(func_get_info_sim_contact_addressbook_id == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "cannot get plugin_get_info_sim_contact_addressbook_id !!");
+       retvm_if(func_get_info_sim_contact_addressbook_id == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get plugin_get_info_sim_contact_addressbook_id");
 
        int simContactAddressbookId = func_get_info_sim_contact_addressbook_id();
 
@@ -1406,7 +1406,7 @@ EXPORT_API sync_agent_da_return_e sync_agent_get_sim_contact_item_id(int content
        sync_agent_da_return_e da_ret = SYNC_AGENT_DA_SUCCESS;
 
        plugin_get_info_sim_contact_item_id_cb func_get_info_sim_contact_item_id = plugin_get_function_get_info_sim_contact_item_id(content_type);
-       retvm_if(func_get_info_sim_contact_item_id == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "cannot get func_get_info_sim_contact_item_id !!");
+       retvm_if(func_get_info_sim_contact_item_id == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get func_get_info_sim_contact_item_id");
 
        GList *item_id_list = NULL;
        da_ret = func_get_info_sim_contact_item_id(sim_addressbook_id, &item_id_list);
@@ -1426,7 +1426,7 @@ EXPORT_API sync_agent_da_return_e sync_agent_get_sim_contact_item(int content_ty
        sync_agent_da_return_e da_ret = SYNC_AGENT_DA_SUCCESS;
 
        plugin_get_info_sim_contact_item_cb func_get_info_sim_contact_item = plugin_get_function_get_info_sim_contact_item(content_type);
-       retvm_if(func_get_info_sim_contact_item == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "cannot get func_get_info_sim_contact_item !!");
+       retvm_if(func_get_info_sim_contact_item == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get func_get_info_sim_contact_item");
 
        char *item_data = NULL;
        da_ret = func_get_info_sim_contact_item(item_id, &item_data);
@@ -1446,7 +1446,7 @@ EXPORT_API sync_agent_da_return_e sync_agent_add_sim_contact_item(int content_ty
        sync_agent_da_return_e da_ret = SYNC_AGENT_DA_SUCCESS;
 
        plugin_add_sim_contact_item_cb func_add_sim_contact_item = plugin_get_function_add_sim_contact_item(content_type);
-       retvm_if(func_add_sim_contact_item == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "cannot get func_add_sim_contact_item !!");
+       retvm_if(func_add_sim_contact_item == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get func_add_sim_contact_item");
 
        int *item_id_tmp = NULL;
        da_ret = func_add_sim_contact_item(sim_addressbook_id, &item_id_tmp, data);
@@ -1467,7 +1467,7 @@ EXPORT_API sync_agent_da_return_e sync_agent_write_sim_contact_item(int content_
        sync_agent_da_return_e da_ret = SYNC_AGENT_DA_SUCCESS;
 
        plugin_write_sim_contact_item_cb func_write_sim_contact_item = plugin_get_function_write_sim_contact_item(content_type);
-       retvm_if(func_write_sim_contact_item == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "cannot get func_write_sim_contact_item !!");
+       retvm_if(func_write_sim_contact_item == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get func_write_sim_contact_item");
 
        da_ret = func_write_sim_contact_item(item_id, data);
        if (da_ret != SYNC_AGENT_DA_SUCCESS) {
@@ -1485,7 +1485,7 @@ EXPORT_API sync_agent_da_return_e sync_agent_delete_sim_contact_item(int content
        sync_agent_da_return_e da_ret = SYNC_AGENT_DA_SUCCESS;
 
        plugin_delete_sim_contact_item_cb func_delete_sim_contact_item = plugin_get_function_delete_sim_contact_item(content_type);
-       retvm_if(func_delete_sim_contact_item == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "cannot get func_delete_sim_contact_item !!");
+       retvm_if(func_delete_sim_contact_item == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get func_delete_sim_contact_item");
 
        da_ret = func_delete_sim_contact_item(item_id);
        if (da_ret != SYNC_AGENT_DA_SUCCESS) {
@@ -1496,3 +1496,26 @@ EXPORT_API sync_agent_da_return_e sync_agent_delete_sim_contact_item(int content
        return da_ret;
 }
 
+EXPORT_API sync_agent_da_return_e sync_agent_add_async_item(int content_type, GList *data, int count)
+{
+       _EXTERN_FUNC_ENTER;
+
+       retvm_if(data == NULL, SYNC_AGENT_DA_ERRORS, "data is NULL");
+       retvm_if(count == 0, SYNC_AGENT_DA_ERRORS, "count is 0");
+
+       _DEBUG_INFO("count = [%d]", count);
+
+       sync_agent_da_return_e da_ret = SYNC_AGENT_DA_SUCCESS;
+
+       plugin_add_async_item_cb func_add_async_item = plugin_get_function_add_async_item(content_type);
+       retvm_if(func_add_async_item == NULL, SYNC_AGENT_DA_NOT_FOUND_PLUG_IN, "Can't get func_add_async_item");
+
+       da_ret = func_add_async_item(data, count);
+       if (da_ret != SYNC_AGENT_DA_SUCCESS) {
+               _DEBUG_ERROR("func_add_async_item() fail, da_ret[%d]", da_ret);
+       }
+
+       _EXTERN_FUNC_EXIT;
+       return da_ret;
+}
+
index 49766de..a4fd76e 100755 (executable)
@@ -65,7 +65,7 @@ EXPORT_API sync_agent_dm_mo_error_e sync_agent_open_mo()
 
        _EXTERN_FUNC_EXIT;
 
-       return dm_mo_open("/opt/dbspace/.momanager.db");
+       return dm_mo_open("/opt/usr/dbspace/.momanager.db");
 }
 
 EXPORT_API sync_agent_dm_mo_error_e sync_agent_close_mo()
index e5d6850..e2b795d 100755 (executable)
@@ -48,9 +48,14 @@ static char *_extract_dmacc_name(const char *mo_full_path);
 
 static char *__create_table[] = {
        /* 1. create node_tbl */
+       /*
        "create table node_tbl "
            "( " "node_id integer primary key autoincrement, " "name varchar(100) not null, " "value varchar(100) default null, " "parent_node_id integer default null, " "full_path varchar(200) not null, " "node_type integer not null, "
            "mo_type integer not null, " "server_type integer default null, " "constraint node_tbl_parent_node_id_fk foreign key(parent_node_id) references node_tbl(node_id), " "constraint node_tbl_unique_key unique(full_path, mo_type, server_type) " ");",
+       */
+       "create table node_tbl "
+           "( " "node_id integer primary key autoincrement, " "name varchar(100) not null, " "value varchar(500) default null, " "parent_node_id integer default null, " "full_path varchar(200) not null, " "node_type integer not null, "
+           "mo_type integer not null, " "server_type integer default null, " "constraint node_tbl_parent_node_id_fk foreign key(parent_node_id) references node_tbl(node_id), " "constraint node_tbl_unique_key unique(full_path, mo_type, server_type) " ");",
 
        /* 2. create framework_property_tbl */
        "create table framework_property_tbl "
index d032641..47f2023 100755 (executable)
@@ -612,9 +612,18 @@ sync_agent_dm_mo_error_e _add_agent_handler(unsigned int key, SYNC_AGENT_DA_MO_H
        __print_agentDBHashTableLog();
 #endif
 
- addagentHandler:
        pthread_mutex_unlock(pMoDBHandlerMgr->mo_handlerTable_mutex);
+/* pKey_copy memory data will be free from using _remove_agent_handler function.
+       if(pKey_copy != NULL) {
+               free(pKey_copy);
+               pKey_copy = NULL;
+       }
+*/
+       _INNER_FUNC_EXIT;
+       return ret;
 
+ addagentHandler:
+       pthread_mutex_unlock(pMoDBHandlerMgr->mo_handlerTable_mutex);
        if(pKey_copy != NULL) {
                free(pKey_copy);
                pKey_copy = NULL;
index 5122843..a0ba430 100755 (executable)
@@ -339,7 +339,7 @@ static void *_event_listener(void *arg)
                _DEBUG_INFO("request.data [0x%x]", *(request.data));
 */
 
-               int event_num;
+               int event_num = 0;
                sync_agent_get_event_data_param_int(&request, &event_num);
                _DEBUG_TRACE("Received Event Number : %d\n", event_num);
 
@@ -369,8 +369,10 @@ static void *_event_listener(void *arg)
                        outbuf = NULL;
                }
 
-               if (client_sockfd >= 0 )
+               if (client_sockfd >= 0 ) {
                        close(client_sockfd);
+                       client_sockfd = -1;
+               }
        }
 
        _INNER_FUNC_EXIT;
index 2054c1c..5e55088 100755 (executable)
@@ -448,7 +448,7 @@ static int _fota_event_interface(sync_agent_dm_event_e event_num, int user_data)
                return SYNC_AGENT_DM_API_RESULT_FAILURE;
        }
 
-       _DEBUG_VERBOSE("event num : %d", event_num);
+       _DEBUG_INFO("event num : %d", event_num);
 
        switch (event_num) {
        case EVENT_SOFTWARE_UPDATE:
@@ -458,14 +458,14 @@ static int _fota_event_interface(sync_agent_dm_event_e event_num, int user_data)
                        sync_agent_append_event_data_param(request_event, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &task_id);
                        sync_agent_append_event_data_param(request_event, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &user_data);
 
-                       _DEBUG_VERBOSE("ui_type : FOTA_COMMON_UI");
-                       _DEBUG_VERBOSE("task_id : %d", task_id);
+                       _DEBUG_INFO("ui_type : FOTA_COMMON_UI");
+                       _DEBUG_INFO("task_id : %d", task_id);
                }
                break;
        case EVENT_CANCEL:
                sync_agent_append_event_data_param(request_event, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &task_id);
 
-               _DEBUG_VERBOSE("task_id : %d", task_id);
+               _DEBUG_INFO("task_id : %d", task_id);
                break;
        case EVENT_DOWNLOAD:
        case EVENT_INSTALL:
@@ -476,7 +476,7 @@ static int _fota_event_interface(sync_agent_dm_event_e event_num, int user_data)
                break;
        }
 
-       _DEBUG_VERBOSE("user_data : %d", user_data);
+       _DEBUG_INFO("user_data : %d", user_data);
 
        response_event = sync_agent_send_event(request_event, &error);
        if (error != SYNC_AGENT_EVENT_SUCCESS) {
@@ -502,7 +502,7 @@ static int _fota_event_interface(sync_agent_dm_event_e event_num, int user_data)
                return SYNC_AGENT_DM_API_RESULT_FAILURE;
        }
 
-       _DEBUG_VERBOSE("api_result : %d", api_result);
+       _DEBUG_INFO("api_result : %d", api_result);
 
        /* free request & response event */
        sync_agent_free_event(request_event);
index 928b9d2..781089f 100755 (executable)
@@ -49,7 +49,7 @@ static int __over_big_size_noti_cb(sync_agent_event_data_s * request, void *data
 static int __low_battery_noti_cb(sync_agent_event_data_s * request, void *data);
 static int __default_noti_cb(sync_agent_event_data_s * request, void *data);
 
-static int _push_event_interface(sync_agent_dm_event_e event_num, int user_data, char *server_id, char *session_id);
+static int _push_event_interface(sync_agent_dm_event_e event_num, int user_data, char *server_id, char *session_id, int triger_type);
 
 static int task_id = 0;
 
@@ -127,7 +127,7 @@ EXPORT_API sync_agent_dm_error_e sync_agent_dm_push_deinit()
        return result;
 }
 
-EXPORT_API sync_agent_dm_error_e sync_agent_dm_fota_update_noti(char *server_id, char *session_id)
+EXPORT_API sync_agent_dm_error_e sync_agent_dm_fota_update_noti(char *server_id, char *session_id, int triger_type)
 {
        _EXTERN_FUNC_ENTER;
 
@@ -135,7 +135,7 @@ EXPORT_API sync_agent_dm_error_e sync_agent_dm_fota_update_noti(char *server_id,
 
        sync_agent_dm_error_e result = UI_SYNC_AGENT_DM_SUCCESS;
 
-       if (_push_event_interface(EVENT_SOFTWARE_UPDATE, 0, server_id, session_id) != SYNC_AGENT_DM_API_RESULT_SUCCESS) {
+       if (_push_event_interface(EVENT_SOFTWARE_UPDATE, 0, server_id, session_id, triger_type) != SYNC_AGENT_DM_API_RESULT_SUCCESS) {
                _DEBUG_ERROR("_push_event_interface(event num : %d) failed !!", EVENT_SOFTWARE_UPDATE);
                result = UI_SYNC_AGENT_DM_FAIL;
        } else {
@@ -153,7 +153,7 @@ EXPORT_API sync_agent_dm_error_e sync_agent_dm_fota_cancel_noti()
 
        sync_agent_dm_error_e result = UI_SYNC_AGENT_DM_SUCCESS;
 
-       if (_push_event_interface(EVENT_CANCEL, 0, NULL, NULL) != SYNC_AGENT_DM_API_RESULT_SUCCESS) {
+       if (_push_event_interface(EVENT_CANCEL, 0, NULL, NULL, 0) != SYNC_AGENT_DM_API_RESULT_SUCCESS) {
                _DEBUG_ERROR("_push_event_interface(event num : %d) failed !!", EVENT_CANCEL);
                result = UI_SYNC_AGENT_DM_FAIL;
        } else {
@@ -171,7 +171,7 @@ EXPORT_API sync_agent_dm_error_e sync_agent_dm_fota_download_noti(int response_t
 
        sync_agent_dm_error_e result = UI_SYNC_AGENT_DM_SUCCESS;
 
-       if (_push_event_interface(EVENT_DOWNLOAD, response_type, NULL, NULL) != SYNC_AGENT_DM_API_RESULT_SUCCESS) {
+       if (_push_event_interface(EVENT_DOWNLOAD, response_type, NULL, NULL, 0) != SYNC_AGENT_DM_API_RESULT_SUCCESS) {
                _DEBUG_ERROR("_push_event_interface(event num : %d) failed !!", EVENT_DOWNLOAD);
                result = UI_SYNC_AGENT_DM_FAIL;
        } else {
@@ -189,7 +189,7 @@ EXPORT_API sync_agent_dm_error_e sync_agent_dm_fota_install_noti(int response_ty
 
        sync_agent_dm_error_e result = UI_SYNC_AGENT_DM_SUCCESS;
 
-       if (_push_event_interface(EVENT_INSTALL, response_type, NULL, NULL) != SYNC_AGENT_DM_API_RESULT_SUCCESS) {
+       if (_push_event_interface(EVENT_INSTALL, response_type, NULL, NULL, 0) != SYNC_AGENT_DM_API_RESULT_SUCCESS) {
                _DEBUG_ERROR("_push_event_interface(event num : %d) failed !!", EVENT_INSTALL);
                result = UI_SYNC_AGENT_DM_FAIL;
        } else {
@@ -207,7 +207,7 @@ EXPORT_API sync_agent_dm_error_e sync_agent_dm_fota_set_interval_noti(int interv
 
        sync_agent_dm_error_e result = UI_SYNC_AGENT_DM_SUCCESS;
 
-       if (_push_event_interface(EVENT_SET_INTERVAL, interval_type, NULL, NULL) != SYNC_AGENT_DM_API_RESULT_SUCCESS) {
+       if (_push_event_interface(EVENT_SET_INTERVAL, interval_type, NULL, NULL, 0) != SYNC_AGENT_DM_API_RESULT_SUCCESS) {
                _DEBUG_ERROR("_push_event_interface(event num : %d) failed !!", EVENT_SET_INTERVAL);
                result = UI_SYNC_AGENT_DM_FAIL;
        } else {
@@ -443,7 +443,7 @@ static int __default_noti_cb(sync_agent_event_data_s * request, void *data)
        return 0;
 }
 
-static int _push_event_interface(sync_agent_dm_event_e event_num, int user_data, char *server_id, char *session_id)
+static int _push_event_interface(sync_agent_dm_event_e event_num, int user_data, char *server_id, char *session_id, int triger_type)
 {
        _EXTERN_FUNC_ENTER;
 
@@ -461,34 +461,38 @@ static int _push_event_interface(sync_agent_dm_event_e event_num, int user_data,
                return SYNC_AGENT_DM_API_RESULT_FAILURE;
        }
 
-       _DEBUG_VERBOSE("event num : %d", event_num);
+       _DEBUG_INFO("event num : %d", event_num);
 
        switch (event_num) {
        case EVENT_SOFTWARE_UPDATE:
                {
                        sync_agent_dm_ui_type_e ui_type = FOTA_NOTI_UI;
+                       /*Event_Type real_triger_type = triger_type;*/
+                       int real_triger_type = triger_type;
                        real_session_id = strdup(session_id);
                        real_server_id = strdup(server_id);
                        sync_agent_append_event_data_param(request_event, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &ui_type);
                        sync_agent_append_event_data_param(request_event, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, real_session_id);
                        sync_agent_append_event_data_param(request_event, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, real_server_id);
+                       sync_agent_append_event_data_param(request_event, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &real_triger_type);
 
-                       _DEBUG_VERBOSE("ui_type : FOTA_NOTI_UI");
-                       _DEBUG_VERBOSE("SESSION_ID : %s", real_session_id);
-                       _DEBUG_VERBOSE("SERVER_ID : %s", real_server_id);
+                       _DEBUG_INFO("ui_type : FOTA_NOTI_UI");
+                       _DEBUG_INFO("SESSION_ID : %s", real_session_id);
+                       _DEBUG_INFO("SERVER_ID : %s", real_server_id);
+                       _DEBUG_INFO("triger_type : %d", real_triger_type);
                }
                break;
        case EVENT_CANCEL:
                sync_agent_append_event_data_param(request_event, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &task_id);
 
-               _DEBUG_VERBOSE("task_id : %d", task_id);
+               _DEBUG_INFO("task_id : %d", task_id);
                break;
        case EVENT_DOWNLOAD:
        case EVENT_INSTALL:
        case EVENT_SET_INTERVAL:
                sync_agent_append_event_data_param(request_event, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &user_data);
 
-               _DEBUG_VERBOSE("user_data : %d", user_data);
+               _DEBUG_INFO("user_data : %d", user_data);
                break;
        default:
                break;
@@ -518,7 +522,7 @@ static int _push_event_interface(sync_agent_dm_event_e event_num, int user_data,
                return SYNC_AGENT_DM_API_RESULT_FAILURE;
        }
 
-       _DEBUG_VERBOSE("api_result : %d", api_result);
+       _DEBUG_INFO("api_result : %d", api_result);
 
        /* free request & response event */
        if (event_num == EVENT_SOFTWARE_UPDATE) {
index d2e6d30..2316c43 100755 (executable)
@@ -860,7 +860,7 @@ static sync_agent_init_error_e __process_device_manage(xmlNode * device_manage_n
         */
        char *mo_db_path_str = __get_child_node_content(device_manage_node, "MO-DB-Path");
 
-//      mo_err = dm_mo_open("/opt/dbspace/.momanager.db");
+//      mo_err = dm_mo_open("/opt/usr/dbspace/.momanager.db");
        mo_err = dm_mo_open(mo_db_path_str);
        if (mo_err != SYNC_AGENT_DM_MO_SUCCESS) {
                _DEBUG_ERROR("Failed to dm_mo_open() : %d", mo_err);
@@ -886,7 +886,7 @@ static sync_agent_init_error_e __process_device_manage(xmlNode * device_manage_n
                        if (func_point_set_func_get_device_info != 0) {
                                func_point_set_func_get_device_info(sync_agent_get_devinfo);
                        } else {
-                               _DEBUG_ERROR("func_point_set_func_get_device_info is NULL!!");
+                               _DEBUG_ERROR("func_point_set_func_get_device_info is NULL!! mo_plugIn_id_list[%d] is %d", i, mo_plugIn_id_list[i]);
                        }
                }
 
index e758778..5f2bc50 100755 (executable)
@@ -92,6 +92,7 @@ plugin_data_connector_func_set_s plugin_get_data_connector_func_set(void *plugin
        func_set.func_add_sim_contact_item = dlsym(plugin_handle, "sync_agent_plugin_add_sim_contact_item");
        func_set.func_write_sim_contact_item = dlsym(plugin_handle, "sync_agent_plugin_write_sim_contact_item");
        func_set.func_delete_sim_contact_item = dlsym(plugin_handle, "sync_agent_plugin_delete_sim_contact_item");
+       func_set.func_add_async_item = dlsym(plugin_handle, "sync_agent_plugin_add_async_item");
 
        _EXTERN_FUNC_EXIT;
        return func_set;
@@ -908,6 +909,20 @@ plugin_delete_sim_contact_item_cb plugin_get_function_delete_sim_contact_item(in
        return plugin_repository[index].func_set.func_delete_sim_contact_item;
 }
 
+plugin_add_async_item_cb plugin_get_function_add_async_item(int plugin_id)
+{
+       _EXTERN_FUNC_ENTER;
+
+       int index = _find_data_connector_plugin(plugin_id);
+       if (index == -1) {
+               return NULL;
+       }
+
+       _EXTERN_FUNC_EXIT;
+
+       return plugin_repository[index].func_set.func_add_async_item;
+}
+
 static int _find_data_connector_plugin(int plugin_id)
 {
        _INNER_FUNC_ENTER;
index 21bdec4..7d4d5de 100755 (executable)
@@ -433,6 +433,12 @@ typedef sync_agent_da_return_e(*plugin_write_sim_contact_item_cb) (int item_id,
 typedef sync_agent_da_return_e(*plugin_delete_sim_contact_item_cb) (int item_id);
 
 /**
+ * @brief Prototype of plugin function for add item
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef sync_agent_da_return_e(*plugin_add_async_item_cb) (GList *data, int count);
+
+/**
  * @brief Structure for data-connector plugin function pointer set
  */
 typedef struct {
@@ -488,6 +494,7 @@ typedef struct {
        plugin_add_sim_contact_item_cb func_add_sim_contact_item; /**< function pointer of plugin_add_sim_contact_item_cb */
        plugin_write_sim_contact_item_cb func_write_sim_contact_item; /**< function pointer of plugin_write_sim_contact_item_cb */
        plugin_delete_sim_contact_item_cb func_delete_sim_contact_item; /**< function pointer of plugin_delete_sim_contact_item_cb */
+       plugin_add_async_item_cb func_add_async_item; /**< function pointer of plugin_add_async_item_cb */
 } plugin_data_connector_func_set_s;
 
 /**
@@ -909,6 +916,13 @@ plugin_write_sim_contact_item_cb plugin_get_function_write_sim_contact_item(int
 plugin_delete_sim_contact_item_cb plugin_get_function_delete_sim_contact_item(int plugin_id);
 
 /**
+ * @brief Get function pointer of plugin_add_async_item_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_add_async_item_cb on success, NULL on error
+ */
+plugin_add_async_item_cb plugin_get_function_add_async_item(int plugin_id);
+
+/**
  *     @}
  */
 
index cddaae5..15875fc 100755 (executable)
@@ -222,17 +222,19 @@ EXPORT_API sync_agent_util_compress_result_e sync_agent_ua_uncompress(sync_agent
        switch (type) {
        case SYNC_AGENT_UTIL_COMPRESS_TYPE_TAR:
                {
-                       int command_len = strlen("tar xvfp ") + strlen(input_file_path) + strlen(" -C ") + strlen(output_direcory_path) +strlen(" delta.ua")+ 1;
+                       int command_len = strlen("tar xvfp \"") + strlen(input_file_path) + strlen("\" -C ") + strlen(output_direcory_path) +strlen(" delta.ua")+ 1;
                        int len = 0;
                        command = (char *)calloc(command_len, sizeof(char));
+                       memset(command, 0, sizeof(char)*command_len);
                        if (command == NULL)
                                return SYNC_AGENT_UTIL_COMPRESS_FAIL;
 
-                       len = g_strlcat(command, "tar xvfp ", command_len);
+                       len = g_strlcat(command, "tar xvfp \"", command_len);
                        len = g_strlcat(command, input_file_path, command_len);
-                       len = g_strlcat(command, " -C ", command_len);
+                       len = g_strlcat(command, "\" -C ", command_len);
                        len = g_strlcat(command, output_direcory_path, command_len);
                        len = g_strlcat(command, " delta.ua", command_len);
+                       _DEBUG_INFO("command [%s]", command);
 
                        if (len >= command_len) {
                                _DEBUG_ERROR("command buffer overflow !!");
@@ -295,17 +297,19 @@ EXPORT_API sync_agent_util_compress_result_e sync_agent_ua_uncompress(sync_agent
 
 TAR_MV_EXECUTE:
        {
-               int command_len = strlen("mv ") + strlen(input_file_path) + strlen(" ") + strlen(output_direcory_path) +strlen("/delta.tar")+ 1;
+               int command_len = strlen("mv \"") + strlen(input_file_path) + strlen("\" ") + strlen(output_direcory_path) +strlen("/delta.tar")+ 1;
                int len = 0;
                command = (char *)calloc(command_len, sizeof(char));
+               memset(command, 0, sizeof(char)*command_len);
                if (command == NULL)
                        return SYNC_AGENT_UTIL_COMPRESS_FAIL;
 
-               len = g_strlcat(command, "mv ", command_len);
+               len = g_strlcat(command, "mv \"", command_len);
                len = g_strlcat(command, input_file_path, command_len);
-               len = g_strlcat(command, " ", command_len);
+               len = g_strlcat(command, "\" ", command_len);
                len = g_strlcat(command, output_direcory_path, command_len);
                len = g_strlcat(command, "/delta.tar", command_len);
+               _DEBUG_INFO("command [%s]", command);
 
                if (len >= command_len) {
                        _DEBUG_ERROR("command buffer overflow !!");
index f0d9d01..7b1ddc7 100755 (executable)
@@ -81,7 +81,7 @@ EXPORT_API void sync_agent_run_main_loop(int use_thread)
                                pthread_mutex_unlock(&loop_mutex);
                                _EXTERN_FUNC_EXIT;
                                return;
-                       }                       
+                       }
                        do {
                                pthread_cond_wait(&loop_cond, &loop_mutex);
                        } while (loop == NULL);
index c9c7afc..8eaf89d 100755 (executable)
@@ -293,6 +293,80 @@ DACI_FINISH:
        return ret;
 }
 
+EXPORT_API sync_agent_da_return_e sync_agent_plugin_add_async_item(GList *data, int count)
+{
+       _EXTERN_FUNC_ENTER;
+
+       retvm_if(data == NULL, SYNC_AGENT_DA_ERR_INVALID_CONTENT, "[da_contact_plugIn] data is NULL");
+       retvm_if(count == 0, SYNC_AGENT_DA_ERR_INVALID_CONTENT, "[da_contact_plugIn] count is 0");
+
+       contacts_error_e contacts_err = CONTACTS_ERROR_NONE;
+       contacts_list_h converted_list = NULL;
+       contacts_list_h input_list = NULL;
+       contacts_record_h converted_record = NULL;
+       contacts_record_h input_record = NULL;
+       GList *converted_data = NULL;
+       int index = 0;
+       unsigned int id_count = 0;
+       int *ids = NULL;
+
+       //for test
+       _DEBUG_INFO("[da_contact_plugIn] count = [%d]", count);
+       for (index = 0; index < count; ++index) {
+               _DEBUG_INFO("[da_contact_plugIn] nth[%d] data = [%s]", index, (char *)g_list_nth_data(data, index));
+       }
+
+       /* Convert from vCard to ctsvc struct */
+       for (index = 0; index < count; ++index) {
+               contacts_err = contacts_vcard_parse_to_contacts((char *)g_list_nth_data(data, index), &converted_list);
+               goto_if(contacts_err != CONTACTS_ERROR_NONE, "[da_contact_plugIn] contacts_vcard_parse_to_contacts() fail, contacts_err[%d]", contacts_err);
+
+               contacts_err = contacts_list_first(converted_list);
+               goto_if(contacts_err != CONTACTS_ERROR_NONE, "[da_contact_plugIn] contacts_list_first() fail, contacts_err[%d]", contacts_err);
+
+               contacts_err = contacts_list_get_current_record_p(converted_list, &converted_record);
+               goto_if(contacts_err != CONTACTS_ERROR_NONE, "[da_contact_plugIn] contacts_list_get_current_record_p() fail, contacts_err[%d]", contacts_err);
+
+               converted_data = g_list_append(converted_data, converted_record);
+       }
+       _DEBUG_INFO("[da_contact_plugIn] count of ctsvc struct list = [%d]", g_list_length(converted_data));
+
+       /* Insert item to Contact DB using Bulk API */
+       contacts_err = contacts_list_create(&input_list);
+       goto_if(contacts_err != CONTACTS_ERROR_NONE, "[da_contact_plugIn] contacts_list_create() fail, contacts_err[%d]", contacts_err);
+
+       for (index = 0; index < count; ++index) {
+               input_record = (contacts_record_h)g_list_nth_data(converted_data, index);
+               contacts_err = contacts_list_add(input_list, input_record);
+               goto_if(contacts_err != CONTACTS_ERROR_NONE, "[da_contact_plugIn] contacts_list_add() fail, contacts_err[%d]", contacts_err);
+       }
+
+       contacts_err = contacts_db_insert_records(input_list, &ids, &id_count);
+       goto_if(contacts_err != CONTACTS_ERROR_NONE, "[da_contact_plugIn] contacts_db_insert_records() fail, contacts_err[%d]", contacts_err);
+       _DEBUG_INFO("[da_contact_plugIn] Inputed count of data = [%d], Saved count of data = [%d]", count, id_count);
+       goto_if(count != id_count, "[da_contact_plugIn] contacts_db_insert_records() API wesn't create all contact data");
+
+return_part:
+       _DEBUG_INFO("[da_contact_plugIn] return_part");
+
+       if (converted_list != NULL) {
+               contacts_err = contacts_list_destroy(converted_list, false);
+               if (contacts_err != CONTACTS_ERROR_NONE) {
+                       _DEBUG_ERROR("[da_contact_plugIn] contacts_list_destroy() fail, contacts_err[%d]", contacts_err);
+               }
+       }
+
+       if (input_list != NULL) {
+               contacts_err = contacts_list_destroy(input_list, false);
+               if (contacts_err != CONTACTS_ERROR_NONE) {
+                       _DEBUG_ERROR("[da_contact_plugIn] contacts_list_destroy() fail, contacts_err[%d]", contacts_err);
+               }
+       }
+
+       _EXTERN_FUNC_EXIT;
+       return _convert_service_error_to_common_error(contacts_err);
+}
+
 EXPORT_API sync_agent_da_return_e sync_agent_plugin_update_item(int account_id, char *folder_id, char *item_id, void *data)
 {
        _EXTERN_FUNC_ENTER;
index c123a70..52de85a 100755 (executable)
@@ -23,7 +23,7 @@
 
 //#define USING_LIBSOUP
 /* #define time_check */
-//#define CBA
+//#define CBA /* for using HTTP certification of FOTA production */
 
 #ifdef USING_LIBSOUP
 #include <libsoup/soup-uri.h>
@@ -149,7 +149,8 @@ static common_header_info_s *__create_header_info(char *key, char *value);
 
 #ifdef CBA
 static void _add_certificate_option(CURL * curl, http_message_s * msg);
-static CURLcode ssl_context_cb(CURL * curl, SSL_CTX * sslctx, void *param);
+//static CURLcode ssl_context_cb(CURL * curl, SSL_CTX * sslctx, void *param);
+static CURLcode ssl_context_cb(CURL * curl, void * sslctx, void *param);
 static int verify_peer_cb(int preverify_ok, X509_STORE_CTX * x509_ctx);
 #endif
 
@@ -461,15 +462,23 @@ EXPORT_API int sync_agent_plugin_header_binding(GList * header_info, void **head
        }
        if (uri != NULL) {
 #ifdef CBA
-               if (is_certificate != NULL)
+               if (is_certificate != NULL) {
                        msg = _create_http_message(libcurl_method, uri, accept_encoding, atoi(is_certificate));
-               else
+               } else {
+                       msg = _create_http_message(libcurl_method, uri, accept_encoding, 0);
+               }
 #else
                msg = _create_http_message(libcurl_method, uri, accept_encoding);
 #endif
                _DEBUG_INFO("[na_http_plugIn] create_http_message(%s)\n", uri);
 
 #ifdef CBA
+               if (msg == NULL) {
+                       _DEBUG_INFO("[na_http_plugIn] create_http_message(%s) Failed\n", uri);
+                       res = 0;
+                       return res;
+               }
+
                if (msg->cert_info != NULL) {
                        _DEBUG_INFO("[na_http_plugIn] certificate info is existed !!");
 
@@ -478,7 +487,8 @@ EXPORT_API int sync_agent_plugin_header_binding(GList * header_info, void **head
                        for (iter = header_info; iter != NULL; iter = g_list_next(iter)) {
                                if (((common_header_info_s *) (iter->data))->key != NULL) {
                                        if (!strcmp(((common_header_info_s *) (iter->data))->key, "accept_all_certs")) {
-                                               msg->cert_info->accept_all_certs = strdup(((common_header_info_s *) (iter->data))->value);
+                                               //msg->cert_info->accept_all_certs = strdup(((common_header_info_s *) (iter->data))->value);
+                                               msg->cert_info->accept_all_certs = atoi(strdup(((common_header_info_s *) (iter->data))->value));
                                                break;
                                        }
                                }
@@ -488,7 +498,8 @@ EXPORT_API int sync_agent_plugin_header_binding(GList * header_info, void **head
                                iter_data = (common_header_info_s *) iter->data;
                                header_info = g_list_remove(header_info, iter_data);
                                free((common_header_info_s *) iter_data);
-                               _DEBUG_INFO("[na_http_plugIn] privatekey password : %s", msg->cert_info->accept_all_certs);
+                               //_DEBUG_INFO("[na_http_plugIn] privatekey password : %s", msg->cert_info->accept_all_certs);
+                               _DEBUG_INFO("[na_http_plugIn] accept_all_certs : %d", msg->cert_info->accept_all_certs);
                        }
 
                        iter = NULL;
@@ -532,7 +543,8 @@ EXPORT_API int sync_agent_plugin_header_binding(GList * header_info, void **head
                        for (iter = header_info; iter != NULL; iter = g_list_next(iter)) {
                                if (((common_header_info_s *) (iter->data))->key != NULL) {
                                        if (!strcmp(((common_header_info_s *) (iter->data))->key, "privatekey")) {
-                                               msg->cert_info->privatekey = strdup(((common_header_info_s *) (iter->data))->value);
+                                               //msg->cert_info->privatekey = strdup(((common_header_info_s *) (iter->data))->value);
+                                               msg->cert_info->privatekey = (unsigned char *)strdup(((common_header_info_s *) (iter->data))->value);
                                                break;
                                        }
                                }
@@ -1614,8 +1626,11 @@ static http_message_s *_create_http_message(libcurl_http_method_e method, char *
        _INNER_FUNC_ENTER;
 
        http_message_s *msg = (http_message_s *) calloc(1, sizeof(http_message_s));
-       if (msg == NULL)
+       if (msg == NULL) {
                return NULL;
+       } else {
+               memset(msg, 0, sizeof(http_message_s));
+       }
 
        msg->method = method;
        msg->uri = uri ? strdup(uri) : NULL;
@@ -1623,11 +1638,16 @@ static http_message_s *_create_http_message(libcurl_http_method_e method, char *
        msg->response_header = __create_http_buffer(HEADER_BLOCK_SIZE);
        msg->response_body = __create_http_buffer(CONTENT_BLOCK_SIZE);
 #ifdef CBA
-       if (is_cert != 0)
+       if (is_cert != 0){
                msg->cert_info = (certificate_info_s *) calloc(1, sizeof(certificate_info_s));
-       if (msg->cert_info == NULL) {
-               _DEBUG_ERROR("CALLOC failed !!!");
-               return NULL;
+               if (msg->cert_info == NULL) {
+                       _DEBUG_ERROR("CALLOC failed !!!");
+                       return NULL;
+               } else {
+                       memset(msg->cert_info, 0, sizeof(certificate_info_s));
+               }
+       } else {
+               msg->cert_info = NULL;
        }
 #endif
 
@@ -1858,11 +1878,12 @@ static void _add_certificate_option(CURL * curl, http_message_s * msg)
        _INNER_FUNC_EXIT;
 }
 
-static CURLcode ssl_context_cb(CURL * curl, SSL_CTX * sslctx, void *param)
+//static CURLcode ssl_context_cb(CURL * curl, SSL_CTX * sslctx, void *param)
+static CURLcode ssl_context_cb(CURL * curl, void * sslctx, void *param)
 {
        _EXTERN_FUNC_ENTER;
 
-       SSL_CTX_set_verify(sslctx, SSL_VERIFY_PEER, verify_peer_cb);
+       SSL_CTX_set_verify((SSL_CTX *)sslctx, SSL_VERIFY_PEER, verify_peer_cb);
 
        _EXTERN_FUNC_EXIT;
        return CURLE_OK;
index 2a75965..1d444e0 100755 (executable)
@@ -123,6 +123,7 @@ char *slp_device_info_get_modem_version()
        return get_str;
 */
        char *get_str = NULL;
+/*
        TapiHandle *handle = tel_init(NULL);
        if (!handle)
                _DEBUG_INFO("tapi handle is null\n");
@@ -140,7 +141,8 @@ char *slp_device_info_get_modem_version()
 
        if (!handle)
                tel_deinit(handle);
-
+*/
+       get_str = strdup("I8800XXKI1");
        _DEBUG_INFO("Modem version = %s\n", get_str);
 
        _EXTERN_FUNC_EXIT;
index ecb30f1..95af547 100755 (executable)
@@ -45,36 +45,52 @@ typedef enum task_date_type {
 } task_date_type_e;
 
 #define RRULE_KEYWORD                                  "\r\nRRULE:"
-#define RRULE_KEYWORD_FREQ_DAILY               "\r\nRRULE:FREQ=DAILY"
-#define RRULE_KEYWORD_FREQ_WEEKLY              "\r\nRRULE:FREQ=WEEKLY"
-#define RRULE_KEYWORD_FREQ_MONTHLY             "\r\nRRULE:FREQ=MONTHLY"
-#define RRULE_KEYWORD_FREQ_YEARLY              "\r\nRRULE:FREQ=YEARLY"
+#define RRULE_KEYWORD_FREQ_DAILY               RRULE_KEYWORD"FREQ=DAILY"
+#define RRULE_KEYWORD_FREQ_WEEKLY              RRULE_KEYWORD"FREQ=WEEKLY"
+#define RRULE_KEYWORD_FREQ_MONTHLY             RRULE_KEYWORD"FREQ=MONTHLY"
+#define RRULE_KEYWORD_FREQ_YEARLY              RRULE_KEYWORD"FREQ=YEARLY"
+#define WEEKDAY_RRULE_ORIGIN_KEYWORD   RRULE_KEYWORD"W0 "
+#define WEEKDAY_RRULE_CONVERTED_KEYWORD        RRULE_KEYWORD"W1 MO TU WE TH FR "
+
 #define RRULE_KEYWORD_INTERVAL                 "INTERVAL="
 #define RRULE_KEYWORD_BYDAY                            "BYDAY="
 #define RRULE_KEYWORD_BYMONTH                  "BYMONTH="
 #define RRULE_KEYWORD_BYMONTHDAY               "BYMONTHDAY="
 #define RRULE_KEYWORD_UNTIL                            "UNTIL="
 #define RRULE_KEYWORD_COUNT                            "COUNT="
-#define DTSTART_KEYWORD                                        "\r\nDTSTART:"
-#define DTEND_KEYWORD                                  "\r\nDTEND"
-#define BEGIN_ALARM_KEYWORD                            "\r\nBEGIN:VALARM"
-#define AALARM_KEYWORD                                 "\r\nAALARM:"
-#define END_VTODO_KEYWORD                              "\r\nEND:VTODO\r\n"
-#define DUEDATE_KEYWORD                                        "\r\nDUE:"
 #define MAX_RRULE_DATE_KEYWORD                 "20361231T"
-#define MAX_DUE_DATE_KEYWORD                   "\r\nDUE:20381231T000000Z\r\n" // refer to calendar info (min ~ max date)
+
+#define DTSTART_KEYWORD                                        "DTSTART:"
 #define MAX_MOBEX_DTSTART_KEYWORD              "\r\nDTSTART:20370101T090000Z"
 #define MAX_CALENDAR_DTSTART_KEYWORD   "\r\nDTSTART:20381231T000000Z"
-#define WEEKDAY_RRULE_ORIGIN_KEYWORD   "\r\nRRULE:W0 "
-#define WEEKDAY_RRULE_CONVERTED_KEYWORD        "\r\nRRULE:W1 MO TU WE TH FR "
+#define DUEDATE_KEYWORD                                        "\r\nDUE:"
+#define MAX_DUE_DATE_KEYWORD                   "\r\nDUE:20381231T000000Z\r\n" // refer to calendar info (min ~ max date)
 #define TIMEZONE_GMT                                   "Etc/GMT"
+#define AALARM_KEYWORD                                 "AALARM:"
+#define END_VTODO_KEYWORD                              "\r\nEND:VTODO\r\n"
+
+
+// Task Priority value
+// SLP Phone = high:1~4, normal:5, low:6~9, NONE:0   /  Kies = high:1, normal:2, low:3
+#define PRIORITY_KEYWORD                               "\r\nPRIORITY:"
+#define PRIORITY_TIZEN_HIGH_1_KEYWORD  PRIORITY_KEYWORD"1"
+#define PRIORITY_TIZEN_HIGH_2_KEYWORD  PRIORITY_KEYWORD"2"
+#define PRIORITY_TIZEN_HIGH_3_KEYWORD  PRIORITY_KEYWORD"3"
+#define PRIORITY_TIZEN_HIGH_4_KEYWORD  PRIORITY_KEYWORD"4"
+#define PRIORITY_TIZEN_NORMAL_KEYWORD  PRIORITY_KEYWORD"5"
+#define PRIORITY_TIZEN_LOW_6_KEYWORD   PRIORITY_KEYWORD"6"
+#define PRIORITY_TIZEN_LOW_7_KEYWORD   PRIORITY_KEYWORD"7"
+#define PRIORITY_TIZEN_LOW_8_KEYWORD   PRIORITY_KEYWORD"8"
+#define PRIORITY_TIZEN_LOW_9_KEYWORD   PRIORITY_KEYWORD"9"
+
+#define PRIORITY_KIES_HIGH_KEYWORD             PRIORITY_KEYWORD"1"
+#define PRIORITY_KIES_NORMAL_KEYWORD   PRIORITY_KEYWORD"2"
+#define PRIORITY_KIES_LOW_KEYWORD              PRIORITY_KEYWORD"3"
 
 #define CALENDAR_IMAGE_KEYWORD_SNOTE   "snote" // refer to Cal-svc.h (calendar\include)
 #define CALENDAR_IMAGE_KEYWORD_PHOTO   "photo" // refer to Cal-svc.h (calendar\include)
 #define IMAGE_KEYWORD_PREFIX_SNOTE             "X-SS-ATTACH-SNOTE;"
 #define IMAGE_KEYWORD_PREFIX_PHOTO             "X-SS-ATTACH-IMAGE;"
-#define CR_IMAGE_KEYWORD_PREFIX_SNOTE  "\r\nX-SS-ATTACH-SNOTE;"
-#define CR_IMAGE_KEYWORD_PREFIX_PHOTO  "\r\nX-SS-ATTACH-IMAGE;"
 #define IMAGE_KEYWORD_BEGIN_PATH               "PATH=3D"
 #define IMAGE_KEYWORD_END_PATH                 "=3bDATE=3D\r\n"
 
@@ -87,11 +103,13 @@ typedef enum task_date_type {
 char * get_value_by_token(const char *src, const char *token, const char *end_of_token);
 char * replace_string(char *origin, const char *src, const char *dest);
 long long int get_unix_time(char *str_time);
+
+calendar_list_h set_vcalendar_version(calendar_record_h cal_record);
 void set_timezone(const char *origin, calendar_record_h cal_record);
 void process_no_due_date(const char *origin, calendar_record_h cal_record);
-void insert_allday_data(const char *origin, calendar_record_h calendar_record);
 char * has_image_import(const char *origin);
 char * has_image_export(calendar_record_h cal_record);
+
 char * replace_rrule_data(char *origin);
 char * replace_image_data(char *origin, char *image_path);
 char * replace_priority_data(char *origin, bool is_phone_to_kies);
index b9f3c93..3136fed 100755 (executable)
@@ -630,7 +630,6 @@ EXPORT_API sync_agent_da_return_e sync_agent_plugin_reverse_converter(void *serv
        calendar_list_h list = NULL;
        calendar_record_h temp_service_data = (calendar_record_h) service_data;
        calendar_record_h image_item = (calendar_record_h) temp_service_data;
-       calendar_record_h extended_version = NULL;
        sync_agent_da_return_e ret = SYNC_AGENT_DA_SUCCESS;
        int service_ret = CALENDAR_ERROR_NONE;
        char *temp_agent_data = NULL;
@@ -640,20 +639,8 @@ EXPORT_API sync_agent_da_return_e sync_agent_plugin_reverse_converter(void *serv
        goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar-task] calendar_list_create() Fail!: err[%d]", service_ret);
 
        // 1. extended vcalendar version : it should be excuted before calendar_vcalendar_make_from_records
-       service_ret = calendar_record_create(_calendar_extended_property._uri, &extended_version);
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar-task] calendar_record_create() Fail!: err[%d]", service_ret);
-
-       service_ret = calendar_record_set_str(extended_version, _calendar_extended_property.key, "VERSION");
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar-task] calendar_record_set_str() Fail!: err[%d]", service_ret);
-
-       service_ret = calendar_record_set_str(extended_version, _calendar_extended_property.value, ":1.0");
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar-task] calendar_record_set_str() Fail!: err[%d]", service_ret);
-
-       service_ret = calendar_list_add(list, extended_version);
-       goto_if(service_ret != CALENDAR_ERROR_NONE || list == NULL, "[vcalendar-task] calendar_list_add() Fail!: err[%d]", service_ret);
-
-       service_ret = calendar_list_add(list, temp_service_data);
-       goto_if(service_ret != CALENDAR_ERROR_NONE || list == NULL, "[vcalendar-task] calendar_list_add() Fail!: err[%d]", service_ret);
+       list = set_vcalendar_version(temp_service_data);
+       goto_if(list == NULL, "list is NULL");
 
        service_ret = calendar_vcalendar_make_from_records(list, &temp_agent_data);
        _DEBUG_INFO("temp_agent_data = %s", temp_agent_data);
index 1d89ed1..a79ff93 100755 (executable)
@@ -251,7 +251,7 @@ static char * _replace_alarm_data(char *origin)
        char *str_interval = NULL;
        task_date_type_e cal_type = CALENDAR_DATE_TYPE_ONTIME;
 
-       if ((freq_loc = strstr(origin, BEGIN_ALARM_KEYWORD)) == NULL) {
+       if ((freq_loc = strstr(origin, "\r\nBEGIN:VALARM")) == NULL) {
                _DEBUG_ERROR("there is not trigger data");
                goto return_part;
        }
@@ -660,6 +660,39 @@ char * replace_string(char *origin, const char *src, const char *dest)
        return new_str;
 }
 
+EXPORT_API calendar_list_h set_vcalendar_version(calendar_record_h cal_record)
+{
+       _INNER_FUNC_ENTER;
+       retvm_if(cal_record == NULL, NULL, "cal_record is NULL");
+
+       int service_ret = CALENDAR_ERROR_NONE;
+       calendar_list_h list = NULL;
+       calendar_record_h extended_version = NULL;
+
+       service_ret = calendar_record_create(_calendar_extended_property._uri, &extended_version);
+       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_create() Fail!: err[%d]", service_ret);
+
+       service_ret = calendar_record_set_str(extended_version, _calendar_extended_property.key, "VERSION");
+       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_set_str() Fail!: err[%d]", service_ret);
+
+       service_ret = calendar_record_set_str(extended_version, _calendar_extended_property.value, ":1.0");
+       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_set_str() Fail!: err[%d]", service_ret);
+
+       service_ret = calendar_list_create(&list);
+       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_list_create() Fail!: err[%d]", service_ret);
+
+       service_ret = calendar_list_add(list, extended_version);
+       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_list_add() Fail!: err[%d]", service_ret);
+
+       service_ret = calendar_list_add(list, cal_record);
+       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_list_add() Fail!: err[%d]", service_ret);
+
+return_part:
+       _INNER_FUNC_EXIT;
+       return list;
+}
+
+
 // PLM(P130408-0777) : In case of DTSTART / DTEND with zulu time ('Z'), GMT timezone should be set.
 EXPORT_API void set_timezone(const char *origin, calendar_record_h cal_record)
 {
@@ -671,10 +704,10 @@ EXPORT_API void set_timezone(const char *origin, calendar_record_h cal_record)
        char *temp = NULL;
        char *str_start = NULL;
 
-       temp = strstr(origin, DTSTART_KEYWORD);
+       temp = strstr(origin, "\r\n"DTSTART_KEYWORD);
        goto_if(temp == NULL, "origin has not DTSTART. origin = %s", origin);
 
-       str_start = get_value_by_token(temp + 2, "DTSTART:", "\r\n");
+       str_start = get_value_by_token(temp + 2, DTSTART_KEYWORD, "\r\n");
        goto_if(str_start == NULL, "str_start is NULL");
        goto_if(str_start == NULL, "str_start is NULL. temp = %s", temp);
 
@@ -722,12 +755,12 @@ EXPORT_API void process_no_due_date(const char *origin, calendar_record_h cal_re
 
                if (has_alarm == 1) {
                        char *start_date_loc = NULL;
-                       if ((start_date_loc = strstr(origin, AALARM_KEYWORD)) != NULL) {
+                       if ((start_date_loc = strstr(origin, "\r\n"AALARM_KEYWORD)) != NULL) {
                                calendar_record_h new_alarm_record = NULL;
                                long long int utime = 0;
                                char *str_alarm = NULL;
 
-                               str_alarm = get_value_by_token(start_date_loc+2, "AALARM:", "\r\n");
+                               str_alarm = get_value_by_token(start_date_loc+2, AALARM_KEYWORD, "\r\n");
                                utime = get_unix_time(str_alarm);
                                if (str_alarm) {
                                        free(str_alarm);
@@ -763,7 +796,7 @@ EXPORT_API char * has_image_import(const char *origin)
        char *image_path = NULL;
        _DEBUG_INFO("origin = %s", origin);
 
-       if (strstr(origin, CR_IMAGE_KEYWORD_PREFIX_PHOTO) == NULL && strstr(origin, CR_IMAGE_KEYWORD_PREFIX_SNOTE) == NULL) {
+       if (strstr(origin, "\r\n"IMAGE_KEYWORD_PREFIX_PHOTO) == NULL && strstr(origin, "\r\n"IMAGE_KEYWORD_PREFIX_SNOTE) == NULL) {
                _DEBUG_INFO("this calendar has not an image");
                goto return_part;
        }
@@ -951,8 +984,7 @@ return_part:
        return origin;
 }
 
-// SLP Phone = high:2, normal:4 low:8 NONE:1
-// Kies = high : 1 normal : 2 low : 3
+
 char * replace_priority_data(char *origin, bool is_phone_to_kies)
 {
        _INNER_FUNC_ENTER;
@@ -961,17 +993,32 @@ char * replace_priority_data(char *origin, bool is_phone_to_kies)
 
        if (is_phone_to_kies) {
                _DEBUG_INFO("phone to kies converting");
-               if (strstr(origin, "\r\nPRIORITY:2") != NULL) {
-                       // high priority
-                       origin = replace_string(origin, "\r\nPRIORITY:2", "\r\nPRIORITY:1");
+               if (strstr(origin, PRIORITY_TIZEN_HIGH_1_KEYWORD) != NULL) {
+                       origin = replace_string(origin, PRIORITY_TIZEN_HIGH_1_KEYWORD, PRIORITY_KIES_HIGH_KEYWORD);
+               }
+               else if (strstr(origin, PRIORITY_TIZEN_HIGH_2_KEYWORD) != NULL) {
+                       origin = replace_string(origin, PRIORITY_TIZEN_HIGH_2_KEYWORD, PRIORITY_KIES_HIGH_KEYWORD);
                }
-               else if (strstr(origin, "\r\nPRIORITY:4") != NULL) {
-                       // normal priority
-                       origin = replace_string(origin, "\r\nPRIORITY:4", "\r\nPRIORITY:2");
+               else if (strstr(origin, PRIORITY_TIZEN_HIGH_3_KEYWORD) != NULL) {
+                       origin = replace_string(origin, PRIORITY_TIZEN_HIGH_3_KEYWORD, PRIORITY_KIES_HIGH_KEYWORD);
                }
-               else if (strstr(origin, "\r\nPRIORITY:8") != NULL) {
-                       // low priority
-                       origin = replace_string(origin, "\r\nPRIORITY:8", "\r\nPRIORITY:3");
+               else if (strstr(origin, PRIORITY_TIZEN_HIGH_4_KEYWORD) != NULL) {
+                       origin = replace_string(origin, PRIORITY_TIZEN_HIGH_4_KEYWORD, PRIORITY_KIES_HIGH_KEYWORD);
+               }
+               else if (strstr(origin, PRIORITY_TIZEN_NORMAL_KEYWORD) != NULL) {
+                       origin = replace_string(origin, PRIORITY_TIZEN_NORMAL_KEYWORD, PRIORITY_KIES_NORMAL_KEYWORD);
+               }
+               else if (strstr(origin, PRIORITY_TIZEN_LOW_6_KEYWORD) != NULL) {
+                       origin = replace_string(origin, PRIORITY_TIZEN_LOW_6_KEYWORD, PRIORITY_KIES_LOW_KEYWORD);
+               }
+               else if (strstr(origin, PRIORITY_TIZEN_LOW_7_KEYWORD) != NULL) {
+                       origin = replace_string(origin, PRIORITY_TIZEN_LOW_7_KEYWORD, PRIORITY_KIES_LOW_KEYWORD);
+               }
+               else if (strstr(origin, PRIORITY_TIZEN_LOW_8_KEYWORD) != NULL) {
+                       origin = replace_string(origin, PRIORITY_TIZEN_LOW_8_KEYWORD, PRIORITY_KIES_LOW_KEYWORD);
+               }
+               else if (strstr(origin, PRIORITY_TIZEN_LOW_9_KEYWORD) != NULL) {
+                       origin = replace_string(origin, PRIORITY_TIZEN_LOW_9_KEYWORD, PRIORITY_KIES_LOW_KEYWORD);
                }
                else {
                        _DEBUG_ERROR("there is an error. origin = %s", origin);
@@ -980,17 +1027,14 @@ char * replace_priority_data(char *origin, bool is_phone_to_kies)
        }
        else {
                _DEBUG_INFO("kies to phone converting");
-               if (strstr(origin, "\r\nPRIORITY:1") != NULL) {
-                       // high priority
-                       origin = replace_string(origin, "\r\nPRIORITY:1", "\r\nPRIORITY:2");
+               if (strstr(origin, PRIORITY_KIES_HIGH_KEYWORD) != NULL) {
+                       origin = replace_string(origin, PRIORITY_KIES_HIGH_KEYWORD, PRIORITY_TIZEN_HIGH_1_KEYWORD);
                }
-               else if (strstr(origin, "\r\nPRIORITY:2") != NULL) {
-                       // normal priority
-                       origin = replace_string(origin, "\r\nPRIORITY:2", "\r\nPRIORITY:4");
+               else if (strstr(origin, PRIORITY_KIES_NORMAL_KEYWORD) != NULL) {
+                       origin = replace_string(origin, PRIORITY_KIES_NORMAL_KEYWORD, PRIORITY_TIZEN_NORMAL_KEYWORD);
                }
-               else if (strstr(origin, "\r\nPRIORITY:3") != NULL) {
-                       // low priority
-                       origin = replace_string(origin, "\r\nPRIORITY:3", "\r\nPRIORITY:8");
+               else if (strstr(origin, PRIORITY_KIES_LOW_KEYWORD) != NULL) {
+                       origin = replace_string(origin, PRIORITY_KIES_LOW_KEYWORD, PRIORITY_TIZEN_LOW_6_KEYWORD);
                }
                else {
                        _DEBUG_ERROR("there is an error. origin = %s", origin);
@@ -999,7 +1043,6 @@ char * replace_priority_data(char *origin, bool is_phone_to_kies)
        }
 
 return_part:
-
        _INNER_FUNC_EXIT;
        return origin;
 }
index dfca727..385ffa2 100755 (executable)
@@ -62,32 +62,33 @@ struct sync_agent_calendar_exdate_s {
 };
 
 #define RRULE_KEYWORD                                  "\r\nRRULE:"
-#define RRULE_KEYWORD_FREQ_DAILY               "\r\nRRULE:FREQ=DAILY"
-#define RRULE_KEYWORD_FREQ_WEEKLY              "\r\nRRULE:FREQ=WEEKLY"
-#define RRULE_KEYWORD_FREQ_MONTHLY             "\r\nRRULE:FREQ=MONTHLY"
-#define RRULE_KEYWORD_FREQ_YEARLY              "\r\nRRULE:FREQ=YEARLY"
+#define RRULE_KEYWORD_FREQ_DAILY               RRULE_KEYWORD"FREQ=DAILY"
+#define RRULE_KEYWORD_FREQ_WEEKLY              RRULE_KEYWORD"FREQ=WEEKLY"
+#define RRULE_KEYWORD_FREQ_MONTHLY             RRULE_KEYWORD"FREQ=MONTHLY"
+#define RRULE_KEYWORD_FREQ_YEARLY              RRULE_KEYWORD"FREQ=YEARLY"
+
 #define RRULE_KEYWORD_INTERVAL                 "INTERVAL="
 #define RRULE_KEYWORD_BYDAY                            "BYDAY="
 #define RRULE_KEYWORD_BYMONTH                  "BYMONTH="
 #define RRULE_KEYWORD_BYMONTHDAY               "BYMONTHDAY="
 #define RRULE_KEYWORD_UNTIL                            "UNTIL="
 #define RRULE_KEYWORD_COUNT                            "COUNT="
-#define DTSTART_KEYWORD                                        "\r\nDTSTART:"
-#define DTEND_KEYWORD                                  "\r\nDTEND:"
-#define BEGIN_ALARM_KEYWORD                            "\r\nBEGIN:VALARM"
-#define AALARM_KEYWORD                                 "\r\nAALARM"
-#define END_VEVENT_KEYWORD                             "\r\nEND:VEVENT\r\n"
-#define SUMMARY_KEYWORD                                        "\r\nSUMMARY:"
+
 #define MAX_RRULE_DATE_KEYWORD                 "20361231T"
-#define WEEKDAY_RRULE_ORIGIN_KEYWORD   "\r\nRRULE:W0 "
-#define WEEKDAY_RRULE_CONVERTED_KEYWORD        "\r\nRRULE:W1 MO TU WE TH FR "
+#define WEEKDAY_RRULE_ORIGIN_KEYWORD   RRULE_KEYWORD"W0 "
+#define WEEKDAY_RRULE_CONVERTED_KEYWORD        RRULE_KEYWORD"W1 MO TU WE TH FR "
+
+#define DTSTART_KEYWORD                                        "DTSTART:"
+#define DTEND_KEYWORD                                  "DTEND:"
+#define AALARM_KEYWORD                                 "AALARM:"
+#define END_VEVENT_KEYWORD                             "END:VEVENT"
+#define SUMMARY_KEYWORD                                        "SUMMARY:"
 #define TIMEZONE_GMT                                   "Etc/GMT"
+#define ALLDAY_PREFIX                                  "X-ALLDAY:"
 
 #define EXTYPE_UID_KEYWORD                             "\r\nUID:"
 #define EXTYPE_DELETE_KEYWORD                  "X-EXTYPE:1"
 #define EXTYPE_UPDATE_KEYWORD                  "X-EXTYPE:2"
-#define CR_EXTYPE_DELETE_KEYWORD               "\r\nX-EXTYPE:1" // carrige return + EXTYPE_DELETE_KEYWORD
-#define CR_EXTYPE_UPDATE_KEYWORD               "\r\nX-EXTYPE:2" // carrige return + EXTYPE_UPDATE_KEYWORD
 #define IMPORT_EXTYPE_DELETE_KEYWORD   "\r\nX-EXTYPE:1\r\nEXDATE:"
 #define IMPORT_EXTYPE_UPDATE_KEYWORD   "\r\nX-EXTYPE:2\r\nEXDATE:"
 #define EXDATE_KEYWORD                                 "\r\nEXDATE:"
@@ -96,8 +97,6 @@ struct sync_agent_calendar_exdate_s {
 #define CALENDAR_IMAGE_KEYWORD_PHOTO   "photo" // refer to Cal-svc.h (calendar\include)
 #define IMAGE_KEYWORD_PREFIX_SNOTE             "X-SS-ATTACH-SNOTE;"
 #define IMAGE_KEYWORD_PREFIX_PHOTO             "X-SS-ATTACH-IMAGE;"
-#define CR_IMAGE_KEYWORD_PREFIX_SNOTE  "\r\nX-SS-ATTACH-SNOTE;"
-#define CR_IMAGE_KEYWORD_PREFIX_PHOTO  "\r\nX-SS-ATTACH-IMAGE;"
 #define IMAGE_KEYWORD_BEGIN_PATH               "PATH=3D"
 #define IMAGE_KEYWORD_END_PATH                 "=3bDATE=3D\r\n"
 
@@ -112,13 +111,17 @@ struct sync_agent_calendar_exdate_s {
 
 char * get_value_by_token(const char *src, const char *token, const char *end_of_token);
 char * replace_string(char *origin, const char *src, const char *dest);
+
+calendar_list_h set_vcalendar_version(calendar_record_h cal_record);
 void set_timezone(const char *origin, calendar_record_h cal_record);
+void set_allday(const char *origin, calendar_record_h calendar_record, bool is_phone_to_kies);
+
 char * remove_uid(char *origin);
 char * insert_exdate_data(char *origin, sync_agent_calendar_exdate_t *exdate_struct, int index);
-void insert_allday_data(const char *origin, calendar_record_h calendar_record);
 char * has_image_import(const char *origin);
 char * has_image_export(calendar_record_h cal_record);
 void get_exdate_data(calendar_record_h cal_record, sync_agent_calendar_exdate_t *exdate_struct);
+
 char * replace_rrule_data(char *origin);
 char * replace_image_data(char *origin, char *image_path);
 void replace_deleted_exdate_data(const char *origin, calendar_record_h parent_record);
index bed35d3..7270276 100755 (executable)
@@ -117,8 +117,8 @@ EXPORT_API sync_agent_da_return_e sync_agent_plugin_converter(const void *agent_
        set_timezone(temp_agent_data, temp_service_data);
 
        // 2. "all day" setting : it should be excuted after calendar_vcalendar_parse_to_calendar
-       if (strstr((char *)agent_data, "\r\nX-ALLDAY:SET") != NULL) {
-               insert_allday_data((char *)agent_data, temp_service_data);
+       if (strstr((char *)agent_data, "\r\n"ALLDAY_PREFIX"SET") != NULL) {
+               set_allday((char *)agent_data, temp_service_data, false);
        }
 
        // 3. add image info : it should be excuted after calendar_vcalendar_parse_to_calendar
@@ -515,8 +515,8 @@ EXPORT_API sync_agent_da_return_e sync_agent_plugin_replace_converter(void *old_
                        }
 
                        // 1. "all day" setting : it should be excuted after calendar_vcalendar_parse_to_calendar
-                       if (strstr((char *)temp_agent_data, "\r\nX-ALLDAY:SET") != NULL) {
-                               insert_allday_data((char *)temp_agent_data, temp_old_service_data);
+                       if (strstr((char *)temp_agent_data, "\r\n"ALLDAY_PREFIX"SET") != NULL) {
+                               set_allday((char *)temp_agent_data, temp_old_service_data, false);
                        }
                }
                else if (!strncmp(uri, _calendar_extended_property._uri, strlen(_calendar_extended_property._uri))) {
@@ -570,10 +570,8 @@ EXPORT_API sync_agent_da_return_e sync_agent_plugin_reverse_converter(void *serv
 
        calendar_list_h list = NULL;
        calendar_record_h temp_service_data = (calendar_record_h) service_data;
-       calendar_record_h item = (calendar_record_h) temp_service_data;
        calendar_record_h image_item = (calendar_record_h) temp_service_data;
-       calendar_record_h extended_version = NULL;
-       calendar_time_s cal_start_time = { 0, };
+
        sync_agent_da_return_e ret = SYNC_AGENT_DA_SUCCESS;
        sync_agent_calendar_exdate_t *exdate_struct = NULL;
        int service_ret = CALENDAR_ERROR_NONE;
@@ -583,57 +581,21 @@ EXPORT_API sync_agent_da_return_e sync_agent_plugin_reverse_converter(void *serv
 
        _DEBUG_INFO("converter start");
 
-       service_ret = calendar_record_get_caltime(item, _calendar_event.start_time, &cal_start_time);
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_get_caltime() Fail!: err[%d]", service_ret);
-
        // 1. "all day" setting : it should be excuted before calendar_vcalendar_make_from_records
-       if (cal_start_time.type == CALENDAR_TIME_LOCALTIME) {
-               calendar_record_h extended_allday = NULL;
-               service_ret = calendar_record_create(_calendar_extended_property._uri, &extended_allday);
-               goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_create() Fail!: err[%d]", service_ret);
-
-               service_ret = calendar_record_set_str(extended_allday, _calendar_extended_property.key, "X-ALLDAY");
-               goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_set_str() Fail!: err[%d]", service_ret);
-
-               service_ret = calendar_record_set_str(extended_allday, _calendar_extended_property.value, ":SET");
-               goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_set_str() Fail!: err[%d]", service_ret);
-
-               service_ret = calendar_record_add_child_record(temp_service_data, _calendar_event.extended, extended_allday);
-               goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_add_child_record() Fail!: err[%d]", service_ret);
-       }
+       set_allday(NULL, temp_service_data, true);
 
        // 2. "EXTYPE" setting, '1' means deleted, '2' means updated : it should be excuted before calendar_vcalendar_make_from_records
        exdate_struct = (sync_agent_calendar_exdate_t *)calloc(1, sizeof(sync_agent_calendar_exdate_t));
        goto_if(exdate_struct == NULL, "exdate_struct is NULL");
-
        get_exdate_data(temp_service_data, exdate_struct);
 
        // 3. extended vcalendar version : it should be excuted before calendar_vcalendar_make_from_records
-       service_ret = calendar_record_create(_calendar_extended_property._uri, &extended_version);
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_create() Fail!: err[%d]", service_ret);
-
-       service_ret = calendar_record_set_str(extended_version, _calendar_extended_property.key, "VERSION");
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_set_str() Fail!: err[%d]", service_ret);
-
-       service_ret = calendar_record_set_str(extended_version, _calendar_extended_property.value, ":1.0");
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_set_str() Fail!: err[%d]", service_ret);
-
-       service_ret = calendar_list_create(&list);
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_list_create() Fail!: err[%d]", service_ret);
-
-       service_ret = calendar_list_add(list, extended_version);
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_list_add() Fail!: err[%d]", service_ret);
-
-       service_ret = calendar_list_add(list, temp_service_data);
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_list_add() Fail!: err[%d]", service_ret);
-
-       char *exdate = NULL;
-       service_ret = calendar_record_get_str(temp_service_data, _calendar_event.exdate, &exdate);
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_get_str() Fail!: err[%d]", service_ret);
+       list = set_vcalendar_version(temp_service_data);
+       goto_if(list == NULL, "list is NULL");
 
        service_ret = calendar_vcalendar_make_from_records(list, &temp_agent_data);
-       _DEBUG_INFO("temp_agent_data = %s", temp_agent_data);
        goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_vcalendar_make_from_records() Fail!: err[%d]", service_ret);
+       _DEBUG_INFO("temp_agent_data = %s", temp_agent_data);
 
        //  1. image converting : after calendar_vcalendar_make_from_records
        char *image_path = has_image_export(image_item);
@@ -677,8 +639,8 @@ EXPORT_API sync_agent_da_return_e sync_agent_plugin_reverse_converter(void *serv
                }
 
                // 2-2. remove EXTYPE at parent event
-               if (strstr(temp_agent_data, CR_EXTYPE_DELETE_KEYWORD) != NULL) {
-                       temp_agent_data = replace_string(temp_agent_data, CR_EXTYPE_DELETE_KEYWORD, "\r\nUID:000000000000000000000000000000000000000000000000");
+               if (strstr(temp_agent_data, "\r\n"EXTYPE_DELETE_KEYWORD) != NULL) {
+                       temp_agent_data = replace_string(temp_agent_data, "\r\n"EXTYPE_DELETE_KEYWORD, "\r\nUID:000000000000000000000000000000000000000000000000");
                }
 
                // 2-3. remove EXDATE at parent event
@@ -693,24 +655,21 @@ EXPORT_API sync_agent_da_return_e sync_agent_plugin_reverse_converter(void *serv
        }
        else if (exdate_struct->exdate_type == CALENDAR_EXDATE_TYPE_UPDATED_PARENT) {
                _DEBUG_INFO("CALENDAR_EXDATE_TYPE_UPDATED_PARENT start");
-               if (strstr(temp_agent_data, CR_EXTYPE_UPDATE_KEYWORD) != NULL) {
-                       temp_agent_data = replace_string(temp_agent_data, CR_EXTYPE_UPDATE_KEYWORD, "\r\nUID:000000000000000000000000000000000000000000000000");
+               if (strstr(temp_agent_data, "\r\n"EXTYPE_UPDATE_KEYWORD) != NULL) {
+                       temp_agent_data = replace_string(temp_agent_data, "\r\n"EXTYPE_UPDATE_KEYWORD, "\r\nUID:000000000000000000000000000000000000000000000000");
                }
        }
        else if (exdate_struct->exdate_type == CALENDAR_EXDATE_TYPE_UPDATED_CHILD) {
                _DEBUG_INFO("CALENDAR_EXDATE_TYPE_UPDATED_CHILD start");
                temp_agent_data = insert_exdate_data(temp_agent_data, exdate_struct, 0);
-               if (strstr(temp_agent_data, CR_EXTYPE_UPDATE_KEYWORD) != NULL) {
-                       temp_agent_data = replace_string(temp_agent_data, CR_EXTYPE_UPDATE_KEYWORD, "\r\nUID:000000000000000000000000000000000000000000000000\r\nX-EXTYPE:2");
+               if (strstr(temp_agent_data, "\r\n"EXTYPE_UPDATE_KEYWORD) != NULL) {
+                       temp_agent_data = replace_string(temp_agent_data, "\r\n"EXTYPE_UPDATE_KEYWORD, "\r\nUID:000000000000000000000000000000000000000000000000\r\nX-EXTYPE:2");
                }
        }
 
 return_part:
        _DEBUG_INFO("return_part");
        ret = _convert_service_error_to_common_error(service_ret);
-       _DEBUG_INFO("ret = %d", ret);
-
-       *agent_data = (void *)temp_agent_data;
 
        if (list != NULL)
                calendar_list_destroy(list, true);
@@ -723,6 +682,7 @@ return_part:
                exdate_struct = NULL;
        }
 
+       *agent_data = (void *)temp_agent_data;
        _DEBUG_INFO("agent_data = %s", *agent_data);
        _EXTERN_FUNC_EXIT;
        return ret;
index e03e98a..52c56f0 100755 (executable)
@@ -254,7 +254,7 @@ static char * _replace_alarm_data(char *origin)
        char *str_interval = NULL;
        calendar_date_type_e cal_type = CALENDAR_DATE_TYPE_ONTIME;
 
-       if ((freq_loc = strstr(origin, BEGIN_ALARM_KEYWORD)) == NULL) {
+       if ((freq_loc = strstr(origin, "\r\nBEGIN:VALARM")) == NULL) {
                _DEBUG_ERROR("there is not trigger data");
                goto return_part;
        }
@@ -600,6 +600,39 @@ char * replace_string(char *origin, const char *src, const char *dest)
        return new_str;
 }
 
+EXPORT_API calendar_list_h set_vcalendar_version(calendar_record_h cal_record)
+{
+       _INNER_FUNC_ENTER;
+       retvm_if(cal_record == NULL, NULL, "cal_record is NULL");
+
+       int service_ret = CALENDAR_ERROR_NONE;
+       calendar_list_h list = NULL;
+       calendar_record_h extended_version = NULL;
+
+       service_ret = calendar_record_create(_calendar_extended_property._uri, &extended_version);
+       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_create() Fail!: err[%d]", service_ret);
+
+       service_ret = calendar_record_set_str(extended_version, _calendar_extended_property.key, "VERSION");
+       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_set_str() Fail!: err[%d]", service_ret);
+
+       service_ret = calendar_record_set_str(extended_version, _calendar_extended_property.value, ":1.0");
+       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_set_str() Fail!: err[%d]", service_ret);
+
+       service_ret = calendar_list_create(&list);
+       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_list_create() Fail!: err[%d]", service_ret);
+
+       service_ret = calendar_list_add(list, extended_version);
+       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_list_add() Fail!: err[%d]", service_ret);
+
+       service_ret = calendar_list_add(list, cal_record);
+       goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_list_add() Fail!: err[%d]", service_ret);
+
+return_part:
+       _INNER_FUNC_EXIT;
+       return list;
+}
+
+
 // PLM(P130408-0777) : In case of DTSTART / DTEND with zulu time ('Z'), GMT timezone should be set.
 EXPORT_API void set_timezone(const char *origin, calendar_record_h cal_record)
 {
@@ -611,10 +644,10 @@ EXPORT_API void set_timezone(const char *origin, calendar_record_h cal_record)
        char *temp = NULL;
        char *str_start = NULL;
 
-       temp = strstr(origin, DTSTART_KEYWORD);
+       temp = strstr(origin, "\r\n"DTSTART_KEYWORD);
        goto_if(temp == NULL, "origin has not DTSTART. origin = %s", origin);
 
-       str_start = get_value_by_token(temp + 2, "DTSTART:", "\r\n");
+       str_start = get_value_by_token(temp + 2, DTSTART_KEYWORD, "\r\n");
        goto_if(str_start == NULL, "str_start is NULL. temp = %s", temp);
 
        if (strstr(str_start, "Z") != NULL) {
@@ -635,6 +668,119 @@ return_part:
        return;
 }
 
+void set_allday(const char *origin, calendar_record_h calendar_record, bool is_phone_to_kies)
+{
+       _INNER_FUNC_ENTER;
+       retm_if(calendar_record == NULL, "calendar_record is NULL");
+       int service_ret = CALENDAR_ERROR_NONE;
+
+       if (is_phone_to_kies) {
+               _DEBUG_INFO("phone to kies");
+               calendar_time_s cal_start_time = {0,};
+               calendar_record_h extended_allday = NULL;
+
+               service_ret = calendar_record_get_caltime(calendar_record, _calendar_event.start_time, &cal_start_time);
+               goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_get_caltime() Fail!: err[%d]", service_ret);
+
+               service_ret = calendar_record_create(_calendar_extended_property._uri, &extended_allday);
+               goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_create() Fail!: err[%d]", service_ret);
+
+               service_ret = calendar_record_set_str(extended_allday, _calendar_extended_property.key, ALLDAY_PREFIX);
+               goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_set_str() Fail!: err[%d]", service_ret);
+
+               if (cal_start_time.type == CALENDAR_TIME_LOCALTIME)
+                       service_ret = calendar_record_set_str(extended_allday, _calendar_extended_property.value, "SET");
+               else
+                       service_ret = calendar_record_set_str(extended_allday, _calendar_extended_property.value, "UNSET");
+
+               goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_set_str() Fail!: err[%d]", service_ret);
+
+               service_ret = calendar_record_add_child_record(calendar_record, _calendar_event.extended, extended_allday);
+               goto_if(service_ret != CALENDAR_ERROR_NONE, "[vcalendar] calendar_record_add_child_record() Fail!: err[%d]", service_ret);
+       }
+       else {
+               _DEBUG_INFO("kies to phone");
+               retm_if((origin == NULL || strlen(origin) <= 0), "origin is NULL");
+               char *uri = NULL;
+
+               service_ret = calendar_record_get_uri_p(calendar_record, &uri);
+               goto_if(service_ret != CALENDAR_ERROR_NONE, "calendar_record_get_uri_p() Fail!: err[%d]", service_ret);
+
+               if (strncmp(uri, _calendar_event._uri, strlen(_calendar_event._uri))) {
+                       _DEBUG_ERROR("this is not event");
+                       goto return_part;
+               }
+
+               calendar_time_s cal_time_start = { 0, };
+               calendar_time_s cal_time_end = { 0, };
+               int year = 0;
+               int month = 0;
+               int day = 0;
+
+               service_ret = calendar_record_get_caltime(calendar_record, _calendar_event.start_time, &cal_time_start);
+               goto_if(service_ret != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() Fail!: err[%d]", service_ret);
+
+               char *start_date_loc = NULL;
+               start_date_loc = strstr(origin, "\r\n"DTSTART_KEYWORD);
+               goto_if(start_date_loc == NULL, "start_date_loc is null");
+
+               char str_year_start[5] = {0,};
+               char str_month_start[3] = {0,};
+               char str_date_start[3] = {0,};
+
+               /* example) 20130124T000000Z\r\n = 2013 01 24 T 00 00 00 Z \r\n */
+               strncpy(str_year_start, start_date_loc + strlen("\r\n"DTSTART_KEYWORD), 4);
+               strncpy(str_month_start, start_date_loc + strlen("\r\n"DTSTART_KEYWORD) + 4, 2);
+               strncpy(str_date_start, start_date_loc + strlen("\r\n"DTSTART_KEYWORD) + 4 + 2, 2);
+
+               year = atoi(str_year_start);
+               month = atoi(str_month_start);
+               day = atoi(str_date_start);
+
+               _DEBUG_INFO("start time : year = %d, month = %d, day = %d", year, month, day);
+               cal_time_start.type = CALENDAR_TIME_LOCALTIME;
+               cal_time_start.time.date.year = year;
+               cal_time_start.time.date.month = month;
+               cal_time_start.time.date.mday = day;
+
+               service_ret = calendar_record_set_caltime(calendar_record, _calendar_event.start_time, cal_time_start);
+               goto_if(service_ret != CALENDAR_ERROR_NONE, "calendar_record_set_caltime() Fail!: err[%d]", service_ret);
+
+               service_ret = calendar_record_get_caltime(calendar_record, _calendar_event.end_time, &cal_time_end);
+               goto_if(service_ret != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() Fail!: err[%d]", service_ret);
+
+               char *end_date_loc = NULL;
+               end_date_loc = strstr(origin, "\r\n"DTEND_KEYWORD);
+               goto_if(end_date_loc == NULL, "end_date_loc is null");
+
+               char str_year_end[5] = {0,};
+               char str_month_end[3] = {0,};
+               char str_date_end[3] = {0,};
+
+               /* example) 20130124T000000Z\r\n = 2013 01 24 T 00 00 00 Z \r\n */
+               strncpy(str_year_end, end_date_loc + strlen("\r\n"DTEND_KEYWORD), 4);
+               strncpy(str_month_end, end_date_loc + strlen("\r\n"DTEND_KEYWORD) + 4, 2);
+               strncpy(str_date_end, end_date_loc + strlen("\r\n"DTEND_KEYWORD) + 4 + 2, 2);
+
+               year = atoi(str_year_end);
+               month = atoi(str_month_end);
+               day = atoi(str_date_end);
+
+               _DEBUG_INFO("end time : year = %d, month = %d, day = %d", year, month, day);
+               cal_time_end.type = CALENDAR_TIME_LOCALTIME;
+               cal_time_end.time.date.year = year;
+               cal_time_end.time.date.month = month;
+               cal_time_end.time.date.mday = day;
+
+               service_ret = calendar_record_set_caltime(calendar_record, _calendar_event.end_time, cal_time_end);
+               goto_if(service_ret != CALENDAR_ERROR_NONE, "calendar_record_set_caltime() Fail!: err[%d]", service_ret);
+       }
+
+return_part:
+       _INNER_FUNC_EXIT;
+       return;
+}
+
 char * remove_uid(char *origin)
 {
        _INNER_FUNC_ENTER;
@@ -697,7 +843,7 @@ char * insert_exdate_data(char *origin, sync_agent_calendar_exdate_t *exdate_str
 
                // 2. remove SUMMARY / RRULE / ALARM / EXDATE
                // 2-1. remove 'SUMMARY'
-               if ((old_str = strstr(str_child_vcalendar, SUMMARY_KEYWORD)) != NULL) {
+               if ((old_str = strstr(str_child_vcalendar, "\r\n"SUMMARY_KEYWORD)) != NULL) {
                        _DEBUG_INFO("summary keyword");
                        if ((new_str = strstr(old_str+2, "\r\n")) != NULL) {
                                str_child_vcalendar = replace_string(str_child_vcalendar, old_str, new_str);
@@ -713,7 +859,7 @@ char * insert_exdate_data(char *origin, sync_agent_calendar_exdate_t *exdate_str
                }
 
                // 2-3. remove 'ALARM'
-               if ((old_str = strstr(str_child_vcalendar, AALARM_KEYWORD)) != NULL) {
+               if ((old_str = strstr(str_child_vcalendar, "\r\n"AALARM_KEYWORD)) != NULL) {
                        _DEBUG_INFO("alarm keyword");
                        if ((new_str = strstr(old_str+2, "\r\n")) != NULL) {
                                str_child_vcalendar = replace_string(str_child_vcalendar, old_str, new_str);
@@ -733,10 +879,10 @@ char * insert_exdate_data(char *origin, sync_agent_calendar_exdate_t *exdate_str
                // example ) DTSTART:20130125T000000Z / DTEND:20130125T003000Z / EXDATE:20130201T000000Z => DTSTART:20130201T000000Z / DTEND:20130201T003000Z
                // 3-1. change DTSTART : DTSTART = EXDATE
                char *temp = NULL;
-               if ((temp  = strstr(str_child_vcalendar, DTSTART_KEYWORD)) != NULL) {
+               if ((temp  = strstr(str_child_vcalendar, "\r\n"DTSTART_KEYWORD)) != NULL) {
                        _DEBUG_INFO("start keyword");
 
-                       old_str = get_value_by_token(temp + 2, "DTSTART:", "\r\n");// '2' means strlen("\r\n")
+                       old_str = get_value_by_token(temp + 2, DTSTART_KEYWORD, "\r\n");// '2' means strlen("\r\n")
                        if (old_str == NULL) {
                                _DEBUG_ERROR("old_str is null");
                                goto return_part_free;
@@ -755,10 +901,10 @@ char * insert_exdate_data(char *origin, sync_agent_calendar_exdate_t *exdate_str
 
                // 3-2. change DTEND : DTEND = date of EXDATE + time of origin DTEND
                temp = NULL;
-               if ((temp  = strstr(str_child_vcalendar, DTEND_KEYWORD)) != NULL) {
+               if ((temp  = strstr(str_child_vcalendar, "\r\n"DTEND_KEYWORD)) != NULL) {
                        _DEBUG_INFO("end keyword");
 
-                       old_str = get_value_by_token(temp + 2, "DTEND:", "\r\n");// '2' means strlen("\r\n")
+                       old_str = get_value_by_token(temp + 2, DTEND_KEYWORD, "\r\n");// '2' means strlen("\r\n")
                        if (old_str == NULL) {
                                _DEBUG_ERROR("old_str is null");
                                goto return_part_free;
@@ -790,23 +936,22 @@ char * insert_exdate_data(char *origin, sync_agent_calendar_exdate_t *exdate_str
                _DEBUG_INFO("after 3rd phase str_child_vcalendar = %s", str_child_vcalendar);
 
                // 4. insert EXDATE
-               if (strstr(str_child_vcalendar, END_VEVENT_KEYWORD) != NULL) {
+               if (strstr(str_child_vcalendar, "\r\n"END_VEVENT_KEYWORD"\r\n") != NULL) {
                        _DEBUG_INFO("EXTYPE keyword");
 
-                       char *str_end_vevent = "\r\nEND:VEVENT";
                        char *exdate_str = (char*)g_list_nth_data(exdate_struct->exdate_list, index);
                        if (exdate_str == NULL) {
                                _DEBUG_ERROR("exdate_str is NULL");
                                goto return_part_free;
                        }
 
-                       new_str = g_strdup_printf("%s%s%s", EXDATE_KEYWORD, exdate_str, str_end_vevent);
+                       new_str = g_strdup_printf("%s%s%s", EXDATE_KEYWORD, exdate_str, "\r\n"END_VEVENT_KEYWORD);
                        if (new_str == NULL) {
                                _DEBUG_ERROR("new_str is null");
                                goto return_part_free;
                        }
 
-                       str_child_vcalendar = replace_string(str_child_vcalendar, str_end_vevent, new_str);
+                       str_child_vcalendar = replace_string(str_child_vcalendar, "\r\n"END_VEVENT_KEYWORD, new_str);
                        if (new_str) {
                                free(new_str);
                                new_str = NULL;
@@ -830,18 +975,17 @@ char * insert_exdate_data(char *origin, sync_agent_calendar_exdate_t *exdate_str
                }
 
                // 3. insert EXDATE
-               if (strstr(str_child_vcalendar, END_VEVENT_KEYWORD) != NULL) {
+               if (strstr(str_child_vcalendar, "\r\n"END_VEVENT_KEYWORD"\r\n") != NULL) {
                        _DEBUG_INFO("EXTYPE keyword");
 
-                       char *str_end_vevent = "\r\nEND:VEVENT";
                        char *exdate_str = (char*)g_list_nth_data(exdate_struct->exdate_list, index);
                        goto_if(exdate_str == NULL, "exdate_str is NULL");
                        _DEBUG_INFO("exdate_str = %s", exdate_str);
 
-                       new_str = g_strdup_printf("%s%s%s", EXDATE_KEYWORD, exdate_str, str_end_vevent);
+                       new_str = g_strdup_printf("%s%s%s", EXDATE_KEYWORD, exdate_str, "\r\n"END_VEVENT_KEYWORD);
                        goto_if(new_str == NULL, "new_str is NULL");
 
-                       str_child_vcalendar = replace_string(str_child_vcalendar, str_end_vevent, new_str);
+                       str_child_vcalendar = replace_string(str_child_vcalendar, "\r\n"END_VEVENT_KEYWORD, new_str);
                        if (new_str) {
                                free(new_str);
                                new_str = NULL;
@@ -864,96 +1008,6 @@ return_part_free:
        return str_child_vcalendar;
 }
 
-void insert_allday_data(const char *origin, calendar_record_h calendar_record)
-{
-       _INNER_FUNC_ENTER;
-       retm_if((origin == NULL || strlen(origin) <= 0), "origin is NULL");
-       retm_if(calendar_record == NULL, "calendar_record is NULL");
-
-       int service_ret = CALENDAR_ERROR_NONE;
-       char *uri = NULL;
-
-       service_ret = calendar_record_get_uri_p(calendar_record, &uri);
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "calendar_record_get_uri_p() Fail!: err[%d]", service_ret);
-
-       if (strncmp(uri, _calendar_event._uri, strlen(_calendar_event._uri))) {
-               _DEBUG_ERROR("this is not event");
-               goto return_part;
-       }
-
-       calendar_time_s cal_time_start = { 0, };
-       calendar_time_s cal_time_end = { 0, };
-       int year = 0;
-       int month = 0;
-       int day = 0;
-
-       service_ret = calendar_record_get_caltime(calendar_record, _calendar_event.start_time, &cal_time_start);
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() Fail!: err[%d]", service_ret);
-
-       char *start_date_loc = NULL;
-       if ((start_date_loc = strstr(origin, DTSTART_KEYWORD)) == NULL) {
-               _DEBUG_ERROR("start_date_loc is null");
-               goto return_part;
-       }
-
-       char str_year_start[5] = {0,};
-       char str_month_start[3] = {0,};
-       char str_date_start[3] = {0,};
-
-       /* example) 20130124T000000Z\r\n = 2013 01 24 T 00 00 00 Z \r\n */
-       strncpy(str_year_start, start_date_loc + strlen(DTSTART_KEYWORD), 4);
-       strncpy(str_month_start, start_date_loc + strlen(DTSTART_KEYWORD) + 4, 2);
-       strncpy(str_date_start, start_date_loc + strlen(DTSTART_KEYWORD) + 4 + 2, 2);
-
-       year = atoi(str_year_start);
-       month = atoi(str_month_start);
-       day = atoi(str_date_start);
-
-       _DEBUG_INFO("start time : year = %d, month = %d, day = %d", year, month, day);
-       cal_time_start.type = CALENDAR_TIME_LOCALTIME;
-       cal_time_start.time.date.year = year;
-       cal_time_start.time.date.month = month;
-       cal_time_start.time.date.mday = day;
-
-       service_ret = calendar_record_set_caltime(calendar_record, _calendar_event.start_time, cal_time_start);
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "calendar_record_set_caltime() Fail!: err[%d]", service_ret);
-
-       service_ret = calendar_record_get_caltime(calendar_record, _calendar_event.end_time, &cal_time_end);
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() Fail!: err[%d]", service_ret);
-
-       char *end_date_loc = NULL;
-       if ((end_date_loc = strstr(origin, DTEND_KEYWORD)) == NULL) {
-               _DEBUG_ERROR("end_date_loc is null");
-               goto return_part;
-       }
-
-       char str_year_end[5] = {0,};
-       char str_month_end[3] = {0,};
-       char str_date_end[3] = {0,};
-
-       /* example) 20130124T000000Z\r\n = 2013 01 24 T 00 00 00 Z \r\n */
-       strncpy(str_year_end, end_date_loc + strlen(DTEND_KEYWORD), 4);
-       strncpy(str_month_end, end_date_loc + strlen(DTEND_KEYWORD) + 4, 2);
-       strncpy(str_date_end, end_date_loc + strlen(DTEND_KEYWORD) + 4 + 2, 2);
-
-       year = atoi(str_year_end);
-       month = atoi(str_month_end);
-       day = atoi(str_date_end);
-
-       _DEBUG_INFO("end time : year = %d, month = %d, day = %d", year, month, day);
-       cal_time_end.type = CALENDAR_TIME_LOCALTIME;
-       cal_time_end.time.date.year = year;
-       cal_time_end.time.date.month = month;
-       cal_time_end.time.date.mday = day;
-
-       service_ret = calendar_record_set_caltime(calendar_record, _calendar_event.end_time, cal_time_end);
-       goto_if(service_ret != CALENDAR_ERROR_NONE, "calendar_record_set_caltime() Fail!: err[%d]", service_ret);
-
-return_part:
-       _INNER_FUNC_EXIT;
-       return;
-}
-
 EXPORT_API char * has_image_import(const char *origin)
 {
        _INNER_FUNC_ENTER;
@@ -962,7 +1016,7 @@ EXPORT_API char * has_image_import(const char *origin)
        char *image_path = NULL;
        _DEBUG_INFO("origin = %s", origin);
 
-       if (strstr(origin, CR_IMAGE_KEYWORD_PREFIX_PHOTO) == NULL && strstr(origin, CR_IMAGE_KEYWORD_PREFIX_SNOTE) == NULL) {
+       if (strstr(origin, "\r\n"IMAGE_KEYWORD_PREFIX_PHOTO) == NULL && strstr(origin, "\r\n"IMAGE_KEYWORD_PREFIX_SNOTE) == NULL) {
                _DEBUG_INFO("this calendar has not an image");
                goto return_part;
        }
@@ -1254,12 +1308,12 @@ char * replace_image_data(char *origin, char *image_path)
                goto return_part;
        }
 
-       goto_if(strstr(origin, END_VEVENT_KEYWORD) == NULL, "this data is wrong format. origin = %s", origin);
+       goto_if(strstr(origin, "\r\n"END_VEVENT_KEYWORD"\r\n") == NULL, "this data is wrong format. origin = %s", origin);
 
-       str_image_info = g_strdup_printf("\r\n%s;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:NAME=3Dnull=3BPATH=3D%s=3BDATE=3D%s", str_image_tag, str_temp_image_info, END_VEVENT_KEYWORD);
+       str_image_info = g_strdup_printf("\r\n%s;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:NAME=3Dnull=3BPATH=3D%s=3BDATE=3D%s", str_image_tag, str_temp_image_info, "\r\n"END_VEVENT_KEYWORD"\r\n");
        goto_if(str_image_info == NULL, "str_image_info is null");
 
-       char *new_agent_data = replace_string(origin, END_VEVENT_KEYWORD, str_image_info);
+       char *new_agent_data = replace_string(origin, "\r\n"END_VEVENT_KEYWORD"\r\n", str_image_info);
        origin = NULL;
        origin = new_agent_data;