<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
+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
<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 -->
* @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
* @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
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);
+
+
+/**
* @}
*/
* @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
*
* @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.
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
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
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
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)
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)
%defattr(-,root,root,-)
%{_includedir}/sync_agent.h
%{_includedir}/sync-agent/*
-%{_libdir}/*.so
-%{_libdir}/*.so.*
%{_libdir}/pkgconfig/sync-agent.pc
#%files -n common-private-plugins
_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();
_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();
_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();
_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();
_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();
_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();
_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();
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);
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);
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);
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) {
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) {
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;
+}
+
_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()
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 "
__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;
_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);
outbuf = NULL;
}
- if (client_sockfd >= 0 )
+ if (client_sockfd >= 0 ) {
close(client_sockfd);
+ client_sockfd = -1;
+ }
}
_INNER_FUNC_EXIT;
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_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:
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) {
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);
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;
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;
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 {
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 {
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 {
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 {
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 {
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;
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;
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) {
*/
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);
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]);
}
}
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;
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;
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 {
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;
/**
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);
+
+/**
* @}
*/
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 !!");
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 !!");
pthread_mutex_unlock(&loop_mutex);
_EXTERN_FUNC_EXIT;
return;
- }
+ }
do {
pthread_cond_wait(&loop_cond, &loop_mutex);
} while (loop == NULL);
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;
//#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>
#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
}
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 !!");
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;
}
}
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;
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;
}
}
_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;
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
_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;
return get_str;
*/
char *get_str = NULL;
+/*
TapiHandle *handle = tel_init(NULL);
if (!handle)
_DEBUG_INFO("tapi handle is null\n");
if (!handle)
tel_deinit(handle);
-
+*/
+ get_str = strdup("I8800XXKI1");
_DEBUG_INFO("Modem version = %s\n", get_str);
_EXTERN_FUNC_EXIT;
} 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"
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);
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;
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);
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;
}
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)
{
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);
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);
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;
}
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;
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);
}
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);
}
return_part:
-
_INNER_FUNC_EXIT;
return origin;
}
};
#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:"
#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"
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);
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
}
// 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))) {
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;
_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);
}
// 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
}
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);
exdate_struct = NULL;
}
+ *agent_data = (void *)temp_agent_data;
_DEBUG_INFO("agent_data = %s", *agent_data);
_EXTERN_FUNC_EXIT;
return ret;
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;
}
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)
{
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) {
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;
// 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);
}
// 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);
// 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;
// 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;
_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;
}
// 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;
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;
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;
}
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;