summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJinkun Jang <jinkun.jang@samsung.com>2013-03-16 01:18:13 +0900
committerJinkun Jang <jinkun.jang@samsung.com>2013-03-16 01:18:13 +0900
commit2928ee51d097094087c5a6445bea90840f6f1db6 (patch)
tree2322cd9266510a98abd61e1a8d7fb9f593665eff
parentd6aa47559c38d7e20d6d6a7a3671fa48ed58b9eb (diff)
downloadoma-ds-agent-2928ee51d097094087c5a6445bea90840f6f1db6.tar.gz
oma-ds-agent-2928ee51d097094087c5a6445bea90840f6f1db6.tar.bz2
oma-ds-agent-2928ee51d097094087c5a6445bea90840f6f1db6.zip
merge with master
-rw-r--r--[-rwxr-xr-x]AUTHORS0
-rw-r--r--[-rwxr-xr-x]LICENSE.APLv20
-rw-r--r--[-rwxr-xr-x]NOTICE0
-rwxr-xr-x[-rw-r--r--]debian/changelog538
-rwxr-xr-xinclude/common/common_define_internal.h45
-rwxr-xr-xinclude/service-engine/se_account.h16
-rwxr-xr-xinclude/service-engine/se_common.h4
-rwxr-xr-xinclude/service-engine/se_notification.h7
-rwxr-xr-xinclude/service-engine/se_storage.h12
-rwxr-xr-xpackaging/oma-ds-agent.spec29
-rwxr-xr-xsrc/agent/CMakeLists.txt1
-rwxr-xr-xsrc/agent/common/common_define.c3
-rwxr-xr-xsrc/agent/common/common_util.c7
-rwxr-xr-xsrc/agent/framework/event/oma_ds_event_handler.c246
-rwxr-xr-xsrc/agent/framework/event/oma_ds_platform_event_handler.c4
-rwxr-xr-xsrc/agent/framework/task/oma_ds_engine_controller_task.c114
-rwxr-xr-xsrc/agent/service-adapter/protocol-binder/oma_ds_protocol_binder.c8
-rwxr-xr-xsrc/agent/service-adapter/sa_common_interface.c50
-rwxr-xr-xsrc/agent/service-adapter/sa_session.c14
-rwxr-xr-xsrc/agent/service-adapter/sa_util.c9
-rwxr-xr-xsrc/agent/service-engine/se_account.c287
-rwxr-xr-xsrc/agent/service-engine/se_notification.c10
-rwxr-xr-xsrc/agent/service-engine/se_storage.c249
-rwxr-xr-xsrc/agent/service-engine/se_sync.c128
-rwxr-xr-xsrc/plugins/ds-public/vcard/src/plugin_interface.c15
-rwxr-xr-xsrc/plugins/ds-public/xcalllog/src/plugin_interface.c98
26 files changed, 1554 insertions, 340 deletions
diff --git a/AUTHORS b/AUTHORS
index b5328d5..b5328d5 100755..100644
--- a/AUTHORS
+++ b/AUTHORS
diff --git a/LICENSE.APLv2 b/LICENSE.APLv2
index d645695..d645695 100755..100644
--- a/LICENSE.APLv2
+++ b/LICENSE.APLv2
diff --git a/NOTICE b/NOTICE
index ccdad52..ccdad52 100755..100644
--- a/NOTICE
+++ b/NOTICE
diff --git a/debian/changelog b/debian/changelog
index d9f499e..de903e0 100644..100755
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,47 +1,533 @@
-oma-ds-agent (0.1.6) unstable; urgency=low
+oma-ds-agent (0.1.62) unstable; urgency=low
- * 1. license file update.
+ * 1. when profile info gets, return value changed.
* Git: framework/system/oma-ds-agent
- * Tag: oma-ds-agent_0.1.6
+ * Tag: oma-ds-agent_0.1.62
- -- Juhaki Park <juhaki.park@samsung.com> Mon, 21 Jan 2013 22:09:10 +0900
+ -- sanghyuk.ko <sanghyuk.ko@samsung.com> Fri, 08 Mar 2013 09:43:14 +0900
-oma-ds-agent (0.1.5) unstable; urgency=low
+oma-ds-agent (0.1.61) unstable; urgency=low
- * 1. Revised for version release
+ * 1. sync_interval enum type added
+ * 2. Fixed for prevent. (5EA)
* Git: framework/system/oma-ds-agent
- * Tag: oma-ds-agent_0.1.5
+ * Tag: oma-ds-agent_0.1.61
- -- Juhaki Park <juhaki.park@samsung.com> Thu, 10 Jan 2013 10:06:10 +0900
+ -- sanghyukko <sanghyuk.ko@samsung.com> Thu, 28 Feb 2013 17:21:15 +0900
-oma-ds-agent (0.1.4) unstable; urgency=low
+oma-ds-agent (0.1.60) unstable; urgency=low
- * 1. Revised for version release
+ * 1. profile_dir_name create automatically.
+ * 2. stop sync process type added
* Git: framework/system/oma-ds-agent
- * Tag: oma-ds-agent_0.1.4
+ * Tag: oma-ds-agent_0.1.60
- -- WooJin Yun <suhoangel9@samsung.com> Wed, 09 Jan 2013 19:42:10 +0900
+ -- sanghyukko <sanghyuk.ko@samsung.com> Tue, 26 Feb 2013 17:25:19 +0900
-oma-ds-agent (0.1.3) unstable; urgency=low
+oma-ds-agent (0.1.59) unstable; urgency=low
- * 1. Fixes for Prevent defects
+ * 1. tizen_2.0 code merge
+ * 2. Private code merge
* Git: framework/system/oma-ds-agent
- * Tag: oma-ds-agent_0.1.3
+ * Tag: oma-ds-agent_0.1.59
- -- sanghyuk.ko <sanghyuk.ko@samsung.com> Wed, 09 Jan 2013 17:31:34 +0900
+ -- sanghyukko <sanghyuk.ko@samsung.com> Thu, 21 Feb 2013 14:20:47 +0900
-oma-ds-agent (0.1.2) unstable; urgency=low
+oma-ds-agent (0.1.58) unstable; urgency=low
- * 1. Internal: build error & dependency patch
- * Git: framework/system/oma-ds-agent
- * Tag: oma-ds-agent_0.1.2
+ * 1. FMM callog feature added.
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.58
- -- WooJin Yun <suhoangel9@samsung.com> Fri, 28 Dec 2012 22:47:52 +0900
+ -- sanghyukko <sanghyuk.ko@samsung.com> Thu, 07 Feb 2013 18:22:25 +0900
-oma-ds-agent (0.1.1) unstable; urgency=low
+oma-ds-agent (0.1.57) unstable; urgency=low
- * Initial Update
- * Git: framework/system/oma-ds-agent
- * Tag: oma-ds-agent_0.1.1
+ * 1. Smack rule added.
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.57
+
+ -- sanghyukko <sanghyuk.ko@samsung.com> Tue, 05 Feb 2013 19:59:27 +0900
+
+oma-ds-agent (0.1.56) unstable; urgency=low
+
+ * 1. Fixes for Prevent defects
+ * 2. Applied smack rule about db
+ * 3. DB file creation is moved from %post to %install
+ * 4. Apply smack label to booting script
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.56
+
+ -- sanghyukko <sanghyuk.ko@samsung.com> Thu, 31 Jan 2013 18:55:03 +0900
+
+oma-ds-agent (0.1.55) unstable; urgency=low
+
+ * 1. Fixes for Prevent defects
+ * 2. sync_agent_get_event_data_param_int/str applied.
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.55
+
+ -- sanghyukko <sanghyuk.ko@samsung.com> Fri, 25 Jan 2013 15:09:58 +0900
+
+oma-ds-agent (0.1.54) unstable; urgency=low
+
+ * 1. xcalllog patch (contacts_db_get_record -> contacts_db_get_records_with_query)
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.54
+
+ -- jimo.park <jimo.park@samsung.com> Fri, 18 Jan 2013 18:35:13 +0900
+
+oma-ds-agent (0.1.53) unstable; urgency=low
+
+ * 1. Indent applied.
+ * 2. Copyright modified.
+ * 3. Apply sync-agent-framework changes.
+ * 4. log format unified.
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.53
+
+ -- sanghyuk.ko <sanghyuk.ko@samsung.com> Thu, 27 Dec 2012 19:54:13 +0900
+
+oma-ds-agent (0.1.52) unstable; urgency=low
+
+ * 1. Apply tizen managed API
+ * 2. License category changed
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.52
+
+ -- sanghyuk.ko <sanghyuk.ko@samsung.com> Thu, 20 Dec 2012 22:14:57 +0900
+
+oma-ds-agent (0.1.51) unstable; urgency=low
+
+ * 1. Fixed for prevent defects.
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.51
+
+ -- sanghyuk.ko <sanghyuk.ko@samsung.com> Thu, 13 Dec 2012 16:10:05 +0900
+
+oma-ds-agent (0.1.50) unstable; urgency=low
+
+ * 1. Apply tizen managed API
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.50
+
+ -- juhaki.park <juhaki.park@samsung.com> Fri, 07 Dec 2012 22:23:25 +0900
+
+oma-ds-agent (0.1.49) unstable; urgency=low
+
+ * 1. Fixed for prevent defect.
+ * 2. Applied ipc refactoring.
+ * 3. API name changed. (sync_agent_query_delete_service_item -> sync_agent_query_delete_service_items)
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.49
+
+ -- sanghyuk.ko <sanghyuk.ko@samsung.com> Thu, 06 Dec 2012 16:04:25 +0900
+
+oma-ds-agent (0.1.48) unstable; urgency=low
+
+ * 1. Fixed for prevent defect
+ * 2. Modify contact record merge function
+ * 3. change debug_msg file path
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.48
+
+ -- sanghyuk.ko <sanghyuk.ko@samsung.com> Thu, 29 Nov 2012 21:14:00 +0900
+
+oma-ds-agent (0.1.47) unstable; urgency=low
+
+ * 1. Fixed for prevent defect.
+ * 2. Smack option added.
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.47
+
+ -- sanghyuk.ko <sanghyuk.ko@samsung.com> Thu, 22 Nov 2012 19:52:04 +0900
+
+oma-ds-agent (0.1.46) unstable; urgency=low
+
+ * Apply contacts-service2 api
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.46
+
+ -- sanghyuk.ko <sanghyuk.ko@samsung.com> Fri, 16 Nov 2012 14:39:57 +0900
+
+oma-ds-agent (0.1.45) unstable; urgency=low
+
+ * 1. calendar-service2 api
+ * 2. calendar managed api
+ * 3. oma-ds-agent-enabled path update.
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.45
+
+ -- Juhaki Park <juhaki.park@samsung.com> Thu, 08 Nov 2012 20:24:32 +0900
+
+oma-ds-agent (0.1.44) unstable; urgency=low
+
+ * 1. Write wrong sync result patch.
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.44
+
+ -- Juhaki Park <juhaki.park@samsung.com> Thu, 01 Nov 2012 17:54:32 +0900
+
+oma-ds-agent (0.1.43) unstable; urgency=low
+
+ * 1. log patch for build.
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.43
+
+ -- Juhaki Park <juhaki.park@samsung.com> Thu, 25 Oct 2012 19:38:32 +0900
+
+oma-ds-agent (0.1.42) unstable; urgency=low
+
+ * 1. dbus auto activation
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.42
+
+ -- Juhaki Park <juhaki.park@samsung.com> Tue, 23 Oct 2012 18:30:32 +0900
+
+oma-ds-agent (0.1.41) unstable; urgency=low
+
+ * 1. dbus auto activation
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.41
+
+ -- Juhaki Park <juhaki.park@samsung.com> Tue, 23 Oct 2012 17:50:32 +0900
+
+oma-ds-agent (0.1.40) unstable; urgency=low
+
+ * 1. noti send fail fixed.
+ * 2. Implements Reset API.
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.40
+
+ -- Juhaki Park <juhaki.park@samsung.com> Thu, 18 Oct 2012 18:09:32 +0900
+
+oma-ds-agent (0.1.39) unstable; urgency=low
+
+ * 1. Remove warning
+ * 2. Logging macro
+ * 3. Unifying item-manpulating APIs
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.39
+
+ -- Juhaki Park <juhaki.park@samsung.com> Fri, 12 Oct 2012 16:09:32 +0900
+
+oma-ds-agent (0.1.38) unstable; urgency=low
+
+ * 1. Fix Build error
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.38
+
+ -- Sunbong Ha <sunbong.ha@samsung.com> Thu, 27 Sep 2012 18:19:32 +0900
+
+oma-ds-agent (0.1.37) unstable; urgency=low
+
+ * 1. API refactory.
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.37
+
+ -- Juhaki Park <juhaki.park@samsung.com> Thu, 27 Sep 2012 16:50:39 +0900
+
+oma-ds-agent (0.1.36) unstable; urgency=low
+
+ * 1. Bug fix in manifest file
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.36
+
+ -- WooJin Yun <suhoangel9@samsung.com> Tue, 25 Sep 2012 13:37:39 +0900
+
+oma-ds-agent (0.1.35) unstable; urgency=low
+
+ * 1. SMACK applied
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.35
+
+ -- WooJin Yun <suhoangel9@samsung.com> Mon, 24 Sep 2012 11:23:26 +0900
+
+oma-ds-agent (0.1.34) unstable; urgency=low
+
+ * 1. SMACK applied
+ * 2. preun , postun patch about spec file
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.34
+
+ -- Juhaki Park <juhaki.park@samsung.com> Fri, 21 Sep 2012 10:55:20 +0900
+
+oma-ds-agent (0.1.33) unstable; urgency=low
+
+ * 1. Apply changes due to packa name change : sync-agent-framework -> sync-agent
+ * 2. Memory leak redemption
+ * 3. g_main_loop_run( ) placed in main thread
+ * 4. Plugins moved to agent daemon
+ * 5. Add pkg build requires in spec file
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.33
+
+ -- WooJin Yun <suhoangel9@samsung.com> Thu, 06 Sep 2012 21:17:20 +0900
+
+oma-ds-agent (0.1.32) unstable; urgency=low
+
+ * 1. Apply Tizen Managed API changes
+ * 2. Change header file include style
+ * 3. Add null check before access session struct
+ * 4. Apply Tizen Managed API changes : Missing changes in external
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.32
+
+ -- WooJin Yun <suhoangel9@samsung.com> Fri, 31 Aug 2012 12:38:34 +0900
+
+oma-ds-agent (0.1.31) unstable; urgency=low
+
+ * 1. Remove module name from external header file name
+ * 2. package name is changed (oma-ds-service -> oma-ds-agent)
+ * 3. Modify config xml file for plugin
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.31
+
+ -- WooJin Yun <suhoangel9@samsung.com> Thu, 23 Aug 2012 14:37:44 +0900
+
+oma-ds-agent (0.1.30) unstable; urgency=low
+
+ * 1. External header renaming
+ * 2. plugin separation : framework module generic
+ * 3. remove include/agent-framework
+ * 4. Fix libxml2 API multi-thread issue
+ * Git: magnolia/framework/system/oma-ds-agent
+ * Tag: oma-ds-agent_0.1.30
+
+ -- WooJin Yun <suhoangel9@samsung.com> Fri, 17 Aug 2012 12:25:00 +0900
+
+oma-ds-service (0.1.29) unstable; urgency=low
+
+ * pkg upload. Everdroid sever issue applied.
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.29
+
+ -- sanghyuk ko <sanghyuk.ko@samsung.com> Thu, 09 Aug 2012 20:31:49 +0900
+
+oma-ds-service (0.1.28) unstable; urgency=low
+
+ * Directory restructuring applied
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.28
+
+ -- WooJin Yun <suhoangel9@samsung.com> Tue, 07 Aug 2012 20:51:07 +0900
+
+oma-ds-service (0.1.27) unstable; urgency=low
+
+ * local test done. Synctype changed by server. JIRA issue fix - S1-4022.
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.27
+
+ -- Juhaki Park <juhaki.park@samsung.com> Tue, 24 Jul 2012 15:35:51 +0900
+
+oma-ds-service (0.1.26) unstable; urgency=low
+
+ * local test done. pkg-upload. Id provider up , adding maintainer , null check
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.26
+
+ -- Juhaki Park <juhaki.park@samsung.com> Wed, 18 Jul 2012 17:05:51 +0900
+
+oma-ds-service (0.1.25) unstable; urgency=low
+
+ * pkg upload.
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.25
+
+ -- Juhaki Park <juhaki.park@samsung.com> Tue, 10 Jul 2012 10:27:51 +0900
+
+oma-ds-service (0.1.24) unstable; urgency=low
+
+ * filename update.
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.24
+
+ -- Juhaki Park <juhaki.park@samsung.com> Wed, 04 Jul 2012 15:27:51 +0900
+
+oma-ds-service (0.1.23) unstable; urgency=low
+
+ * fota directory changing.
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.23
+
+ -- Juhaki Park <juhaki.park@samsung.com> Fri, 15 Jun 2012 14:47:51 +0900
+
+oma-ds-service (0.1.22) unstable; urgency=low
+
+ * pkg upload.
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.22
+
+ -- Sunbong Ha <sunbong.ha@samsung.com> Tue, 12 Jun 2012 11:47:51 +0900
+
+oma-ds-service (0.1.21) unstable; urgency=low
+
+ * vconf key update - pkg upload.
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.21
+
+ -- Juhaki Park <juhaki.park@samsung.com> Thu, 24 May 2012 18:31:14 +0900
+
+oma-ds-service (0.1.20) unstable; urgency=low
+
+ * pkg upload.
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.20
+
+ -- Juhaki Park <juhaki.park@samsung.com> Mon, 21 May 2012 18:31:14 +0900
+
+oma-ds-service (0.1.19) unstable; urgency=low
+
+ * 1. bug fixed double free
+ * 2. modified boiler plate
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.19
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com> Wed, 09 May 2012 13:41:14 +0900
+
+oma-ds-service (0.1.18) unstable; urgency=low
+
+ * 1. implement resume logic ( two way sync )
+ * 2. add cancel logic current sync in call log sync
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.18
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com> Thu, 26 Apr 2012 16:08:03 +0900
+
+oma-ds-service (0.1.17) unstable; urgency=low
+
+ * 1. Integrate calllog sync flow
+ * 2. Change interface for static function in ServiceAdapter
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.17
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com> Tue, 17 Apr 2012 21:01:55 +0900
+
+oma-ds-service (0.1.16) unstable; urgency=low
+
+ * package upload for sync-agent framework upload
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.16
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com> Mon, 09 Apr 2012 15:36:07 +0900
+
+oma-ds-service (0.1.15) unstable; urgency=low
+
+ * package upload for sync-agent framework upload
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.15
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com> Mon, 09 Apr 2012 15:00:04 +0900
+
+oma-ds-service (0.1.14) unstable; urgency=low
+
+ * package upload
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.14
+
+ -- Joohark Park <juhaki.park@samsung.com> Tue, 03 Apr 2012 14:27:40 +0900
+
+oma-ds-service (0.1.13) unstable; urgency=low
+
+ * package upload
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.13
+
+ -- Juhak Park <juhaki.park@samsung.com> Tue, 03 Apr 2012 12:27:40 +0900
+
+oma-ds-service (0.1.12) unstable; urgency=low
+
+ * oma-ds-service engine bug fixed & package upload
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.12
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com> Thu, 29 Mar 2012 16:27:40 +0900
+
+oma-ds-service (0.1.11) unstable; urgency=low
+
+ * bug fixed & pkg upload
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.11
+
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com> Thu, 22 Mar 2012 20:51:11 +0900
+
+oma-ds-service (0.1.10) unstable; urgency=low
+
+ * bug fixed & pkg upload
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.10
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com> Wed, 21 Mar 2012 16:35:21 +0900
+
+oma-ds-service (0.1.9) unstable; urgency=low
+
+ * pkg upload for sync-agent-fw pkg
+ * Git: slp/pkgs/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.9
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com> Thu, 15 Mar 2012 17:06:33 +0900
+
+oma-ds-service (0.1.8) unstable; urgency=low
+
+ * pkg upload for sync-agent-fw pkg
+ * Git: slp/apps/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.8
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com> Thu, 08 Mar 2012 11:31:30 +0900
+
+oma-ds-service (0.1.7) unstable; urgency=low
+
+ * pkg upload for sync-agent-fw pkg
+ * Git: slp/apps/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.7
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com> Wed, 29 Feb 2012 14:08:51 +0900
+
+oma-ds-service (0.1.6) unstable; urgency=low
+
+ * pkg upload & err msg string fixed
+ * Git: slp/apps/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.6
+
+ -- leejunhyuk <junhyuk7.lee@samsung.com> Mon, 27 Feb 2012 18:15:29 +0900
+
+oma-ds-service (0.1.5) unstable; urgency=low
+
+ * pkg update for version up
+ * Git: slp/apps/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.5
+
+ -- leejunhyuk <junhyuk7.lee@samsung.com> Tue, 21 Feb 2012 16:27:17 +0900
+
+oma-ds-service (0.1.4) unstable; urgency=low
+
+ * pkg update for version up
+ * Git: slp/apps/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.4
+
+ -- leejunhyuk <junhyuk7.lee@samsung.com> Thu, 09 Feb 2012 16:38:41 +0900
+
+oma-ds-service (0.1.3) unstable; urgency=low
+
+ * pkg update for sync-agent fw update
+ * Git: slp/apps/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.3
+
+ -- leejunhyuk <junhyuk7.le@samsung.com> Thu, 09 Feb 2012 16:15:49 +0900
+
+oma-ds-service (0.1.2) unstable; urgency=low
+
+ * pkg version up
+ * Git: slp/apps/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.2
+
+ -- leejunhyuk <junhyuk7.lee@samsung.com> Thu, 02 Feb 2012 10:46:21 +0900
+
+oma-ds-service (0.1.1) unstable; urgency=low
+
+ * Initial release
+ * Git: slp/apps/o/oma-ds-service
+ * Tag: oma-ds-service_0.1.1
- -- WooJin Yun <suhoangel9@samsung.com> Wed, 01 Feb 2012 10:30:16 +0900
+ -- leejunhyuk <junhyuk7.lee@samsung.com> Wed, 01 Feb 2012 10:30:16 +0900
diff --git a/include/common/common_define_internal.h b/include/common/common_define_internal.h
index c3078de..4c1ed97 100755
--- a/include/common/common_define_internal.h
+++ b/include/common/common_define_internal.h
@@ -114,6 +114,15 @@
#define DEFINE_DIVE_SERVER_ID "syn.samsungdive.com"
#define DEFINE_DIVE_DEFAULT_NEXT_NONCE "pcwds"
+#define DEFINE_SYNC_INTERVAL_5_MINUTES_STR "5 minutes"
+#define DEFINE_SYNC_INTERVAL_15_MINUTES_STR "15 minutes"
+#define DEFINE_SYNC_INTERVAL_1_HOUR_STR "1 hour"
+#define DEFINE_SYNC_INTERVAL_4_HOURS_STR "4 hours"
+#define DEFINE_SYNC_INTERVAL_12_HOURS_STR "12 hours"
+#define DEFINE_SYNC_INTERVAL_1_DAY_STR "1 day"
+#define DEFINE_SYNC_INTERVAL_1_WEEK_STR "1 week"
+#define DEFINE_SYNC_INTERVAL_1_MONTH_STR "1 month"
+
typedef enum {
SYNC_SESSION_NOT_SYNCED_YET = -1,
SYNC_SESSION_FAILED = 0,
@@ -160,6 +169,40 @@ typedef enum {
} service_type_e;
typedef enum {
+ MODE_MANUAL = 0, /*Manual*/
+ MODE_PERIODIC = 1, /*Periodic*/
+ MODE_PUSH = 2, /*Push (SAN)*/
+ MODE_AUTOCONFIG = 3 /*Autoconfig*/
+} sync_mode_e;
+
+typedef enum {
+ SYNC_TYPE_FULL_SYNC = 0, /**< Full (Slow sync) */
+ SYNC_TYPE_UPDATE_BOTH = 1, /**< Update both */
+ SYNC_TYPE_UPDATE_TO_SERVER = 2, /**< Update to server */
+ SYNC_TYPE_UPDATE_TO_PHONE = 3, /**< Update to phone */
+ SYNC_TYPE_REFRESH_FROM_SERVER = 4, /**< Refresh from server */
+ SYNC_TYPE_REFRESH_FROM_PHONE = 5 /**< Refresh from phone */
+}sync_type_e;
+
+typedef enum {
+ SYNC_INTERVAL_5_MINUTES = 0, /**< 5 minutes */
+ SYNC_INTERVAL_15_MINUTES = 1, /**< 15 minutes */
+ SYNC_INTERVAL_1_HOUR = 2, /**< 1 hour */
+ SYNC_INTERVAL_4_HOURS = 3, /**< 4 hours */
+ SYNC_INTERVAL_12_HOURS = 4, /**< 12 hours */
+ SYNC_INTERVAL_1_DAY = 5, /**< 1 day */
+ SYNC_INTERVAL_1_WEEK = 6, /**< 1 week */
+ SYNC_INTERVAL_1_MONTH = 7 /**< 1 month */
+} sync_interval_e;
+
+typedef enum {
+ SRC_URI_CONTACT = 0, /**< Contacts */
+ SRC_URI_CALENDAR = 1, /**< Calendar */
+ SRC_URI_MEMO = 2, /**< Memo */
+ SRC_URI_CALLLOG = 3 /**< Calllog */
+} src_uri_e;
+
+typedef enum {
COMMON_INIT = 0,
COMMON_OK = 100,
COMMON_MISCONFIGURATION = 200,
@@ -287,7 +330,7 @@ typedef struct {
typedef struct {
service_type_e service_type;
int enabled;
- char *src_uri;
+ src_uri_e src_uri;
char *tgt_uri;
char *id;
char *password;
diff --git a/include/service-engine/se_account.h b/include/service-engine/se_account.h
index fc6563e..bae30a2 100755
--- a/include/service-engine/se_account.h
+++ b/include/service-engine/se_account.h
@@ -42,9 +42,9 @@
* @param[in] string type, server ip
* @param[in] string type, id
* @param[in] string type, password
- * @param[in] string type, sync mode
- * @param[in] string type, sync type
- * @param[in] string type, interval(for periodic)
+ * @param[in] int type, sync mode
+ * @param[in] int type, sync type
+ * @param[in] int type, interval(for periodic)
* @param[in] GList type, list of sync_service_s structure
* @param[out] int type, account id
*
@@ -62,7 +62,7 @@
* @code
* @endcode
*/
-bool add_profile(char *profile_dir_name, char *profile_name, char *addr, char *id, char *password, char *sync_mode, char *sync_type, char *interval, GList * categories, int *account_id);
+bool add_profile(char *profile_name, char *addr, char *id, char *password, int sync_mode, int sync_type, int interval, GList * categories, int *account_id);
/**
* @par Description: API to add profile from csc
@@ -163,9 +163,9 @@ bool add_profile_dive(int *account_id);
* @param[in] string type, server ip
* @param[in] string type, id
* @param[in] string type, password
- * @param[in] string type, sync mode
- * @param[in] string type, sync type
- * @param[in] string type, interval(for periodic)
+ * @param[in] int type, sync mode
+ * @param[in] int type, sync type
+ * @param[in] int type, interval(for periodic)
* @param[in] GList type, list of sync_service_s structure
*
* @return true on success
@@ -182,7 +182,7 @@ bool add_profile_dive(int *account_id);
* @code
* @endcode
*/
-bool edit_profile(int account_id, char *profile_name, char *addr, char *id, char *password, char *sync_mode, char *sync_type, char *interval, GList * categories);
+bool edit_profile(int account_id, char *profile_name, char *addr, char *id, char *password, int sync_mode, int sync_type, int interval, GList * categories);
/**
* @par Description: API to delete profile API
diff --git a/include/service-engine/se_common.h b/include/service-engine/se_common.h
index 108acef..7631ff8 100755
--- a/include/service-engine/se_common.h
+++ b/include/service-engine/se_common.h
@@ -29,6 +29,7 @@
#define DEFINE_SYNC_CONNECTING "CONNECTING"
#define DEFINE_SYNC_AUTHENTICATED "AUTHENTICATED"
#define DEFINE_SYNC_DONE "DONE"
+#define DEFINE_SYNC_CANCEL "CANCEL"
#define DEFINE_SYNC_ERROR "ERROR"
#define DEFINE_ERROR_NONE "ERROR_NONE"
@@ -70,7 +71,8 @@ typedef enum {
PROGRESS_CONNECTING = 2,
PROGRESS_AUTHENTICATED = 3,
PROGRESS_DONE = 4,
- PROGRESS_ERROR = 5
+ PROGRESS_CANCEL = 5,
+ PROGRESS_ERROR = 6
} sync_progress_e;
typedef enum {
diff --git a/include/service-engine/se_notification.h b/include/service-engine/se_notification.h
index 4789ba5..c0e6a14 100755
--- a/include/service-engine/se_notification.h
+++ b/include/service-engine/se_notification.h
@@ -36,6 +36,7 @@
* @par Method of function operation:
* @par Important notes:
* @param[in] string type, profile dir name(identify profile in UI)
+ * @param[in] int type, server sync type
* @param[in] string type, progress(DEFINE_SYNC_PROGRESS_NONE,
* DEFINE_SYNC_INIT, DEFINE_SYNC_CONNECTING, DEFINE_SYNC_AUTHENTICATED,
* DEFINE_SYNC_DONE, DEFINE_SYNC_ERROR)
@@ -58,7 +59,7 @@
* @code
* @endcode
*/
-se_error_type_e send_noti_session_process(char *profile, char *progress, char *error, char *sync_type);
+se_error_type_e send_noti_session_process(char *profile, int sync_type, char *progress, char *error);
/**
* @par Description: API to notify process update to UI
@@ -69,7 +70,7 @@ se_error_type_e send_noti_session_process(char *profile, char *progress, char *e
* @par Method of function operation:
* @par Important notes:
* @param[in] string type, profile dir name(identify profile in UI)
- * @param[in] string type, server sync type
+ * @param[in] int type, server sync type
* @param[in] string type, datastore name
* @param[in] string type, progressStatus(DEFINE_PROGRESS_NONE, DEFINE_PROGRESS_SUCCESS, DEFINE_FAILED_DB,
* DEFINE_FAILED_DB_FORBIDDEN, DEFINE_FAILED_DB_ITEM, DEFINE_FAILED_DB_CONFIG, DEFINE_FAILED_DB_DEVICEFULL)
@@ -94,6 +95,6 @@ se_error_type_e send_noti_session_process(char *profile, char *progress, char *e
* @code
* @endcode
*/
-se_error_type_e send_noti_process_update(char *profile_dir_name, char *sync_type, char *uri, char *progress_status, char *operation_type, int is_from_server, int total_per_operation, int synced_per_operation, int total_per_db, int synced_per_db);
+se_error_type_e send_noti_process_update(char *profile_dir_name, int sync_type, int uri, char *progress_status, char *operation_type, int is_from_server, int total_per_operation, int synced_per_operation, int total_per_db, int synced_per_db);
#endif /* SE_NOTIFICATION_H_ */
diff --git a/include/service-engine/se_storage.h b/include/service-engine/se_storage.h
index ecf45d6..5b29611 100755
--- a/include/service-engine/se_storage.h
+++ b/include/service-engine/se_storage.h
@@ -131,9 +131,9 @@ se_error_type_e write_sync_resource_info(int account_id, int content_type, int l
* @param[out] string type, server ip
* @param[out] string type, id
* @param[out] string type, password
- * @param[out] string type, sync mode
- * @param[out] string type, sync type
- * @param[out] string type, interval
+ * @param[out] int type, sync mode
+ * @param[out] int type, sync type
+ * @param[out] int type, interval
* @param[out] int type, last_session_status
* @param[out] int type, last_session_time
*
@@ -152,7 +152,7 @@ se_error_type_e write_sync_resource_info(int account_id, int content_type, int l
* @code
* @endcode
*/
-bool get_profile_data(int account_id, char **profile_name, char **addr, char **id, char **password, char **sync_mode, char **sync_type, char **interval, int *last_session_status, int *last_session_time);
+bool get_profile_data(int account_id, char **profile_name, char **addr, char **id, char **password, int *sync_mode, int *sync_type, int *interval, int *last_session_status, int *last_session_time);
/**
* @par Description: API to get profile datastore information(enable, source uri, target uri, id, password) from config_tbl
@@ -166,7 +166,7 @@ bool get_profile_data(int account_id, char **profile_name, char **addr, char **i
* @param[in] int type, account id
* @param[in] int type, content type(TYPE_CONTACT, TYPE_CALENDAR, TYPE_MEMO)
* @param[out] string type, enabled
- * @param[out] string type, source uri
+ * @param[out] int type, source uri
* @param[out] string type, target uri
* @param[out] string type, id
* @param[out] string type, password
@@ -185,7 +185,7 @@ bool get_profile_data(int account_id, char **profile_name, char **addr, char **i
* @code
* @endcode
*/
-bool get_profile_sync_category(int account_id, int content_type, int *enabled, char **src_uri, char **tgt_uri, char **id, char **password);
+bool get_profile_sync_category(int account_id, int content_type, int *enabled, int *src_uri, char **tgt_uri, char **id, char **password);
/**
* @par Description: API to get profile sync statistics for each content type from config_tbl
diff --git a/packaging/oma-ds-agent.spec b/packaging/oma-ds-agent.spec
index 1782263..f477726 100755
--- a/packaging/oma-ds-agent.spec
+++ b/packaging/oma-ds-agent.spec
@@ -1,6 +1,6 @@
Name: oma-ds-agent
Summary: oma-ds-agent daemon for data sync
-Version: 0.1.6
+Version: 0.1.62
Release: 1
Group: TO_BE/FILLED_IN
License: Apache License, Version 2.0
@@ -12,7 +12,6 @@ BuildRequires: pkgconfig(libsoup-2.4)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(sync-agent)
BuildRequires: pkgconfig(vconf)
-BuildRequires: pkgconfig(libwbxml2)
BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(check)
BuildRequires: pkgconfig(memo)
@@ -21,6 +20,7 @@ BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(aul)
BuildRequires: expat-devel
BuildRequires: cmake
+Requires: sys-assert
%description
@@ -45,6 +45,14 @@ make %{?jobs:-j%jobs}
%install
rm -rf %{buildroot}
+
+if [ ! -d %{buildroot}/opt/dbspace ]
+then
+ mkdir -p %{buildroot}/opt/dbspace
+fi
+
+sqlite3 %{buildroot}/opt/dbspace/.omasyncagent.db "PRAGMA journal_mode = PERSIST; create table a(a); drop table a;" > /dev/null
+
%make_install
@@ -66,18 +74,14 @@ then
mkdir /etc/rc.d/rc5.d
fi
+if [ ! -f /etc/rc.d/rc3.d/S91oma-ds-agent ]
+then
ln -s /etc/init.d/oma-ds /etc/rc.d/rc3.d/S91oma-ds-agent
-ln -s /etc/init.d/oma-ds /etc/rc.d/rc5.d/S91oma-ds-agent
-
-sqlite3 /opt/dbspace/.omasyncagent.db "PRAGMA journal_mode = PERSIST; create table a(a); drop table a;" > /dev/null
-
-chmod 600 /opt/dbspace/.omasyncagent.db
-chmod 600 /opt/dbspace/.omasyncagent.db-journal
+fi
-if [ -f /usr/lib/rpm-plugins/msm.so ]
+if [ ! -f /etc/rc.d/rc5.d/S91oma-ds-agent ]
then
- chsmack -a oma-ds-agent::db /opt/dbspace/.omasyncagent.db
- chsmack -a oma-ds-agent::db /opt/dbspace/.omasyncagent.db-journal
+ ln -s /etc/init.d/oma-ds /etc/rc.d/rc5.d/S91oma-ds-agent
fi
#/etc/init.d/oma-ds start
@@ -101,6 +105,9 @@ rm -rf /usr/share/oma-ds-cfg
%files
+%attr(600,root,root) /opt/dbspace/.omasyncagent.db
+%attr(600,root,root) /opt/dbspace/.omasyncagent.db-journal
+
%manifest oma-ds-agent.manifest
%defattr(-,root,root,-)
/usr/share/dbus-1/services/*
diff --git a/src/agent/CMakeLists.txt b/src/agent/CMakeLists.txt
index 64fb834..77638be 100755
--- a/src/agent/CMakeLists.txt
+++ b/src/agent/CMakeLists.txt
@@ -21,7 +21,6 @@ pkg_check_modules(LPKGS REQUIRED
sqlite3
sync-agent
vconf
- libwbxml2
dlog
aul
dbus-glib-1
diff --git a/src/agent/common/common_define.c b/src/agent/common/common_define.c
index 3954bb4..8453245 100755
--- a/src/agent/common/common_define.c
+++ b/src/agent/common/common_define.c
@@ -734,9 +734,6 @@ void free_sync_service(sync_service_s * category)
retm_if(category == NULL, "category is NULL");
- if (category->src_uri != NULL)
- free(category->src_uri);
-
if (category->tgt_uri != NULL)
free(category->tgt_uri);
diff --git a/src/agent/common/common_util.c b/src/agent/common/common_util.c
index 7c1bb70..48231af 100755
--- a/src/agent/common/common_util.c
+++ b/src/agent/common/common_util.c
@@ -122,10 +122,13 @@ bool get_config(int account_id, char *key, char **value)
sync_agent_da_config_s *config = NULL;
*value = NULL;
+ _DEBUG_INFO("get_config - account_id[%d], key[%s]",account_id,key);
result = sync_agent_create_config(&config);
- if (result != SYNC_AGENT_DA_SUCCESS)
+ if (result != SYNC_AGENT_DA_SUCCESS) {
+ _DEBUG_INFO("sync_agent_create_config() failed!!");
return false;
+ }
result = sync_agent_get_config(account_id, key, &config);
if (result == SYNC_AGENT_DA_SUCCESS) {
@@ -152,6 +155,8 @@ bool get_config(int account_id, char *key, char **value)
break;
}
}
+ } else {
+ _DEBUG_INFO("sync_agent_get_config() failed!!");
}
}
if (success == false) {
diff --git a/src/agent/framework/event/oma_ds_event_handler.c b/src/agent/framework/event/oma_ds_event_handler.c
index 01d5102..94eeb97 100755
--- a/src/agent/framework/event/oma_ds_event_handler.c
+++ b/src/agent/framework/event/oma_ds_event_handler.c
@@ -57,30 +57,28 @@ int event_callback_add_profile_sync(sync_agent_event_data_s * request, sync_agen
{
_EXTERN_FUNC_ENTER;
- char *profile_dir_name = NULL;
char *profile_name = NULL;
char *addr = NULL;
char *id = NULL;
char *password = NULL;
- char *sync_mode = NULL;
- char *sync_type = NULL;
- char *interval = NULL;
- int category_count;
+ int sync_mode = 0;
+ int sync_type = 0;
+ int interval = 0;
+ int category_count = 0;
int result = 0;
- int account_id;
+ int account_id = 0;
GList *categorys = NULL;
GList *iter = NULL;
- sync_agent_get_event_data_param(request, &profile_dir_name);
- sync_agent_get_event_data_param(request, &profile_name);
- sync_agent_get_event_data_param(request, &addr);
- sync_agent_get_event_data_param(request, &id);
- sync_agent_get_event_data_param(request, &password);
- sync_agent_get_event_data_param(request, &sync_mode);
- sync_agent_get_event_data_param(request, &sync_type);
- sync_agent_get_event_data_param(request, &interval);
- sync_agent_get_event_data_param(request, &category_count);
+ sync_agent_get_event_data_param_str(request, &profile_name);
+ sync_agent_get_event_data_param_str(request, &addr);
+ sync_agent_get_event_data_param_str(request, &id);
+ sync_agent_get_event_data_param_str(request, &password);
+ sync_agent_get_event_data_param_int(request, (int*)&sync_mode);
+ sync_agent_get_event_data_param_int(request, (int*)&sync_type);
+ sync_agent_get_event_data_param_int(request, (int*)&interval);
+ sync_agent_get_event_data_param_int(request, &category_count);
/*
_DEBUG_INFO("request param : %s", profile_dir_name);
@@ -100,39 +98,35 @@ int event_callback_add_profile_sync(sync_agent_event_data_s * request, sync_agen
if (category == NULL) {
_DEBUG_ERROR("category is NULL !");
- if (profile_dir_name != NULL)
- free(profile_dir_name);
-
- if (profile_name != NULL)
+ if (profile_name != NULL) {
free(profile_name);
+ profile_name = NULL;
+ }
- if (addr != NULL)
+ if (addr != NULL) {
free(addr);
+ addr = NULL;
+ }
- if (id != NULL)
+ if (id != NULL) {
free(id);
+ id = NULL;
+ }
- if (password != NULL)
+ if (password != NULL) {
free(password);
-
- if (sync_mode != NULL)
- free(sync_mode);
-
- if (sync_type != NULL)
- free(sync_type);
-
- if (interval != NULL)
- free(interval);
+ password = NULL;
+ }
return 0;
}
- sync_agent_get_event_data_param(request, &(category->service_type));
- sync_agent_get_event_data_param(request, &(category->enabled));
- sync_agent_get_event_data_param(request, &(category->src_uri));
- sync_agent_get_event_data_param(request, &(category->tgt_uri));
- sync_agent_get_event_data_param(request, &(category->id));
- sync_agent_get_event_data_param(request, &(category->password));
+ sync_agent_get_event_data_param_int(request, (int*)&((category->service_type)));
+ sync_agent_get_event_data_param_int(request, &(category->enabled));
+ sync_agent_get_event_data_param_int(request, (int*)&(category->src_uri));
+ sync_agent_get_event_data_param_str(request, &(category->tgt_uri));
+ sync_agent_get_event_data_param_str(request, &(category->id));
+ sync_agent_get_event_data_param_str(request, &(category->password));
categorys = g_list_append(categorys, category);
@@ -147,11 +141,11 @@ int event_callback_add_profile_sync(sync_agent_event_data_s * request, sync_agen
}
/* send to engine controller */
- void *in_param_value_array[9] = { &profile_dir_name, &profile_name, &addr, &id, &password, &sync_mode, &sync_type, &interval, &categorys };
- int in_param_index_array[9] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
- sync_agent_ec_value_type_e in_param_value_type_array[9] = { SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT,
- SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT,
- SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT
+ void *in_param_value_array[8] = {&profile_name, &addr, &id, &password, &sync_mode, &sync_type, &interval, &categorys };
+ int in_param_index_array[8] = { 0, 1, 2, 3, 4, 5, 6, 7};
+ sync_agent_ec_value_type_e in_param_value_type_array[8] = {SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT,
+ SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_INT,
+ SYNC_AGENT_EC_VALUE_TYPE_INT, SYNC_AGENT_EC_VALUE_TYPE_INT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT
};
unsigned int request_msg_id = 0;
@@ -159,7 +153,7 @@ int event_callback_add_profile_sync(sync_agent_event_data_s * request, sync_agen
sync_agent_ec_task_error_e task_error = SYNC_AGENT_EC_TASK_ERROR_NOT_YET_RUN;
sync_agent_ec_param_param_s **param_array = NULL;
- sync_agent_request_sync_task(EC_MSG_TYPE_SYNC_TASK_ADD_PROFILE, 0, 9, in_param_index_array, in_param_value_type_array, in_param_value_array, (int *)&request_msg_id, &task_error, &out_param_count, &param_array);
+ sync_agent_request_sync_task(EC_MSG_TYPE_SYNC_TASK_ADD_PROFILE, 0, 8, in_param_index_array, in_param_value_type_array, in_param_value_array, (int *)&request_msg_id, &task_error, &out_param_count, &param_array);
sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
sync_agent_get_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &account_id);
@@ -170,8 +164,10 @@ int event_callback_add_profile_sync(sync_agent_event_data_s * request, sync_agen
for (iter = categorys; iter != NULL; iter = g_list_next(iter)) {
sync_service_s *category = (sync_service_s *) iter->data;
- if (category != NULL)
+ if (category != NULL) {
free_sync_service(category);
+ category = NULL;
+ }
}
_EXTERN_FUNC_EXIT;
@@ -187,16 +183,16 @@ int event_callback_edit_profile_sync(sync_agent_event_data_s * request, sync_age
char *addr = NULL;
char *id = NULL;
char *password = NULL;
- char *sync_mode = NULL;
- char *sync_type = NULL;
- char *interval = NULL;
- int category_count;
+ int sync_mode = 0;
+ int sync_type = 0;
+ int interval = 0;
+ int category_count = 0;
int result = 0;
GList *categorys = NULL;
GList *iter = NULL;
- sync_agent_get_event_data_param(request, &profile_dir_name);
+ sync_agent_get_event_data_param_str(request, &profile_dir_name);
if (profile_dir_name == NULL) {
_DEBUG_ERROR("profile_dir_name is not defined");
result = 0;
@@ -206,22 +202,22 @@ int event_callback_edit_profile_sync(sync_agent_event_data_s * request, sync_age
int account_id = get_account_id(profile_dir_name, false);
- sync_agent_get_event_data_param(request, &profile_name);
- sync_agent_get_event_data_param(request, &addr);
- sync_agent_get_event_data_param(request, &id);
- sync_agent_get_event_data_param(request, &password);
- sync_agent_get_event_data_param(request, &sync_mode);
- sync_agent_get_event_data_param(request, &sync_type);
- sync_agent_get_event_data_param(request, &interval);
- sync_agent_get_event_data_param(request, &category_count);
+ sync_agent_get_event_data_param_str(request, &profile_name);
+ sync_agent_get_event_data_param_str(request, &addr);
+ sync_agent_get_event_data_param_str(request, &id);
+ sync_agent_get_event_data_param_str(request, &password);
+ sync_agent_get_event_data_param_int(request, (int*)&sync_mode);
+ sync_agent_get_event_data_param_int(request, (int*)&sync_type);
+ sync_agent_get_event_data_param_int(request, (int*)&interval);
+ sync_agent_get_event_data_param_int(request, &category_count);
_DEBUG_INFO("request param : %s", profile_name);
_DEBUG_INFO("request param : %s", addr);
_DEBUG_INFO("request param : %s", id);
_DEBUG_INFO("request param : %s", password);
- _DEBUG_INFO("request param : %s", sync_mode);
- _DEBUG_INFO("request param : %s", sync_type);
- _DEBUG_INFO("request param : %s", interval);
+ _DEBUG_INFO("request param : %d", sync_mode);
+ _DEBUG_INFO("request param : %d", sync_type);
+ _DEBUG_INFO("request param : %d", interval);
_DEBUG_INFO("request param : %d", category_count);
int i = 0;
@@ -245,30 +241,21 @@ int event_callback_edit_profile_sync(sync_agent_event_data_s * request, sync_age
if (password != NULL)
free(password);
- if (sync_mode != NULL)
- free(sync_mode);
-
- if (sync_type != NULL)
- free(sync_type);
-
- if (interval != NULL)
- free(interval);
-
return 0;
}
- sync_agent_get_event_data_param(request, &(category->service_type));
- sync_agent_get_event_data_param(request, &(category->enabled));
- sync_agent_get_event_data_param(request, &(category->src_uri));
- sync_agent_get_event_data_param(request, &(category->tgt_uri));
- sync_agent_get_event_data_param(request, &(category->id));
- sync_agent_get_event_data_param(request, &(category->password));
+ sync_agent_get_event_data_param_int(request, (int*)&(category->service_type));
+ sync_agent_get_event_data_param_int(request, &(category->enabled));
+ sync_agent_get_event_data_param_int(request, (int*)&(category->src_uri));
+ sync_agent_get_event_data_param_str(request, &(category->tgt_uri));
+ sync_agent_get_event_data_param_str(request, &(category->id));
+ sync_agent_get_event_data_param_str(request, &(category->password));
categorys = g_list_append(categorys, category);
_DEBUG_INFO("category[i]->content_type : %d", category->service_type);
_DEBUG_INFO("category[i]->enabled : %d", category->enabled);
- _DEBUG_INFO("category[i]->srcURI : %s", category->src_uri);
+ _DEBUG_INFO("category[i]->srcURI : %d", category->src_uri);
_DEBUG_INFO("category[i]->tgtURI : %s", category->tgt_uri);
_DEBUG_INFO("category[i]->id : %s", category->id);
_DEBUG_INFO("category[i]->password : %s", category->password);
@@ -278,8 +265,8 @@ int event_callback_edit_profile_sync(sync_agent_event_data_s * request, sync_age
void *in_param_value_array[9] = { &account_id, &profile_name, &addr, &id, &password, &sync_mode, &sync_type, &interval, &categorys };
int in_param_index_array[9] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
sync_agent_ec_value_type_e in_param_value_type_array[9] = { SYNC_AGENT_EC_VALUE_TYPE_INT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT,
- SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT,
- SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT
+ SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT, SYNC_AGENT_EC_VALUE_TYPE_INT,
+ SYNC_AGENT_EC_VALUE_TYPE_INT, SYNC_AGENT_EC_VALUE_TYPE_INT, SYNC_AGENT_EC_VALUE_TYPE_STRUCT
};
unsigned int request_msg_id = 0;
@@ -315,7 +302,7 @@ int event_callback_delete_profile_sync(sync_agent_event_data_s * request, sync_a
int result = 0;
int count;
- sync_agent_get_event_data_param(request, &count);
+ sync_agent_get_event_data_param_int(request, &count);
GList *profiles = NULL;
int *account_id = 0;
@@ -327,7 +314,7 @@ int event_callback_delete_profile_sync(sync_agent_event_data_s * request, sync_a
profile = NULL;
}
- sync_agent_get_event_data_param(request, &profile);
+ sync_agent_get_event_data_param_str(request, &profile);
if (profile == NULL) {
_DEBUG_ERROR("profile is not defined");
result = 0;
@@ -378,7 +365,7 @@ int event_callback_request_sync_sync(sync_agent_event_data_s * request, sync_age
char *profile = NULL;
int result = 0;
- sync_agent_get_event_data_param(request, &profile);
+ sync_agent_get_event_data_param_str(request, &profile);
if (profile == NULL) {
_DEBUG_ERROR("profile is not defined");
result = 0;
@@ -415,7 +402,7 @@ int event_callback_cancel_sync_sync(sync_agent_event_data_s * request, sync_agen
int result = 0;
bool res;
- sync_agent_get_event_data_param(request, &profile);
+ sync_agent_get_event_data_param_str(request, &profile);
if (profile == NULL) {
_DEBUG_ERROR("profile is not defined");
result = 0;
@@ -451,13 +438,13 @@ int event_callback_get_profile_data_sync(sync_agent_event_data_s * request, sync
char *addr = NULL;
char *id = NULL;
char *password = NULL;
- char *sync_mode = NULL;
- char *sync_type = NULL;
- char *interval = NULL;
+ int sync_mode = 0;
+ int sync_type = 0;
+ int interval = 0;
int last_session_status = 0;
int last_session_time = 0;
- sync_agent_get_event_data_param(request, &profile);
+ sync_agent_get_event_data_param_str(request, &profile);
if (profile == NULL) {
_DEBUG_ERROR("profile is not defined");
result = 0;
@@ -484,9 +471,9 @@ int event_callback_get_profile_data_sync(sync_agent_event_data_s * request, sync
sync_agent_get_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &addr);
sync_agent_get_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &id);
sync_agent_get_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &password);
- sync_agent_get_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &sync_mode);
- sync_agent_get_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &sync_type);
- sync_agent_get_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &interval);
+ sync_agent_get_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &sync_mode);
+ sync_agent_get_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &sync_type);
+ sync_agent_get_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &interval);
sync_agent_get_param_value(&(param_array[8]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &last_session_status);
sync_agent_get_param_value(&(param_array[9]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &last_session_time);
@@ -497,14 +484,16 @@ int event_callback_get_profile_data_sync(sync_agent_event_data_s * request, sync
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)addr);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)id);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)password);
- sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)sync_mode);
- sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)sync_type);
- sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)interval);
+ sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &sync_mode);
+ sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &sync_type);
+ sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &interval);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &last_session_status);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &last_session_time);
- if (profile != NULL)
+ if (profile != NULL) {
free(profile);
+ profile = NULL;
+ }
_EXTERN_FUNC_EXIT;
return 0;
@@ -522,14 +511,14 @@ int event_callback_get_profile_sync_category_sync(sync_agent_event_data_s * requ
char *password = NULL;
int result = 0;
- sync_agent_get_event_data_param(request, &profile);
+ sync_agent_get_event_data_param_str(request, &profile);
if (profile == NULL) {
_DEBUG_ERROR("profile is not defined");
result = 0;
goto error;
}
- sync_agent_get_event_data_param(request, &content_type);
+ sync_agent_get_event_data_param_int(request, &content_type);
_DEBUG_INFO("request param : %s", profile);
_DEBUG_INFO("request param : %d", content_type);
@@ -550,7 +539,7 @@ int event_callback_get_profile_sync_category_sync(sync_agent_event_data_s * requ
sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
sync_agent_get_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &enabled);
- sync_agent_get_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &srcURI);
+ sync_agent_get_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &srcURI);
sync_agent_get_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &tgtURI);
sync_agent_get_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &id);
sync_agent_get_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &password);
@@ -566,7 +555,7 @@ int event_callback_get_profile_sync_category_sync(sync_agent_event_data_s * requ
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &result);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &enabled);
- sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)srcURI);
+ sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &srcURI);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)tgtURI);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)id);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)password);
@@ -598,14 +587,14 @@ int event_callback_get_profile_last_statistics_sync(sync_agent_event_data_s * re
int client2Server_NrOfReplace = 0;
int result = 0;
- sync_agent_get_event_data_param(request, &profile);
+ sync_agent_get_event_data_param_str(request, &profile);
if (profile == NULL) {
_DEBUG_ERROR("profile is not defined");
result = 0;
goto error;
}
- sync_agent_get_event_data_param(request, &content_type);
+ sync_agent_get_event_data_param_int(request, &content_type);
_DEBUG_INFO("request param : %s", profile);
_DEBUG_INFO("request param : %d", content_type);
@@ -678,15 +667,15 @@ int event_callback_add_profile_cp_sync(sync_agent_event_data_s * request, sync_a
char *addr = NULL;
char *id = NULL;
char *password = NULL;
- int category_count;
+ int category_count = 0;
int result = 0;
- int account_id;
+ int account_id = 0;
- sync_agent_get_event_data_param(request, &profile_name);
- sync_agent_get_event_data_param(request, &addr);
- sync_agent_get_event_data_param(request, &id);
- sync_agent_get_event_data_param(request, &password);
- sync_agent_get_event_data_param(request, &category_count);
+ sync_agent_get_event_data_param_str(request, &profile_name);
+ sync_agent_get_event_data_param_str(request, &addr);
+ sync_agent_get_event_data_param_str(request, &id);
+ sync_agent_get_event_data_param_str(request, &password);
+ sync_agent_get_event_data_param_int(request, &category_count);
/*
_DEBUG_INFO("request param : %s", profile_name);
@@ -705,25 +694,29 @@ int event_callback_add_profile_cp_sync(sync_agent_event_data_s * request, sync_a
if (profile_name != NULL)
free(profile_name);
+ profile_name = NULL;
if (addr != NULL)
free(addr);
+ addr = NULL;
if (id != NULL)
free(id);
+ id = NULL;
if (password != NULL)
free(password);
+ password = NULL;
return 0;
}
- sync_agent_get_event_data_param(request, &(category->name));
- sync_agent_get_event_data_param(request, &(category->accept));
- sync_agent_get_event_data_param(request, &(category->id));
- sync_agent_get_event_data_param(request, &(category->password));
- sync_agent_get_event_data_param(request, &(category->auth_type));
- sync_agent_get_event_data_param(request, &(category->auth_data));
+ sync_agent_get_event_data_param_str(request, &(category->name));
+ sync_agent_get_event_data_param_str(request, &(category->accept));
+ sync_agent_get_event_data_param_str(request, &(category->id));
+ sync_agent_get_event_data_param_str(request, &(category->password));
+ sync_agent_get_event_data_param_str(request, &(category->auth_type));
+ sync_agent_get_event_data_param_str(request, &(category->auth_data));
categorys = g_list_append(categorys, category);
@@ -767,17 +760,16 @@ int event_callback_request_calllog_sync_async(sync_agent_event_data_s * request,
char *data = NULL;
int result = 0;
- sync_agent_get_event_data_param(request, &data);
+ sync_agent_get_event_data_param_str(request, &data);
if (data == NULL) {
_DEBUG_ERROR("data is NULL");
result = 0;
- goto error;
+ } else {
+ _DEBUG_INFO("data = %s", data);
+ result = send_ip_push_sync_msg(data);
+ free(data);
+ data = NULL;
}
- _DEBUG_INFO("data = %s", data);
-
- result = send_ip_push_sync_msg(data);
-
- error:
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &result);
@@ -857,9 +849,9 @@ int event_callback_request_get_all_profiles_data(sync_agent_event_data_s * reque
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)server_info->id);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)server_info->password);
- sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)sync_info->sync_mode);
- sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)sync_info->sync_type);
- sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)sync_info->interval);
+ sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &sync_info->sync_mode);
+ sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &sync_info->sync_type);
+ sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &sync_info->interval);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &profile_info->last_sync_status);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &profile_info->last_sync_time);
@@ -871,9 +863,9 @@ int event_callback_request_get_all_profiles_data(sync_agent_event_data_s * reque
_DEBUG_INFO("server_info->id = %s", server_info->id);
_DEBUG_INFO("server_info->password = %s", server_info->password);
- _DEBUG_INFO("sync_info->sync_mode = %s", sync_info->sync_mode);
- _DEBUG_INFO("sync_info->sync_type = %s", sync_info->sync_type);
- _DEBUG_INFO("sync_info->interval = %s", sync_info->interval);
+ _DEBUG_INFO("sync_info->sync_mode = %d", sync_info->sync_mode);
+ _DEBUG_INFO("sync_info->sync_type = %d", sync_info->sync_type);
+ _DEBUG_INFO("sync_info->interval = %d", sync_info->interval);
_DEBUG_INFO("profile_info->last_sync_status = %d", profile_info->last_sync_status);
_DEBUG_INFO("profile_info->last_sync_time = %d", profile_info->last_sync_time);
@@ -888,14 +880,14 @@ int event_callback_request_get_all_profiles_data(sync_agent_event_data_s * reque
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &category_info->service_type);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &category_info->enabled);
- sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)category_info->src_uri);
+ sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &category_info->src_uri);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)category_info->tgt_uri);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)category_info->id);
sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)category_info->password);
_DEBUG_INFO("category_info->service_type = %d", category_info->service_type);
_DEBUG_INFO("category_info->enabled = %d", category_info->enabled);
- _DEBUG_INFO("category_info->src_uri = %s", category_info->src_uri);
+ _DEBUG_INFO("category_info->src_uri = %d", category_info->src_uri);
_DEBUG_INFO("category_info->tgt_uri = %s", category_info->tgt_uri);
_DEBUG_INFO("category_info->id = %s", category_info->id);
_DEBUG_INFO("category_info->password = %s", category_info->password);
diff --git a/src/agent/framework/event/oma_ds_platform_event_handler.c b/src/agent/framework/event/oma_ds_platform_event_handler.c
index ddc3547..31053ca 100755
--- a/src/agent/framework/event/oma_ds_platform_event_handler.c
+++ b/src/agent/framework/event/oma_ds_platform_event_handler.c
@@ -330,8 +330,8 @@ int send_ip_push_sync_msg(char *data)
if (server_id != NULL)
free(server_id);
- if (pSanPackage != NULL)
- sanPackageParserFree((void *)pSanPackage);
+// if (pSanPackage != NULL)
+// sanPackageParserFree((void *)pSanPackage);
sync_agent_close_agent();
diff --git a/src/agent/framework/task/oma_ds_engine_controller_task.c b/src/agent/framework/task/oma_ds_engine_controller_task.c
index ba7012d..6638e65 100755
--- a/src/agent/framework/task/oma_ds_engine_controller_task.c
+++ b/src/agent/framework/task/oma_ds_engine_controller_task.c
@@ -177,35 +177,30 @@ sync_agent_ec_task_spec_s *make_add_profile_task()
{
_EXTERN_FUNC_ENTER;
- sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_structure("profileDirName", _string_copy_struct, free,
- true, false, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec2 = sync_agent_alloc_param_spec_structure("profileName", _string_copy_struct, free,
- true, false, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec3 = sync_agent_alloc_param_spec_structure("addr", _string_copy_struct, free,
- true, false, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec4 = sync_agent_alloc_param_spec_structure("id", _string_copy_struct, free,
- true, false, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec5 = sync_agent_alloc_param_spec_structure("password", _string_copy_struct, free,
+ sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_structure("profileName", _string_copy_struct, free,
true, false, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec6 = sync_agent_alloc_param_spec_structure("syncMode", _string_copy_struct, free,
+ sync_agent_ec_param_spec_s *pParam_spec2 = sync_agent_alloc_param_spec_structure("addr", _string_copy_struct, free,
true, false, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_structure("syncType", _string_copy_struct, free,
+ sync_agent_ec_param_spec_s *pParam_spec3 = sync_agent_alloc_param_spec_structure("id", _string_copy_struct, free,
true, false, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec8 = sync_agent_alloc_param_spec_structure("interval", _string_copy_struct, free,
+ sync_agent_ec_param_spec_s *pParam_spec4 = sync_agent_alloc_param_spec_structure("password", _string_copy_struct, free,
true, false, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec9 = sync_agent_alloc_param_spec_structure("categories", NULL, _free_sync_categorie_list,
+ sync_agent_ec_param_spec_s *pParam_spec5 = sync_agent_alloc_param_spec_int("syncMode", true, false, false, 0, 0, false, 0, false, 0, 0);
+ sync_agent_ec_param_spec_s *pParam_spec6 = sync_agent_alloc_param_spec_int("syncType", true, false, false, 0, 0, false, 0, false, 0, 0);
+ sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_int("interval", true, false, false, 0, 0, false, 0, false, 0, 0);
+ sync_agent_ec_param_spec_s *pParam_spec8 = sync_agent_alloc_param_spec_structure("categories", NULL, _free_sync_categorie_list,
true, false, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec10 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
- sync_agent_ec_param_spec_s *pParam_spec11 = sync_agent_alloc_param_spec_int("accountId", false, true, false, 0, 0, false, 0, false, 0, 0);
+ sync_agent_ec_param_spec_s *pParam_spec9 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
+ sync_agent_ec_param_spec_s *pParam_spec10 = sync_agent_alloc_param_spec_int("accountId", false, true, false, 0, 0, false, 0, false, 0, 0);
- sync_agent_ec_param_spec_s *param_spec_array[11] = { pParam_spec1, pParam_spec2, pParam_spec3, pParam_spec4, pParam_spec5,
- pParam_spec6, pParam_spec7, pParam_spec8, pParam_spec9, pParam_spec10, pParam_spec11
+ sync_agent_ec_param_spec_s *param_spec_array[10] = { pParam_spec1, pParam_spec2, pParam_spec3, pParam_spec4, pParam_spec5,
+ pParam_spec6, pParam_spec7, pParam_spec8, pParam_spec9, pParam_spec10
};
sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("add_profile",
add_profile_task_process, NULL, NULL,
- 11, param_spec_array);
+ 10, param_spec_array);
sync_agent_unref_param_spec(pParam_spec1);
sync_agent_unref_param_spec(pParam_spec2);
@@ -217,7 +212,6 @@ sync_agent_ec_task_spec_s *make_add_profile_task()
sync_agent_unref_param_spec(pParam_spec8);
sync_agent_unref_param_spec(pParam_spec9);
sync_agent_unref_param_spec(pParam_spec10);
- sync_agent_unref_param_spec(pParam_spec11);
_EXTERN_FUNC_EXIT;
return pTask_spec;
@@ -236,12 +230,9 @@ sync_agent_ec_task_spec_s *make_edit_profile_task()
true, false, false, NULL, false, NULL, false, NULL);
sync_agent_ec_param_spec_s *pParam_spec5 = sync_agent_alloc_param_spec_structure("password", _string_copy_struct, free,
true, false, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec6 = sync_agent_alloc_param_spec_structure("syncMode", _string_copy_struct, free,
- true, false, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_structure("syncType", _string_copy_struct, free,
- true, false, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec8 = sync_agent_alloc_param_spec_structure("interval", _string_copy_struct, free,
- true, false, false, NULL, false, NULL, false, NULL);
+ sync_agent_ec_param_spec_s *pParam_spec6 = sync_agent_alloc_param_spec_int("syncMode", true, false, false, 0, 0, false, 0, false, 0, 0);
+ sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_int("syncType", true, false, false, 0, 0, false, 0, false, 0, 0);
+ sync_agent_ec_param_spec_s *pParam_spec8 = sync_agent_alloc_param_spec_int("interval", true, false, false, 0, 0, false, 0, false, 0, 0);
sync_agent_ec_param_spec_s *pParam_spec9 = sync_agent_alloc_param_spec_structure("categories", NULL, _free_sync_categorie_list,
true, false, false, NULL, false, NULL, false, NULL);
@@ -297,6 +288,7 @@ sync_agent_ec_task_spec_s *make_get_profile_data_task()
_EXTERN_FUNC_ENTER;
sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_int("accountId", true, false, false, 0, 0, false, 0, false, 0, 0);
+
sync_agent_ec_param_spec_s *pParam_spec2 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
sync_agent_ec_param_spec_s *pParam_spec3 = sync_agent_alloc_param_spec_structure("profileName", _string_copy_struct, free,
false, true, false, NULL, false, NULL, false, NULL);
@@ -306,12 +298,9 @@ sync_agent_ec_task_spec_s *make_get_profile_data_task()
false, true, false, NULL, false, NULL, false, NULL);
sync_agent_ec_param_spec_s *pParam_spec6 = sync_agent_alloc_param_spec_structure("password", _string_copy_struct, free,
false, true, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_structure("syncMode", _string_copy_struct, free,
- false, true, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec8 = sync_agent_alloc_param_spec_structure("syncType", _string_copy_struct, free,
- false, true, false, NULL, false, NULL, false, NULL);
- sync_agent_ec_param_spec_s *pParam_spec9 = sync_agent_alloc_param_spec_structure("interval", _string_copy_struct, free,
- false, true, false, NULL, false, NULL, false, NULL);
+ sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_int("syncMode", false, true, false, 0, 0, false, 0, false, 0, 0);
+ sync_agent_ec_param_spec_s *pParam_spec8 = sync_agent_alloc_param_spec_int("syncType", false, true, false, 0, 0, false, 0, false, 0, 0);
+ sync_agent_ec_param_spec_s *pParam_spec9 = sync_agent_alloc_param_spec_int("interval", false, true, false, 0, 0, false, 0, false, 0, 0);
sync_agent_ec_param_spec_s *pParam_spec10 = sync_agent_alloc_param_spec_int("lastSessionStatus", false, true, false, 0, 0, false, 0, false, 0, 0);
sync_agent_ec_param_spec_s *pParam_spec11 = sync_agent_alloc_param_spec_int("lastSessionTime", false, true, false, 0, 0, false, 0, false, 0, 0);
@@ -349,8 +338,7 @@ sync_agent_ec_task_spec_s *make_get_profile_sync_category_task()
sync_agent_ec_param_spec_s *pParam_spec3 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
sync_agent_ec_param_spec_s *pParam_spec4 = sync_agent_alloc_param_spec_int("enabled", false, true, false, 0, 0, false, 0, false, 0, 0);
- sync_agent_ec_param_spec_s *pParam_spec5 = sync_agent_alloc_param_spec_structure("srcURI", _string_copy_struct, free,
- false, true, false, NULL, false, NULL, false, NULL);
+ sync_agent_ec_param_spec_s *pParam_spec5 = sync_agent_alloc_param_spec_int("srcURI", false, true, false, 0, 0, false, 0, false, 0, 0);
sync_agent_ec_param_spec_s *pParam_spec6 = sync_agent_alloc_param_spec_structure("tgtURI", _string_copy_struct, free,
false, true, false, NULL, false, NULL, false, NULL);
sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_structure("id", _string_copy_struct, free,
@@ -574,39 +562,37 @@ sync_agent_ec_task_error_e add_profile_task_process(unsigned int param_cnt, sync
sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
- char *profileDirName = NULL;
char *profileName = NULL;
char *addr = NULL;
char *id = NULL;
char *password = NULL;
- char *syncMode = NULL;
- char *syncType = NULL;
- char *interval = NULL;
+ int syncMode = 0;
+ int syncType = 0;
+ int interval = 0;
GList *categories = NULL;
int accountId;
bool res;
int result;
- sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &profileDirName);
- sync_agent_get_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &profileName);
- sync_agent_get_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &addr);
- sync_agent_get_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &id);
- sync_agent_get_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &password);
- sync_agent_get_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &syncMode);
- sync_agent_get_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &syncType);
- sync_agent_get_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &interval);
- sync_agent_get_param_value(&(param_array[8]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &categories);
+ sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &profileName);
+ sync_agent_get_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &addr);
+ sync_agent_get_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &id);
+ sync_agent_get_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &password);
+ sync_agent_get_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &syncMode);
+ sync_agent_get_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &syncType);
+ sync_agent_get_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &interval);
+ sync_agent_get_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &categories);
- res = add_profile(profileDirName, profileName, addr, id, password, syncMode, syncType, interval, categories, &accountId);
+ res = add_profile(profileName, addr, id, password, syncMode, syncType, interval, categories, &accountId);
if (res == false) {
err = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
result = 0;
} else
result = 1;
- sync_agent_set_param_value(&(param_array[9]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
- sync_agent_set_param_value(&(param_array[10]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &accountId);
+ sync_agent_set_param_value(&(param_array[8]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
+ sync_agent_set_param_value(&(param_array[9]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &accountId);
/*step 2 : start refresh_from_service for added account */
void *in_param_value_array[1] = { &accountId };
@@ -630,9 +616,9 @@ sync_agent_ec_task_error_e edit_profile_task_process(unsigned int param_cnt, syn
char *addr = NULL;
char *id = NULL;
char *password = NULL;
- char *syncMode = NULL;
- char *syncType = NULL;
- char *interval = NULL;
+ int syncMode = 0;
+ int syncType = 0;
+ int interval = 0;
GList *categories = NULL;
bool res;
@@ -643,9 +629,9 @@ sync_agent_ec_task_error_e edit_profile_task_process(unsigned int param_cnt, syn
sync_agent_get_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &addr);
sync_agent_get_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &id);
sync_agent_get_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &password);
- sync_agent_get_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &syncMode);
- sync_agent_get_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &syncType);
- sync_agent_get_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &interval);
+ sync_agent_get_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &syncMode);
+ sync_agent_get_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &syncType);
+ sync_agent_get_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &interval);
sync_agent_get_param_value(&(param_array[8]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &categories);
res = edit_profile(accountId, profileName, addr, id, password, syncMode, syncType, interval, categories);
@@ -697,9 +683,9 @@ sync_agent_ec_task_error_e get_profile_data_task_process(unsigned int param_cnt,
char *addr = NULL;
char *id = NULL;
char *password = NULL;
- char *syncMode = NULL;
- char *syncType = NULL;
- char *interval = NULL;
+ int sync_mode = 0;
+ int syncType = 0;
+ int interval = 0;
int lastSessionStatus;
int lastSessionTime;
int result;
@@ -708,7 +694,7 @@ sync_agent_ec_task_error_e get_profile_data_task_process(unsigned int param_cnt,
sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &accountId);
retvm_if(accountId < 0, SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED, "account id = %d", accountId);
- res = get_profile_data(accountId, &profileName, &addr, &id, &password, &syncMode, &syncType, &interval, &lastSessionStatus, &lastSessionTime);
+ res = get_profile_data(accountId, &profileName, &addr, &id, &password, &sync_mode, &syncType, &interval, &lastSessionStatus, &lastSessionTime);
if (res == false) {
err = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
result = 0;
@@ -720,9 +706,9 @@ sync_agent_ec_task_error_e get_profile_data_task_process(unsigned int param_cnt,
sync_agent_set_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &addr);
sync_agent_set_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &id);
sync_agent_set_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &password);
- sync_agent_set_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &syncMode);
- sync_agent_set_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &syncType);
- sync_agent_set_param_value(&(param_array[8]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &interval);
+ sync_agent_set_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &sync_mode);
+ sync_agent_set_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &syncType);
+ sync_agent_set_param_value(&(param_array[8]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &interval);
sync_agent_set_param_value(&(param_array[9]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &lastSessionStatus);
sync_agent_set_param_value(&(param_array[10]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &lastSessionTime);
@@ -741,7 +727,7 @@ sync_agent_ec_task_error_e get_profile_sync_category_task_process(unsigned int p
int contentType;
int enabled = 0;
- char *srcURI = NULL;
+ int srcURI = 0;
char *tgtURI = NULL;
char *id = NULL;
char *password = NULL;
@@ -762,7 +748,7 @@ sync_agent_ec_task_error_e get_profile_sync_category_task_process(unsigned int p
sync_agent_set_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
sync_agent_set_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &enabled);
- sync_agent_set_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &srcURI);
+ sync_agent_set_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &srcURI);
sync_agent_set_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &tgtURI);
sync_agent_set_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &id);
sync_agent_set_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &password);
diff --git a/src/agent/service-adapter/protocol-binder/oma_ds_protocol_binder.c b/src/agent/service-adapter/protocol-binder/oma_ds_protocol_binder.c
index b6b14db..bda3a46 100755
--- a/src/agent/service-adapter/protocol-binder/oma_ds_protocol_binder.c
+++ b/src/agent/service-adapter/protocol-binder/oma_ds_protocol_binder.c
@@ -563,7 +563,7 @@ static sync_agent_pb_error_e _oma_ds_binder_devinf_converter_function(sync_agent
}
}
- __append_devinf_contenttype_to_wbxml_node(devInfDataStore->rx_pref, binder, datastore_node, ELEMENT_RX_PREF);
+ err = __append_devinf_contenttype_to_wbxml_node(devInfDataStore->rx_pref, binder, datastore_node, ELEMENT_RX_PREF);
if (err != SYNC_AGENT_PB_RETURN_OK)
goto error;
@@ -571,19 +571,19 @@ static sync_agent_pb_error_e _oma_ds_binder_devinf_converter_function(sync_agent
devinf_content_type_s *devInfContentType = NULL;
for (rxIter = devInfDataStore->rx; rxIter != NULL; rxIter = g_list_next(rxIter)) {
devInfContentType = rxIter->data;
- __append_devinf_contenttype_to_wbxml_node(devInfContentType, binder, datastore_node, ELEMENT_RX);
+ err = __append_devinf_contenttype_to_wbxml_node(devInfContentType, binder, datastore_node, ELEMENT_RX);
if (err != SYNC_AGENT_PB_RETURN_OK)
goto error;
}
- __append_devinf_contenttype_to_wbxml_node(devInfDataStore->tx_pref, binder, datastore_node, ELEMENT_TX_PREF);
+ err = __append_devinf_contenttype_to_wbxml_node(devInfDataStore->tx_pref, binder, datastore_node, ELEMENT_TX_PREF);
if (err != SYNC_AGENT_PB_RETURN_OK)
goto error;
GList *txIter = NULL;
for (txIter = devInfDataStore->tx; txIter != NULL; txIter = g_list_next(txIter)) {
devInfContentType = txIter->data;
- __append_devinf_contenttype_to_wbxml_node(devInfContentType, binder, datastore_node, ELEMENT_TX);
+ err = __append_devinf_contenttype_to_wbxml_node(devInfContentType, binder, datastore_node, ELEMENT_TX);
if (err != SYNC_AGENT_PB_RETURN_OK)
goto error;
diff --git a/src/agent/service-adapter/sa_common_interface.c b/src/agent/service-adapter/sa_common_interface.c
index 614aded..c2e2a6a 100755
--- a/src/agent/service-adapter/sa_common_interface.c
+++ b/src/agent/service-adapter/sa_common_interface.c
@@ -201,7 +201,7 @@ static sa_error_type_e _create_session(int account_id, char *session_id, bool se
}
/* create session info */
- errorType = create_session(VERSION_12, PROTOCOL_TYPE_DS, account_id, session_id, pSourceLocation, pTargetLocation, session);
+ errorType = create_session(VERSION_12, PROTOCOL_TYPE_DS, account_id, session_id, dup_location(pSourceLocation), dup_location(pTargetLocation), session);
if (errorType != SA_INTERNAL_OK) {
_DEBUG_ERROR("failed to create session");
goto error;
@@ -216,18 +216,38 @@ static sa_error_type_e _create_session(int account_id, char *session_id, bool se
error:
- if (id != NULL)
+ if (id != NULL) {
free(id);
- if (pwd != NULL)
+ id = NULL;
+ }
+ if (pwd != NULL) {
free(pwd);
- if (targetUrl != NULL)
+ pwd = NULL;
+ }
+ if (targetUrl != NULL) {
free(targetUrl);
- if (sourceUrl != NULL)
+ targetUrl = NULL;
+ }
+ if (sourceUrl != NULL) {
free(sourceUrl);
- if (nextNonce != NULL)
+ sourceUrl = NULL;
+ }
+ if (nextNonce != NULL) {
free(nextNonce);
- if (pTempChal != NULL)
+ nextNonce = NULL;
+ }
+ if (pTempChal != NULL) {
free_chal(pTempChal);
+ pTempChal = NULL;
+ }
+ if (pSourceLocation != NULL) {
+ free_location(pSourceLocation);
+ pSourceLocation = NULL;
+ }
+ if (pTargetLocation != NULL) {
+ free_location(pTargetLocation);
+ pTargetLocation = NULL;
+ }
_INNER_FUNC_EXIT;
return errorType;
@@ -245,7 +265,6 @@ static sa_error_type_e _generate_presync_msg(session_s * session, bool server_fl
char *credData = NULL;
char *decoded_nonce = NULL;
bool resume = false;
- char *value = NULL;
alert_type_e alert_type = ALERT_UNKNOWN;
/*pkg1 always has final tag */
@@ -333,10 +352,6 @@ static sa_error_type_e _generate_presync_msg(session_s * session, bool server_fl
decoded_nonce = NULL;
}
- if (nextNonce != NULL) {
- free(nextNonce);
- nextNonce = NULL;
- }
nonce_size = 0;
if (errorType != SA_INTERNAL_OK) {
@@ -527,8 +542,6 @@ static sa_error_type_e _generate_presync_msg(session_s * session, bool server_fl
free(targetUrl);
if (nextNonce != NULL)
free(nextNonce);
- if (value != NULL)
- free(value);
if (pCred != NULL)
free_cred(pCred);
@@ -548,8 +561,6 @@ static sa_error_type_e _generate_presync_msg(session_s * session, bool server_fl
free(targetUrl);
if (nextNonce != NULL)
free(nextNonce);
- if (value != NULL)
- free(value);
if (syncml != NULL)
free_syncml(syncml);
if (pSyncHdr != NULL)
@@ -731,6 +742,9 @@ static sa_error_type_e _generate_msg(session_s * session, void **sync_obj, bool
}
free_commands(commands);
+ if (binder != NULL)
+ oma_ds_1_2_binder_terminate(binder);
+
_INNER_FUNC_EXIT;
return errorType;
}
@@ -2617,7 +2631,7 @@ int auto_configure(char *addr, char *id, char *password, GList ** configure)
target = NULL;
}
*/
-
+/*
GList *iter = NULL;
GList *innerIter = NULL;
devinf_datastore_s *devInfDataStore = NULL;
@@ -2670,7 +2684,7 @@ int auto_configure(char *addr, char *id, char *password, GList ** configure)
}
}
}
-
+*/
tempConfigure = g_list_append(tempConfigure, contactCandidate);
tempConfigure = g_list_append(tempConfigure, calendarCandidate);
tempConfigure = g_list_append(tempConfigure, memoCandidate);
diff --git a/src/agent/service-adapter/sa_session.c b/src/agent/service-adapter/sa_session.c
index 3ff27a1..6b0feae 100755
--- a/src/agent/service-adapter/sa_session.c
+++ b/src/agent/service-adapter/sa_session.c
@@ -903,6 +903,7 @@ static sa_error_type_e _receive_changes_command(session_s * session, command_s *
free_command(session->large_obj_cmd);
session->large_obj_cmd = NULL;
+ command = NULL;
} else {
status_s *temp = NULL;
errorType = create_new_status_location(session, ERROR_SIZE_MISMATCH, command, changedItem->source, changedItem->target, convert_command_type_change_type(changeType), &temp);
@@ -925,6 +926,7 @@ static sa_error_type_e _receive_changes_command(session_s * session, command_s *
}
}
}
+
if (changeType == CHANGE_ADD) {
int datastore_id = 0;
if (strcmp(changedItem->content_type, ELEMENT_TEXT_VCARD) == 0 || strcmp(changedItem->content_type, ELEMENT_TEXT_VCARD_30) == 0)
@@ -971,7 +973,10 @@ static sa_error_type_e _receive_changes_command(session_s * session, command_s *
}
status_s *temp = NULL;
- errorType = create_new_status_location(session, ERROR_UNKNOWN, command, changedItem->source, changedItem->target, convert_command_type_change_type(changeType), &temp);
+
+ if (command != NULL)
+ errorType = create_new_status_location(session, ERROR_UNKNOWN, command, changedItem->source, changedItem->target, convert_command_type_change_type(changeType), &temp);
+
if (errorType != SA_INTERNAL_OK) {
_DEBUG_ERROR("failed in create_new_status_location");
goto error;
@@ -985,8 +990,10 @@ static sa_error_type_e _receive_changes_command(session_s * session, command_s *
error:
- if (changed != NULL)
+ if (changed) {
free_changed_item(changed);
+ changed = NULL;
+ }
_INNER_FUNC_ENTER;
return errorType;
@@ -1485,6 +1492,7 @@ sa_error_type_e receive_commands(session_s * session, GList * receive_command, b
command = iter->data;
if (auto_config != true || (auto_config == true && command->type == COMMAND_TYPE_RESULTS)) {
+ _DEBUG_INFO("command->type = %d", command->type);
switch (command->type) {
case COMMAND_TYPE_UNKNOWN:
case COMMAND_TYPE_HEADER:
@@ -1525,7 +1533,7 @@ sa_error_type_e receive_commands(session_s * session, GList * receive_command, b
case COMMAND_TYPE_REPLACE:
case COMMAND_TYPE_DELETE:
{
- if (command->type != COMMAND_TYPE_ADD || luid_str_list != NULL) {
+ if (luid_str_list != NULL) {
errorType = _receive_changes_command(session, command, luid_str_list, &index, &changedDatastore);
} else {
_DEBUG_ERROR("luid_str_list is NULL !!");
diff --git a/src/agent/service-adapter/sa_util.c b/src/agent/service-adapter/sa_util.c
index 6538765..fb450d9 100755
--- a/src/agent/service-adapter/sa_util.c
+++ b/src/agent/service-adapter/sa_util.c
@@ -34,12 +34,13 @@ void put_into_list(GList ** commands, GList ** commands_last, void *command)
{
_EXTERN_FUNC_ENTER;
- GList *temp = NULL;
if (*commands_last == NULL) {
- *commands_last = *commands = g_list_append(*commands, command);
+ *commands = g_list_append(*commands, command);
+ *commands_last = *commands;
} else {
- temp = g_list_append(*commands_last, command);
- *commands_last = g_list_next(*commands_last);
+ *commands_last = g_list_append(*commands_last, command);
+ *commands = g_list_first(*commands_last);
+ *commands_last = g_list_last(*commands_last);
}
_EXTERN_FUNC_EXIT;
diff --git a/src/agent/service-engine/se_account.c b/src/agent/service-engine/se_account.c
index 803f9d3..b1608d8 100755
--- a/src/agent/service-engine/se_account.c
+++ b/src/agent/service-engine/se_account.c
@@ -56,6 +56,11 @@ static datastore_cp_info predefinedServer[] = {
{"Everdroid", 1}
};
+static char * _convert_to_sync_mode_str(int sync_mode);
+static char * _convert_to_sync_type_str(int sync_type);
+static char * _convert_to_interval_str(int interval);
+static char * _convert_to_src_uri_str(int src_uri);
+
static se_error_type_e _add_profile(char *addr, char *id, char *password, char *access_name, int *account_id);
static se_error_type_e _set_profile_info(int account_id, char *profile_name, char *sync_mode, char *sync_type, char *interval);
static se_error_type_e _set_profile_category(int account_id, sync_service_s * category);
@@ -69,6 +74,145 @@ static se_error_type_e _set_profile_category_info_cp(int account_id, int content
static se_error_type_e __set_profile_category_info_into_cofnig_list(int account_id, int content_type, int enabled, char *src_uri, char *tgt_uri, char *id, char *password, GList ** config_list);
static se_error_type_e ___append_config_value(int account_id, char *key, char *value, char *type, char *access_name, GList ** list);
+static char * _convert_to_sync_mode_str(int sync_mode)
+{
+ _INNER_FUNC_ENTER;
+
+ _DEBUG_INFO("sync_mode: [%d]",sync_mode);
+ char *sync_mode_str = NULL;
+
+ switch (sync_mode) {
+ case MODE_MANUAL:
+ sync_mode_str = DEFINE_SYNC_MODE_MANUAL;
+ break;
+ case MODE_PERIODIC:
+ sync_mode_str = DEFINE_SYNC_MODE_PERIODIC;
+ break;
+ case MODE_PUSH:
+ sync_mode_str = DEFINE_SYNC_MODE_PUSH;
+ break;
+ default:
+ _DEBUG_ERROR("sync_mode is invalid!!");
+ break;
+ }
+
+ _DEBUG_INFO("sync_mode_str: [%s]",sync_mode_str);
+
+ _INNER_FUNC_EXIT;
+ return sync_mode_str;
+}
+
+static char * _convert_to_sync_type_str(int sync_type)
+{
+ _INNER_FUNC_ENTER;
+ char *sync_type_str = NULL;
+
+ _DEBUG_INFO("sync_type: [%d]",sync_type);
+
+ switch (sync_type) {
+ case SYNC_TYPE_FULL_SYNC:
+ sync_type_str = DEFINE_ALERT_SLOW_SYNC_STR;
+ break;
+ case SYNC_TYPE_UPDATE_BOTH:
+ sync_type_str = DEFINE_ALERT_TWO_WAY_STR;
+ break;
+ case SYNC_TYPE_UPDATE_TO_SERVER:
+ sync_type_str = DEFINE_ALERT_ONE_WAY_FROM_CLIENT_STR;
+ break;
+ case SYNC_TYPE_UPDATE_TO_PHONE:
+ sync_type_str = DEFINE_ALERT_ONE_WAY_FROM_SERVER_STR;
+ break;
+ case SYNC_TYPE_REFRESH_FROM_SERVER:
+ sync_type_str = DEFINE_ALERT_REFRESH_FROM_SERVER_STR;
+ break;
+ case SYNC_TYPE_REFRESH_FROM_PHONE:
+ sync_type_str = DEFINE_ALERT_REFRESH_FROM_CLIENT_STR;
+ break;
+ default:
+ _DEBUG_ERROR("sync_type is invalid!!");
+ sync_type_str = DEFINE_ALERT_UNKNOWN_STR;
+ break;
+ }
+
+ _DEBUG_INFO("sync_type_str: [%s]",sync_type_str);
+
+ _INNER_FUNC_EXIT;
+ return sync_type_str;
+}
+
+static char * _convert_to_interval_str(int interval)
+{
+ _INNER_FUNC_ENTER;
+ char *interval_str = NULL;
+
+ _DEBUG_INFO("interval: [%d]",interval);
+
+ switch (interval) {
+ case SYNC_INTERVAL_5_MINUTES:
+ interval_str = DEFINE_SYNC_INTERVAL_5_MINUTES_STR;
+ break;
+ case SYNC_INTERVAL_15_MINUTES:
+ interval_str = DEFINE_SYNC_INTERVAL_15_MINUTES_STR;
+ break;
+ case SYNC_INTERVAL_1_HOUR:
+ interval_str = DEFINE_SYNC_INTERVAL_1_HOUR_STR;
+ break;
+ case SYNC_INTERVAL_4_HOURS:
+ interval_str = DEFINE_SYNC_INTERVAL_4_HOURS_STR;
+ break;
+ case SYNC_INTERVAL_12_HOURS:
+ interval_str = DEFINE_SYNC_INTERVAL_12_HOURS_STR;
+ break;
+ case SYNC_INTERVAL_1_DAY:
+ interval_str = DEFINE_SYNC_INTERVAL_1_DAY_STR;
+ break;
+ case SYNC_INTERVAL_1_WEEK:
+ interval_str = DEFINE_SYNC_INTERVAL_1_WEEK_STR;
+ break;
+ case SYNC_INTERVAL_1_MONTH:
+ interval_str = DEFINE_SYNC_INTERVAL_1_MONTH_STR;
+ break;
+ default:
+ _DEBUG_ERROR("interval is invalid!!");
+ break;
+ }
+
+ _DEBUG_INFO("interval_str: [%s]",interval_str);
+
+ _INNER_FUNC_EXIT;
+ return interval_str;
+}
+
+static char * _convert_to_src_uri_str(int src_uri)
+{
+ _INNER_FUNC_ENTER;
+ char* src_uri_str = NULL;
+
+ _DEBUG_INFO("src_uri: [%d]",src_uri);
+
+ switch (src_uri) {
+ case SRC_URI_CONTACT:
+ src_uri_str = DEFINE_SOURCE_CONTACT_URI;
+ break;
+ case SRC_URI_CALENDAR:
+ src_uri_str = DEFINE_SOURCE_CALENDAR_URI;
+ break;
+ case SRC_URI_MEMO:
+ src_uri_str = DEFINE_SOURCE_MEMO_URI;
+ break;
+ case SRC_URI_CALLLOG:
+ src_uri_str = DEFINE_SOURCE_CALLLOG_URI;
+ break;
+ default:
+ _DEBUG_ERROR("src_uri is invalid!!");
+ break;
+ }
+ _DEBUG_INFO("src_uri_str: [%s]", src_uri_str);
+
+ _INNER_FUNC_EXIT;
+ return src_uri_str;
+}
+
static se_error_type_e _add_profile(char *addr, char *id, char *password, char *access_name, int *account_id)
{
_INNER_FUNC_ENTER;
@@ -353,7 +497,7 @@ static se_error_type_e _set_profile_category(int account_id, sync_service_s * ca
_DEBUG_TRACE("category->content_type : %d", category->service_type);
_DEBUG_TRACE("category->enabled : %d", category->enabled);
- _DEBUG_TRACE("category->src_uri : %s", category->src_uri);
+ _DEBUG_TRACE("category->src_uri : %d", category->src_uri);
_DEBUG_TRACE("category->tgt_uri : %s", category->tgt_uri);
_DEBUG_TRACE("category->id : %s", category->id);
_DEBUG_TRACE("category->password : %s", category->password);
@@ -366,6 +510,7 @@ static se_error_type_e _set_profile_category(int account_id, sync_service_s * ca
char datastore_source[128];
char datastore_id[128];
char datastore_pw[128];
+ char *src_uri_str = NULL;
if (category->service_type == TYPE_CONTACT)
datastore = DEFINE_CONFIG_KEY_PROFILE_CATEGORY_CONTACTS;
@@ -388,12 +533,19 @@ static se_error_type_e _set_profile_category(int account_id, sync_service_s * ca
goto error;
}
- result = set_config_str(account_id, datastore_source, category->src_uri, "string", "SE");
+ src_uri_str = _convert_to_src_uri_str(category->src_uri);
+ if (src_uri_str == NULL){
+ _DEBUG_ERROR("failed in _convert_to_src_uri_str");
+ goto error;
+ }
+
+ result = set_config_str(account_id, datastore_source, src_uri_str, "string", "SE");
if (result == false) {
_DEBUG_ERROR("failed in set_config");
err = SE_INTERNAL_DA_ERROR;
goto error;
}
+ _DEBUG_INFO("src_uri_str: [%s]",src_uri_str);
result = set_config_str(account_id, datastore_target, category->tgt_uri, "string", "SE");
if (result == false) {
@@ -426,6 +578,7 @@ static se_error_type_e _set_profile_category(int account_id, sync_service_s * ca
static se_error_type_e _set_periodic_sync_config(int account_id, char *sync_mode, char *interval)
{
_INNER_FUNC_ENTER;
+ _DEBUG_TRACE("account_id = %d", account_id);
_DEBUG_TRACE("sync_mode = %s", sync_mode);
se_error_type_e err = SE_INTERNAL_OK;
@@ -460,14 +613,14 @@ static se_error_type_e _set_periodic_sync_config(int account_id, char *sync_mode
}
if (strcmp(sync_mode, DEFINE_SYNC_MODE_PERIODIC) == 0 && interval != NULL) {
-
+/*
result = set_config_str(account_id, DEFINE_CONFIG_KEY_PROFILE_CLIENT_SYNC_TYPE, DEFINE_ALERT_TWO_WAY_STR, "string", "SE");
if (result == false) {
_DEBUG_ERROR("failed in set_config");
err = SE_INTERNAL_DA_ERROR;
goto error;
}
-
+*/
int week[] = { DAY_SUN, DAY_MON, DAY_TUE, DAY_WED, DAY_THU, DAY_FRI, DAY_SAT };
time_t current_time;
struct tm *struct_time;
@@ -510,6 +663,10 @@ static se_error_type_e _set_periodic_sync_config(int account_id, char *sync_mode
_DEBUG_TRACE("1 week");
alarm_info->repeat_type = REPEAT_WEEKLY;
alarm_info->repeat_value = week[struct_time->tm_wday];
+ } else if (strcmp(interval, "1 month") == 0) {
+ _DEBUG_TRACE("1 month");
+ alarm_info->repeat_type = REPEAT;//REPEAT_MONTHLY;
+ alarm_info->repeat_value = (((24 * 60) * 60) * 30 );
}
scheduler_err = sync_agent_add_service_data(1, alarm_info, &alarm_id);
@@ -538,14 +695,19 @@ static se_error_type_e _set_periodic_sync_config(int account_id, char *sync_mode
error:
- if (value != NULL)
+ if (value != NULL) {
free(value);
+ value = NULL;
+ }
if (alarm_info != NULL) {
- if (alarm_info->start_alarm_time != NULL)
+ if (alarm_info->start_alarm_time != NULL) {
free(alarm_info->start_alarm_time);
+ alarm_info->start_alarm_time = NULL;
+ }
free(alarm_info);
+ alarm_info = NULL;
}
_INNER_FUNC_EXIT;
@@ -670,12 +832,20 @@ static se_error_type_e _set_profile_category_info(int account_id, sync_service_s
retvm_if(category == NULL, SE_INTERNAL_NOT_DEFINED, "category is NULL");
se_error_type_e err = SE_INTERNAL_OK;
- err = __set_profile_category_info_into_cofnig_list(account_id, category->service_type, category->enabled, category->src_uri, category->tgt_uri, category->id, category->password, config_list);
+ char *src_uri_str = NULL;
+
+ src_uri_str = _convert_to_src_uri_str(category->src_uri);
+ if (src_uri_str == NULL) {
+ _DEBUG_ERROR("failed in _convert_to_src_uri_str");
+ goto error;
+ }
+
+ err = __set_profile_category_info_into_cofnig_list(account_id, category->service_type, category->enabled, src_uri_str, category->tgt_uri, category->id, category->password, config_list);
if (err != SE_INTERNAL_OK) {
_DEBUG_ERROR("failed in _set_profile_category_info_into_cofnig_list");
goto error;
}
-
+ _DEBUG_INFO("src_uri_str: [%s]",src_uri_str);
error:
_INNER_FUNC_EXIT;
@@ -1016,6 +1186,7 @@ static se_error_type_e _get_empty_profile_dir_name(char **empty_profile_dir_name
char profileIndex[2];
int index;
int i;
+ int cnt = 0;
sync_agent_acc_error_e acc_err = SYNC_AGENT_ACC_SUCCESS;
sync_agent_fw_account_s *fw_account = NULL;
@@ -1031,6 +1202,9 @@ static se_error_type_e _get_empty_profile_dir_name(char **empty_profile_dir_name
goto error;
}
+ cnt = g_list_length(account_info_list);
+ _DEBUG_INFO("account_info_list , length = %d", cnt);
+
for (iter = account_info_list; iter != NULL; iter = g_list_next(iter)) {
fw_account = (sync_agent_fw_account_s *) iter->data;
@@ -1039,6 +1213,7 @@ static se_error_type_e _get_empty_profile_dir_name(char **empty_profile_dir_name
profileDirName = NULL;
}
+ _DEBUG_INFO("fw_account->account_id = %d", fw_account->account_id);
result = get_config(fw_account->account_id, DEFINE_CONFIG_KEY_PROFILE_DIR_NAME, &profileDirName);
if (result == false) {
_DEBUG_ERROR("failed in get_Config");
@@ -1075,7 +1250,7 @@ static se_error_type_e _get_empty_profile_dir_name(char **empty_profile_dir_name
return err;
}
-bool add_profile(char *profile_dir_name, char *profile_name, char *addr, char *id, char *password, char *sync_mode, char *sync_type, char *interval, GList * categories, int *account_id)
+bool add_profile(char *profile_name, char *addr, char *id, char *password, int sync_mode, int sync_type, int interval, GList * categories, int *account_id)
{
_EXTERN_FUNC_ENTER;
@@ -1083,13 +1258,17 @@ bool add_profile(char *profile_dir_name, char *profile_name, char *addr, char *i
_DEBUG_INFO("addr = %s", addr);
_DEBUG_INFO("id = %s", id);
_DEBUG_INFO("password = %s", password);
- _DEBUG_INFO("sync_mode = %s", sync_mode);
- _DEBUG_INFO("sync_type = %s", sync_type);
- _DEBUG_INFO("interval = %s", interval);
+ _DEBUG_INFO("sync_mode = %d", sync_mode);
+ _DEBUG_INFO("sync_type = %d", sync_type);
+ _DEBUG_INFO("interval = %d", interval);
se_error_type_e err = SE_INTERNAL_OK;
int account = -1;
GList *config_list = NULL;
+ char *profile_dir_name = NULL;
+ char * sync_mode_str = NULL;
+ char * sync_type_str = NULL;
+ char * interval_str = NULL;
sync_agent_da_return_e da_err = sync_agent_open_agent();
if (da_err != SYNC_AGENT_DA_SUCCESS) {
@@ -1097,25 +1276,68 @@ bool add_profile(char *profile_dir_name, char *profile_name, char *addr, char *i
goto error;
}
+ // Assign profile_dir_name
+ err = _get_empty_profile_dir_name(&profile_dir_name);
+ if (err != SE_INTERNAL_OK) {
+ _DEBUG_ERROR("failed in _get_empty_profileDirName");
+ goto error;
+ }
+
+ if (profile_dir_name == NULL) {
+ _DEBUG_ERROR("Maximum profiles count is %d, no more profile", MAXIMUM_ACCOUNT_COUNT);
+ err = SE_INTERNAL_ERROR;
+ goto error;
+ }
+ _DEBUG_INFO("profile_dir_name[%s]", profile_dir_name);
+
err = _add_profile(addr, id, password, "SE", &account);
if (err != SE_INTERNAL_OK) {
- _DEBUG_ERROR("failed in add_Account");
+ _DEBUG_ERROR("failed in _add_profile");
goto error;
}
- err = _set_profile_info_into_config_list(account, profile_dir_name, addr, profile_name, sync_mode, sync_type, interval, NULL, NULL, &config_list);
+ sync_mode_str = _convert_to_sync_mode_str(sync_mode);
+ if (sync_mode_str == NULL) {
+ _DEBUG_ERROR("_convert_to_sync_mode_str failed!!");
+ err = SE_INTERNAL_ERROR;
+ goto error;
+ }
+
+ sync_type_str = _convert_to_sync_type_str(sync_type);
+ if (sync_type_str == NULL) {
+ _DEBUG_ERROR("_convert_to_sync_type_str failed!!");
+ err = SE_INTERNAL_ERROR;
+ goto error;
+ }
+
+ interval_str = _convert_to_interval_str(interval);
+ if (interval_str == NULL) {
+ _DEBUG_ERROR("_convert_to_interval_str failed!!");
+ err = SE_INTERNAL_ERROR;
+ goto error;
+ }
+
+ _DEBUG_INFO("sync_mode_str : [%s]", sync_mode_str);
+ _DEBUG_INFO("sync_type_str : [%s]", sync_type_str);
+ _DEBUG_INFO("interval_str : [%s]", interval_str);
+
+ err = _set_profile_info_into_config_list(account, profile_dir_name, addr, profile_name, sync_mode_str, sync_type_str, interval_str, NULL, NULL, &config_list);
if (err != SE_INTERNAL_OK) {
- _DEBUG_ERROR("failed in add_Account");
+ _DEBUG_ERROR("_set_profile_info_into_config_list failed!!");
goto error;
}
+ int cnt = 0;
+ cnt = g_list_length(categories);
+ _DEBUG_INFO("categories length : [%d]", cnt);
+
sync_service_s *category = NULL;
GList *iter = NULL;
for (iter = categories; iter != NULL; iter = g_list_next(iter)) {
category = iter->data;
err = _set_profile_category_info(account, category, &config_list);
if (err != SE_INTERNAL_OK) {
- _DEBUG_ERROR("failed in __set_profile_category");
+ _DEBUG_ERROR("failed in _set_profile_category_info");
goto error;
}
}
@@ -1123,10 +1345,11 @@ bool add_profile(char *profile_dir_name, char *profile_name, char *addr, char *i
da_err = sync_agent_add_config_list(config_list);
if (da_err != SYNC_AGENT_DA_SUCCESS) {
err = SE_INTERNAL_DA_ERROR;
+ _DEBUG_ERROR("failed in sync_agent_add_config_list");
goto error;
}
- err = _set_periodic_sync_config(account, sync_mode, interval);
+ err = _set_periodic_sync_config(account, sync_mode_str, interval_str);
if (err != SE_INTERNAL_OK) {
_DEBUG_ERROR("failed in _set_periodic_sync_config");
goto error;
@@ -1445,7 +1668,7 @@ bool add_profile_dive(int *account_id)
return true;
}
-bool edit_profile(int account_id, char *profile_name, char *addr, char *id, char *password, char *sync_mode, char *sync_type, char *interval, GList * categories)
+bool edit_profile(int account_id, char *profile_name, char *addr, char *id, char *password, int sync_mode, int sync_type, int interval, GList * categories)
{
_EXTERN_FUNC_ENTER;
@@ -1453,6 +1676,9 @@ bool edit_profile(int account_id, char *profile_name, char *addr, char *id, char
sync_agent_acc_error_e acc_err = SYNC_AGENT_ACC_SUCCESS;
sync_agent_fw_account_s *fw_account = NULL;
bool result;
+ char* sync_mode_str = NULL;
+ char* sync_type_str = NULL;
+ char* interval_str = NULL;
sync_agent_da_return_e da_err = sync_agent_open_agent();
if (da_err != SYNC_AGENT_DA_SUCCESS) {
@@ -1485,13 +1711,34 @@ bool edit_profile(int account_id, char *profile_name, char *addr, char *id, char
goto error;
}
- err = _set_profile_info(account_id, profile_name, sync_mode, sync_type, interval);
+ sync_mode_str = _convert_to_sync_mode_str(sync_mode);
+ if (sync_mode_str == NULL) {
+ _DEBUG_ERROR("_convert_to_sync_mode_str failed!!");
+ err = SE_INTERNAL_DA_ERROR;
+ goto error;
+ }
+
+ sync_type_str = _convert_to_sync_type_str(sync_type);
+ if (sync_type_str == NULL) {
+ _DEBUG_ERROR("_convert_to_sync_type_str failed!!");
+ err = SE_INTERNAL_DA_ERROR;
+ goto error;
+ }
+
+ interval_str = _convert_to_interval_str(interval);
+ if (interval_str == NULL) {
+ _DEBUG_ERROR("_convert_to_interval_str failed!!");
+ err = SE_INTERNAL_DA_ERROR;
+ goto error;
+ }
+
+ err = _set_profile_info(account_id, profile_name, sync_mode_str, sync_type_str, interval_str);
if (err != SE_INTERNAL_OK) {
_DEBUG_ERROR("failed in __set_profile_info");
goto error;
}
- err = _set_periodic_sync_config(account_id, sync_mode, interval);
+ err = _set_periodic_sync_config(account_id, sync_mode_str, interval_str);
if (err != SE_INTERNAL_OK) {
_DEBUG_ERROR("failed in __set_profile_info");
goto error;
diff --git a/src/agent/service-engine/se_notification.c b/src/agent/service-engine/se_notification.c
index 1fdf1c5..6a22701 100755
--- a/src/agent/service-engine/se_notification.c
+++ b/src/agent/service-engine/se_notification.c
@@ -36,7 +36,7 @@
#define NOTI_KEY "OMADS"
#define OMA_DS_UI_PKG "ug-setting-synchronise-efl"
-se_error_type_e send_noti_session_process(char *profile, char *sync_type, char *progress, char *error)
+se_error_type_e send_noti_session_process(char *profile, int sync_type, char *progress, char *error)
{
_EXTERN_FUNC_ENTER;
@@ -59,7 +59,7 @@ se_error_type_e send_noti_session_process(char *profile, char *sync_type, char *
}
sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)profile);
- sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)sync_type);
+ sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &sync_type);
sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)progress);
sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)error);
@@ -81,7 +81,7 @@ se_error_type_e send_noti_session_process(char *profile, char *sync_type, char *
return err;
}
-se_error_type_e send_noti_process_update(char *profile_dir_name, char *sync_type, char *uri, char *progress_status, char *operation_type, int is_from_server, int total_per_operation, int synced_per_operation, int total_per_db, int synced_per_db)
+se_error_type_e send_noti_process_update(char *profile_dir_name, int sync_type, int uri, char *progress_status, char *operation_type, int is_from_server, int total_per_operation, int synced_per_operation, int total_per_db, int synced_per_db)
{
_EXTERN_FUNC_ENTER;
@@ -104,8 +104,8 @@ se_error_type_e send_noti_process_update(char *profile_dir_name, char *sync_type
}
sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)profile_dir_name);
- sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)sync_type);
- sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)uri);
+ sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &sync_type);
+ sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &uri);
sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)progress_status);
sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)operation_type);
sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &is_from_server);
diff --git a/src/agent/service-engine/se_storage.c b/src/agent/service-engine/se_storage.c
index 51beeff..e204715 100755
--- a/src/agent/service-engine/se_storage.c
+++ b/src/agent/service-engine/se_storage.c
@@ -36,6 +36,10 @@
static se_error_type_e _write_sync_type(int account_id, alert_type_e alert_type);
static se_error_type_e _write_last_session_values(int account_id, sync_session_result_e sync_session_result, int last_session_time);
+static int _convert_sync_mode_value(char* sync_mode_str);
+static int _convert_sync_type_value(char* sync_type_str);
+static int _convert_interval_value(char* interval_str);
+static int _convert_src_uri_value(char* src_uri_str);
static se_error_type_e _write_sync_type(int account_id, alert_type_e alert_type)
{
@@ -109,6 +113,124 @@ static se_error_type_e _write_last_session_values(int account_id, sync_session_r
return err;
}
+static int _convert_sync_mode_value(char* sync_mode_str)
+{
+ _INNER_FUNC_ENTER;
+ _DEBUG_INFO("sync_mode_str: [%s]", sync_mode_str);
+
+ int sync_mode_value = 0;
+
+ if (strcmp(sync_mode_str,DEFINE_SYNC_MODE_MANUAL) == 0){
+ sync_mode_value = MODE_MANUAL;
+ } else if (strcmp(sync_mode_str,DEFINE_SYNC_MODE_PERIODIC) == 0){
+ sync_mode_value = MODE_PERIODIC;
+ } else if (strcmp(sync_mode_str,DEFINE_SYNC_MODE_PUSH) == 0){
+ sync_mode_value = MODE_PUSH;
+ } else {
+ _DEBUG_ERROR("sync_mode_str is invalid!!");
+ goto error;
+ }
+
+ error:
+
+ _INNER_FUNC_EXIT;
+ return sync_mode_value;
+
+}
+
+static int _convert_sync_type_value(char* sync_type_str)
+{
+ _INNER_FUNC_ENTER;
+ _DEBUG_INFO("sync_type_str: [%s]", sync_type_str);
+
+ int sync_type_value = 0;
+
+ if (strcmp(sync_type_str,DEFINE_ALERT_SLOW_SYNC_STR) == 0){
+ sync_type_value = SYNC_TYPE_FULL_SYNC;
+ } else if (strcmp(sync_type_str,DEFINE_ALERT_TWO_WAY_STR) == 0){
+ sync_type_value = SYNC_TYPE_UPDATE_BOTH;
+ } else if (strcmp(sync_type_str,DEFINE_ALERT_ONE_WAY_FROM_CLIENT_STR) == 0){
+ sync_type_value = SYNC_TYPE_UPDATE_TO_SERVER;
+ } else if (strcmp(sync_type_str,DEFINE_ALERT_ONE_WAY_FROM_SERVER_STR) == 0){
+ sync_type_value = SYNC_TYPE_UPDATE_TO_PHONE;
+ } else if (strcmp(sync_type_str,DEFINE_ALERT_REFRESH_FROM_SERVER_STR) == 0){
+ sync_type_value = SYNC_TYPE_REFRESH_FROM_SERVER;
+ } else if (strcmp(sync_type_str,DEFINE_ALERT_REFRESH_FROM_CLIENT_STR) == 0){
+ sync_type_value = SYNC_TYPE_REFRESH_FROM_PHONE;
+ } else {
+ _DEBUG_ERROR("sync_type_str is invalid!!");
+ goto error;
+ }
+
+ error:
+
+ _INNER_FUNC_EXIT;
+ return sync_type_value;
+
+}
+
+static int _convert_interval_value(char* interval_str)
+{
+ _INNER_FUNC_ENTER;
+ _DEBUG_INFO("interval_str: [%s]", interval_str);
+
+ int interval_value = 0;
+
+ if (strcmp(interval_str,DEFINE_SYNC_INTERVAL_5_MINUTES_STR) == 0){
+ interval_value = SYNC_INTERVAL_5_MINUTES;
+ } else if (strcmp(interval_str,DEFINE_SYNC_INTERVAL_15_MINUTES_STR) == 0){
+ interval_value = SYNC_INTERVAL_15_MINUTES;
+ } else if (strcmp(interval_str,DEFINE_SYNC_INTERVAL_1_HOUR_STR) == 0){
+ interval_value = SYNC_INTERVAL_1_HOUR;
+ } else if (strcmp(interval_str,DEFINE_SYNC_INTERVAL_4_HOURS_STR) == 0){
+ interval_value = SYNC_INTERVAL_4_HOURS;
+ } else if (strcmp(interval_str,DEFINE_SYNC_INTERVAL_12_HOURS_STR) == 0){
+ interval_value = SYNC_INTERVAL_12_HOURS;
+ } else if (strcmp(interval_str,DEFINE_SYNC_INTERVAL_1_DAY_STR) == 0){
+ interval_value = SYNC_INTERVAL_1_DAY;
+ } else if (strcmp(interval_str,DEFINE_SYNC_INTERVAL_1_WEEK_STR) == 0){
+ interval_value = SYNC_INTERVAL_1_WEEK;
+ } else if (strcmp(interval_str,DEFINE_SYNC_INTERVAL_1_MONTH_STR) == 0){
+ interval_value = SYNC_INTERVAL_1_MONTH;
+ } else {
+ _DEBUG_ERROR("interval_str is invalid!!");
+ goto error;
+ }
+
+ error:
+
+ _INNER_FUNC_EXIT;
+ return interval_value;
+
+}
+
+static int _convert_src_uri_value(char* src_uri_str)
+{
+ _INNER_FUNC_ENTER;
+ _DEBUG_INFO("src_uri_str: [%s]", src_uri_str);
+
+ int src_uri_value = 0;
+
+ if (strcmp(src_uri_str,DEFINE_SOURCE_CONTACT_URI) == 0){
+ src_uri_value = SRC_URI_CONTACT;
+ } else if (strcmp(src_uri_str,DEFINE_SOURCE_CALENDAR_URI) == 0){
+ src_uri_value = SRC_URI_CALENDAR;
+ } else if (strcmp(src_uri_str,DEFINE_SOURCE_MEMO_URI) == 0){
+ src_uri_value = SRC_URI_MEMO;
+ } else if (strcmp(src_uri_str,DEFINE_SOURCE_CALLLOG_URI) == 0){
+ src_uri_value = SRC_URI_CALLLOG;
+ } else {
+ _DEBUG_ERROR("src_uri_str is invalid!!");
+ goto error;
+ }
+
+ error:
+
+ _INNER_FUNC_EXIT;
+ return src_uri_value;
+
+}
+
se_error_type_e write_profile_data(int account_id, alert_type_e alert_type, sync_session_result_e sync_session_result, int last_session_time, int only_from_client)
{
_EXTERN_FUNC_ENTER;
@@ -299,7 +421,7 @@ se_error_type_e write_sync_resource_info(int account_id, int content_type, int l
return err;
}
-bool get_profile_data(int account_id, char **profile_name, char **addr, char **id, char **password, char **sync_mode, char **sync_type, char **interval, int *last_session_status, int *last_session_time)
+bool get_profile_data(int account_id, char **profile_name, char **addr, char **id, char **password, int *sync_mode, int *sync_type, int *interval, int *last_session_status, int *last_session_time)
{
_EXTERN_FUNC_ENTER;
@@ -311,6 +433,12 @@ bool get_profile_data(int account_id, char **profile_name, char **addr, char **i
GList *iter = NULL;
sync_agent_da_config_s *config_data = NULL;
+ char *sync_mode_str = NULL;
+ char *sync_type_str = NULL;
+ char *interval_str = NULL;
+ int sync_mode_value = 0;
+ int sync_type_value = 0;
+ int interval_value = 0;
char *lastSessionStatus_str = NULL;
char *lastSessionTime_str = NULL;
@@ -367,21 +495,21 @@ bool get_profile_data(int account_id, char **profile_name, char **addr, char **i
if (strcmp(config_data->key, DEFINE_CONFIG_KEY_PROFILE_SYNC_MODE) == 0) {
if (config_data->value != NULL) {
- *sync_mode = strdup(config_data->value);
+ sync_mode_str = strdup(config_data->value);
continue;
}
}
if (strcmp(config_data->key, DEFINE_CONFIG_KEY_PROFILE_CLIENT_SYNC_TYPE) == 0) {
if (config_data->value != NULL) {
- *sync_type = strdup(config_data->value);
+ sync_type_str = strdup(config_data->value);
continue;
}
}
if (strcmp(config_data->key, DEFINE_CONFIG_KEY_PROFILE_SYNC_INTERVAL) == 0) {
if (config_data->value != NULL) {
- *interval = strdup(config_data->value);
+ interval_str = strdup(config_data->value);
continue;
}
}
@@ -403,6 +531,24 @@ bool get_profile_data(int account_id, char **profile_name, char **addr, char **i
}
}
+ if (sync_mode_str != NULL) {
+ sync_mode_value = _convert_sync_mode_value(sync_mode_str);
+ _DEBUG_INFO("sync_mode_value: [%d]", sync_mode_value);
+ *sync_mode = sync_mode_value;
+ }
+
+ if (sync_type_str != NULL) {
+ sync_type_value = _convert_sync_type_value(sync_type_str);
+ _DEBUG_INFO("sync_type_value: [%d]", sync_type_value);
+ *sync_type = sync_type_value;
+ }
+
+ if (interval_str != NULL) {
+ interval_value = _convert_interval_value(interval_str);
+ _DEBUG_INFO("interval_value: [%d]", interval_value);
+ *interval = sync_type_value;
+ }
+
if (lastSessionStatus_str != NULL)
*last_session_status = atoi(lastSessionStatus_str);
@@ -417,11 +563,30 @@ bool get_profile_data(int account_id, char **profile_name, char **addr, char **i
sync_agent_close_agent();
- if (lastSessionStatus_str != NULL)
+ if (sync_mode_str != NULL) {
+ free(sync_mode_str);
+ sync_mode_str = NULL;
+ }
+
+ if (sync_type_str != NULL) {
+ free(sync_type_str);
+ sync_type_str = NULL;
+ }
+
+ if (interval_str != NULL) {
+ free(interval_str);
+ interval_str = NULL;
+ }
+
+ if (lastSessionStatus_str != NULL) {
free(lastSessionStatus_str);
+ lastSessionStatus_str = NULL;
+ }
- if (lastSessionTime_str != NULL)
+ if (lastSessionTime_str != NULL) {
free(lastSessionTime_str);
+ lastSessionTime_str = NULL;
+ }
_EXTERN_FUNC_EXIT;
@@ -431,13 +596,15 @@ bool get_profile_data(int account_id, char **profile_name, char **addr, char **i
return true;
}
-bool get_profile_sync_category(int account_id, int content_type, int *enabled, char **src_uri, char **tgt_uri, char **id, char **password)
+bool get_profile_sync_category(int account_id, int content_type, int *enabled, int *src_uri, char **tgt_uri, char **id, char **password)
{
_EXTERN_FUNC_ENTER;
se_error_type_e err = SE_INTERNAL_OK;
char *datastore = NULL;
char *enabled_str = NULL;
+ char *src_uri_str = NULL;
+ int src_uri_value = 0;
char datastore_source[128];
char datastore_target[128];
@@ -494,7 +661,7 @@ bool get_profile_sync_category(int account_id, int content_type, int *enabled, c
if (strcmp(config_data->key, datastore_source) == 0) {
if (config_data->value != NULL) {
- *src_uri = strdup(config_data->value);
+ src_uri_str = strdup(config_data->value);
continue;
}
}
@@ -526,14 +693,26 @@ bool get_profile_sync_category(int account_id, int content_type, int *enabled, c
if (enabled_str != NULL)
*enabled = atoi(enabled_str);
+ if (src_uri_str != NULL) {
+ src_uri_value = _convert_src_uri_value(src_uri_str);
+ *src_uri = src_uri_value;
+ }
+
error:
sync_agent_free_config_list(config_list);
sync_agent_close_agent();
- if (enabled_str != NULL)
+ if (enabled_str != NULL) {
free(enabled_str);
+ enabled_str = NULL;
+ }
+
+ if (src_uri_str != NULL) {
+ free(src_uri_str);
+ src_uri_str = NULL;
+ }
_EXTERN_FUNC_EXIT;
@@ -777,6 +956,14 @@ bool get_all_profiles_data(GList ** list)
GList *free_iter = NULL;
sync_agent_ds_service_info *category_info = NULL;
+ char* sync_mode_str = NULL;
+ char* sync_type_str = NULL;
+ char* interval_str = NULL;
+ char* src_uri_str = NULL;
+ int sync_mode_value = 0;
+ int sync_type_value = 0;
+ int interval_value = 0;
+ int src_uri_value = 0;
sync_agent_da_return_e da_err = sync_agent_open_agent();
if (da_err != SYNC_AGENT_DA_SUCCESS) {
@@ -847,21 +1034,30 @@ bool get_all_profiles_data(GList ** list)
if (strcmp(config_data->key, DEFINE_CONFIG_KEY_PROFILE_SYNC_MODE) == 0) {
if (config_data->value != NULL) {
- sync_info->sync_mode = strdup(config_data->value);
+ sync_mode_str = strdup(config_data->value);
+ sync_mode_value = _convert_sync_mode_value(sync_mode_str);
+ _DEBUG_INFO("sync_mode_value: [%d]", sync_mode_value);
+ sync_info->sync_mode = sync_mode_value;
continue;
}
}
if (strcmp(config_data->key, DEFINE_CONFIG_KEY_PROFILE_CLIENT_SYNC_TYPE) == 0) {
if (config_data->value != NULL) {
- sync_info->sync_type = strdup(config_data->value);
+ sync_type_str = strdup(config_data->value);
+ sync_type_value = _convert_sync_type_value(sync_type_str);
+ _DEBUG_INFO("sync_type_value: [%d]", sync_type_value);
+ sync_info->sync_type = sync_type_value;
continue;
}
}
if (strcmp(config_data->key, DEFINE_CONFIG_KEY_PROFILE_SYNC_INTERVAL) == 0) {
if (config_data->value != NULL) {
- sync_info->interval = strdup(config_data->value);
+ interval_str = strdup(config_data->value);
+ interval_value = _convert_interval_value(interval_str);
+ _DEBUG_INFO("interval_value: [%d]", interval_value);
+ sync_info->interval =interval_value;
continue;
}
}
@@ -932,7 +1128,10 @@ bool get_all_profiles_data(GList ** list)
if (strcmp(config_data->key, datastore_source) == 0) {
if (config_data->value != NULL) {
- category_info->src_uri = strdup(config_data->value);
+ src_uri_str = strdup(config_data->value);
+ src_uri_value = _convert_src_uri_value(src_uri_str);
+ _DEBUG_INFO("src_uri_value: [%d]", src_uri_value);
+ category_info->src_uri = src_uri_value;
continue;
}
}
@@ -977,13 +1176,35 @@ bool get_all_profiles_data(GList ** list)
error:
+ if (sync_mode_str != NULL) {
+ free(sync_mode_str);
+ sync_mode_str = NULL;
+ }
+
+ if (sync_type_str != NULL) {
+ free(sync_type_str);
+ sync_type_str = NULL;
+ }
+
+ if (interval_str != NULL) {
+ free(interval_str);
+ interval_str = NULL;
+ }
+
+ if (src_uri_str != NULL) {
+ free(src_uri_str);
+ src_uri_str = NULL;
+ }
+
for (free_iter = account_list; free_iter != NULL; free_iter = g_list_next(free_iter)) {
sync_agent_ds_free_profile_info((ds_profile_h) free_iter->data);
_DEBUG_INFO("free sync_agent_ds_profile_info");
}
- if (profile_info != NULL)
+ if (profile_info != NULL) {
free(profile_info);
+ profile_info = NULL;
+ }
sync_agent_free_fw_account_list(account_info_list);
diff --git a/src/agent/service-engine/se_sync.c b/src/agent/service-engine/se_sync.c
index c946921..367b89b 100755
--- a/src/agent/service-engine/se_sync.c
+++ b/src/agent/service-engine/se_sync.c
@@ -39,6 +39,8 @@
#define LOG_TAG "OMA_DS_SE"
#endif
+static int __convert_alert_to_sync_type_value(alert_type_e sync_type);
+static int __convert_src_uri_value(char *src_uri);
static se_error_type_e _session_process(int account_id, alert_type_e server_sync_type, sync_progress_e process, sync_error_e error);
static se_error_type_e __process_update(int account_id, alert_type_e server_sync_type, sync_progress_status_e progress_status, operation_type_e operation_type, int content_type, bool is_from_server, bool need_to_save, sync_result_s * sync_result);
static se_error_type_e _write_sync_data(int account_id, alert_type_e alert_type, sync_session_result_e sync_session_result, int last_session_time, int only_from_client);
@@ -88,6 +90,64 @@ static inline long myclock()
return (tv.tv_sec * 1000 + tv.tv_usec / 1000);
}
+static int __convert_alert_to_sync_type_value(alert_type_e sync_type)
+{
+ _INNER_FUNC_ENTER;
+
+ int sync_type_value = 0;
+ _DEBUG_INFO("sync_type: [%d]", sync_type);
+
+ switch (sync_type) {
+ case ALERT_TWO_WAY:
+ sync_type_value = SYNC_TYPE_UPDATE_BOTH;
+ break;
+ case ALERT_SLOW_SYNC:
+ sync_type_value = SYNC_TYPE_FULL_SYNC;
+ break;
+ case ALERT_ONE_WAY_FROM_CLIENT:
+ sync_type_value = SYNC_TYPE_UPDATE_TO_SERVER;
+ break;
+ case ALERT_REFRESH_FROM_CLIENT:
+ sync_type_value = SYNC_TYPE_REFRESH_FROM_PHONE;
+ break;
+ case ALERT_ONE_WAY_FROM_SERVER:
+ sync_type_value = SYNC_TYPE_UPDATE_TO_PHONE;
+ break;
+ case ALERT_REFRESH_FROM_SERVER:
+ sync_type_value = SYNC_TYPE_REFRESH_FROM_SERVER;
+ break;
+ default:
+ _DEBUG_ERROR("sync_type is invalid!!");
+ break;
+ }
+
+ _INNER_FUNC_EXIT;
+ return sync_type_value;
+}
+
+static int __convert_src_uri_value(char *src_uri)
+{
+ _INNER_FUNC_ENTER;
+
+ int src_uri_value = 0;
+ _DEBUG_INFO("src_uri: [%s]", src_uri);
+
+ if (strcmp(src_uri,DEFINE_SOURCE_CONTACT_URI) == 0) {
+ src_uri_value = SRC_URI_CONTACT;
+ } else if (strcmp(src_uri,DEFINE_SOURCE_CALENDAR_URI)) {
+ src_uri_value = SRC_URI_CALENDAR;
+ } else if (strcmp(src_uri,DEFINE_SOURCE_MEMO_URI)) {
+ src_uri_value = SRC_URI_MEMO;
+ } else if (strcmp(src_uri,DEFINE_SOURCE_CALLLOG_URI)) {
+ src_uri_value = SRC_URI_CALLLOG;
+ } else {
+ _DEBUG_ERROR("src_uri is invalid!!");
+ }
+
+ _INNER_FUNC_EXIT;
+ return src_uri_value;
+}
+
static se_error_type_e _session_process(int account_id, alert_type_e server_sync_type, sync_progress_e process, sync_error_e error)
{
_INNER_FUNC_ENTER;
@@ -95,6 +155,7 @@ static se_error_type_e _session_process(int account_id, alert_type_e server_sync
char *profileDirName = NULL;
se_error_type_e err = SE_INTERNAL_OK;
bool result;
+ int sync_type_value = 0;
result = get_config(account_id, DEFINE_CONFIG_KEY_PROFILE_DIR_NAME, &profileDirName);
if (result == false) {
@@ -103,8 +164,11 @@ static se_error_type_e _session_process(int account_id, alert_type_e server_sync
goto error;
}
+ sync_type_value = __convert_alert_to_sync_type_value(server_sync_type);
+ _DEBUG_INFO("sync_type_value: [%d]", sync_type_value);
+
if (profileDirName != NULL) {
- err = session_process(profileDirName, server_sync_type, process, error);
+ err = session_process(profileDirName, sync_type_value, process, error);
if (err != SE_INTERNAL_OK) {
_DEBUG_ERROR("failed to send noti");
goto error;
@@ -112,8 +176,10 @@ static se_error_type_e _session_process(int account_id, alert_type_e server_sync
}
error:
- if (profileDirName != NULL)
+ if (profileDirName != NULL) {
free(profileDirName);
+ profileDirName = NULL;
+ }
_INNER_FUNC_EXIT;
@@ -133,6 +199,8 @@ static se_error_type_e __process_update(int account_id, alert_type_e server_sync
char *sync_type = NULL;
char *operation = NULL;
char *progress = NULL;
+ int sync_type_value = 0;
+ int uri_value = 0;
bool result;
result = get_config(account_id, DEFINE_CONFIG_KEY_PROFILE_DIR_NAME, &profileDirName);
@@ -157,6 +225,8 @@ static se_error_type_e __process_update(int account_id, alert_type_e server_sync
}
sync_type = __convert_sync_type_str(server_sync_type);
+ sync_type_value = __convert_alert_to_sync_type_value(server_sync_type);
+ _DEBUG_INFO("sync_type_value: [%d]", sync_type_value);
progress = ___convert_sync_progress_status_str(progress_status);
@@ -171,8 +241,15 @@ static se_error_type_e __process_update(int account_id, alert_type_e server_sync
if (datastoreinfo_per_content_type[content_type]->source != NULL)
uri = strdup(datastoreinfo_per_content_type[content_type]->source);
}
+ if (uri != NULL) {
+ uri_value = __convert_src_uri_value(uri);
+ _DEBUG_INFO("uri_value: [%d]", uri_value);
+ } else {
+ _DEBUG_ERROR("uri is NULL!!");
+ goto error;
+ }
- err = send_noti_process_update(profileDirName, sync_type, uri, progress, operation, is_from_server, 0, 0, sync_result->number_of_change, sync_result->add_count + sync_result->replace_count + sync_result->delete_count);
+ err = send_noti_process_update(profileDirName, sync_type_value, uri_value, progress, operation, is_from_server, 0, 0, sync_result->number_of_change, sync_result->add_count + sync_result->replace_count + sync_result->delete_count);
if (err != SE_INTERNAL_OK) {
_DEBUG_ERROR("failed in send_noti_process_update");
goto error;
@@ -965,7 +1042,7 @@ static se_error_type_e _assemble_changed_datastores(int account_id, alert_type_e
/*_DEBUG_TRACE("sync_agent_refresh_item_tbl_from_service");
sync_agent_refresh_item_tbl_from_service(account_id, datastoreinfo_per_content_type[content_type]->plugin_type);*/
- /* Delete All item (include changelog), before adapting server item data… */
+ /* Delete All item (include changelog), before adapting server item data */
_DEBUG_TRACE("sync_agent_begin_service = %d", datastoreinfo_per_content_type[content_type]->datastore_id);
sync_agent_begin_service(datastoreinfo_per_content_type[content_type]->datastore_id);
sync_agent_begin_transaction();
@@ -1072,7 +1149,16 @@ static se_error_type_e _assemble_changed_datastores(int account_id, alert_type_e
}
_DEBUG_TRACE("sync_agent_end_service = %d", datastoreinfo_per_content_type[content_type]->datastore_id);
- sync_agent_end_service(datastoreinfo_per_content_type[content_type]->datastore_id, 1);
+ da_err = sync_agent_end_service(datastoreinfo_per_content_type[content_type]->datastore_id, 1);
+ if (da_err != SYNC_AGENT_DA_SUCCESS) {
+
+ sync_agent_end_transaction(SYNC_AGENT_DA_TRANSACTION_COMMIT);
+ sync_agent_free_item_list(item_list);
+
+ _DEBUG_ERROR("failed in sync_agent_end_service !!");
+ err = SE_INTERNAL_DA_ERROR;
+ goto error;
+ }
sync_agent_end_transaction(SYNC_AGENT_DA_TRANSACTION_COMMIT);
sync_agent_free_item_list(item_list);
}
@@ -2416,6 +2502,9 @@ static char *_convert_sync_progress_str(sync_progress_e process)
case PROGRESS_DONE:
syncProcess = DEFINE_SYNC_DONE;
break;
+ case PROGRESS_CANCEL:
+ syncProcess = DEFINE_SYNC_CANCEL;
+ break;
case PROGRESS_ERROR:
syncProcess = DEFINE_SYNC_ERROR;
break;
@@ -2775,7 +2864,7 @@ bool synchronize(int account_id, char *sync_mode, san_package_s * san_package)
bool cancel_status = check_cancel_status();
if (cancel_status) {
err = SE_INTERNAL_SUSPEND;
- _DEBUG_INFO("cancle flag is on");
+ _DEBUG_INFO("cancel_status is on");
goto suspend_part;
}
} else {
@@ -2790,7 +2879,7 @@ bool synchronize(int account_id, char *sync_mode, san_package_s * san_package)
bool cancel_status = check_cancel_status();
if (cancel_status) {
err = SE_INTERNAL_SUSPEND;
- _DEBUG_INFO("cancle flag is on");
+ _DEBUG_INFO("cancel_status is on");
goto suspend_part;
}
}
@@ -2838,8 +2927,10 @@ bool synchronize(int account_id, char *sync_mode, san_package_s * san_package)
suspend_part:
errorCode = suspend_sync(TRANSPORT_TYPE, account_id, server_flag);
+
if (errorCode != COMMON_OK) {
- _DEBUG_ERROR("Failed in suspend_sync = %d", errorCode);
+ _DEBUG_ERROR("failed in suspend_sync = %d",errorCode);
+
err = SE_INTERNAL_SA_ERROR;
if (errorCode == COMMON_SUSPEND_FAIL)
_off_resume_flag(account_id);
@@ -2968,8 +3059,6 @@ void convert_common_errorcode(common_error_type_e errorCode, sync_progress_e * p
_EXTERN_FUNC_ENTER;
switch (errorCode) {
- case COMMON_CANCEL:
- case COMMON_SUSPEND_FAIL:
case COMMON_OK: /*ERROR_INTERNAL_OK */
{
/* Do nothing : Error None
@@ -2982,6 +3071,13 @@ void convert_common_errorcode(common_error_type_e errorCode, sync_progress_e * p
*error = ERROR_NONE;
}
break;
+ case COMMON_SUSPEND_FAIL:
+ case COMMON_CANCEL:
+ {
+ *process = PROGRESS_CANCEL;
+ *error = ERROR_NONE;
+ }
+ break;
case COMMON_MISCONFIGURATION: /*ERROR_INTERNAL_MISCONFIGURATION : need configure infomation (account_id, id, pw, server_url...) */
{
*process = PROGRESS_ERROR;
@@ -3046,12 +3142,15 @@ void convert_engine_errorcode(se_error_type_e err, sync_progress_e * process, sy
_EXTERN_FUNC_ENTER;
switch (err) {
- case SE_INTERNAL_SUSPEND:
- case SE_INTERNAL_CANCEL:
case SE_INTERNAL_OK:
*process = PROGRESS_DONE;
*error = ERROR_NONE;
break;
+ case SE_INTERNAL_SUSPEND:
+ case SE_INTERNAL_CANCEL:
+ *process = PROGRESS_CANCEL;
+ *error = ERROR_NONE;
+ break;
case ERROR_UNKNOWN:
case SE_INTERNAL_SA_ERROR:
case SE_INTERNAL_SCHEDULER_ERROR:
@@ -3096,8 +3195,11 @@ se_error_type_e session_process(char *profileDirName, alert_type_e server_sync_t
char *sync_type = NULL;
char *syncProcess = NULL;
char *syncError = NULL;
+ int sync_type_value = 0;
sync_type = __convert_sync_type_str(server_sync_type);
+ sync_type_value = __convert_alert_to_sync_type_value(server_sync_type);
+ _DEBUG_INFO("sync_type_value: [%d]", sync_type_value);
syncProcess = _convert_sync_progress_str(process);
@@ -3108,7 +3210,7 @@ se_error_type_e session_process(char *profileDirName, alert_type_e server_sync_t
goto error;
}
- err = send_noti_session_process(profileDirName, sync_type, syncProcess, syncError);
+ err = send_noti_session_process(profileDirName, sync_type_value, syncProcess, syncError);
if (err != SE_INTERNAL_OK) {
_DEBUG_ERROR("failed in send_noti_session_process");
goto error;
diff --git a/src/plugins/ds-public/vcard/src/plugin_interface.c b/src/plugins/ds-public/vcard/src/plugin_interface.c
index 5131f38..1f22810 100755
--- a/src/plugins/ds-public/vcard/src/plugin_interface.c
+++ b/src/plugins/ds-public/vcard/src/plugin_interface.c
@@ -749,9 +749,10 @@ static int _contacts_vcard_get_content(const char *vcard_stream, const char *con
cursor++;
}
len = cursor - found;
- if (len < buf_size)
- memcpy(value, found, len);
- else {
+ if (len < buf_size) {
+ if(value)
+ memcpy(value, found, len);
+ } else {
value = realloc(value, len + 1);
if (value) {
buf_size = len + 1;
@@ -761,13 +762,17 @@ static int _contacts_vcard_get_content(const char *vcard_stream, const char *con
continue;
}
}
- value[len] = '\0';
- if (fn)
+
+ if (value)
+ value[len] = '\0';
+
+ if (fn) {
if (fn(value + type_len + 1, data)) {
free(value);
_INNER_FUNC_EXIT;
return 0;
}
+ }
vcard_stream = found + type_len;
}
diff --git a/src/plugins/ds-public/xcalllog/src/plugin_interface.c b/src/plugins/ds-public/xcalllog/src/plugin_interface.c
index 3ba4c05..b2c6889 100755
--- a/src/plugins/ds-public/xcalllog/src/plugin_interface.c
+++ b/src/plugins/ds-public/xcalllog/src/plugin_interface.c
@@ -187,6 +187,7 @@ static sync_agent_da_return_e _get_calllog_name(int contact_id, char **name)
// } else
// name = 0;
+/*
sync_agent_da_return_e ret = SYNC_AGENT_DA_SUCCESS;
contacts_error_e err = CONTACTS_ERROR_NONE;
contacts_record_h record = NULL;
@@ -212,6 +213,103 @@ static sync_agent_da_return_e _get_calllog_name(int contact_id, char **name)
_INNER_FUNC_EXIT;
return ret;
+*/
+////////////////////////////////////////////////////////////////////////////////////
+
+ sync_agent_da_return_e ret = SYNC_AGENT_DA_SUCCESS;
+ contacts_error_e err = CONTACTS_ERROR_NONE;
+ contacts_record_h record = NULL;
+
+ contacts_query_h query = NULL;
+ contacts_filter_h filter = NULL;
+ contacts_list_h list = NULL;
+ int count = 0;
+
+ if (contact_id != 0) {
+ err = contacts_query_create(_contacts_person_phone_log._uri, &query);
+ if (err != CONTACTS_ERROR_NONE) {
+ _DEBUG_ERROR("[da_xcalllog_plugIn] contacts_query_create Fail\n");
+ ret = _convert_service_error_to_common_error(err);
+ goto GET_FINISH;
+ }
+
+ err = contacts_filter_create(_contacts_person_phone_log._uri, &filter);
+ if (err != CONTACTS_ERROR_NONE) {
+ _DEBUG_ERROR("[da_xcalllog_plugIn] contacts_filter_create Fail\n");
+ ret = _convert_service_error_to_common_error(err);
+ goto GET_FINISH;
+ }
+
+ err = contacts_filter_add_int(filter, _contacts_person_phone_log.person_id, CONTACTS_MATCH_EQUAL, contact_id /* person_id */ );
+ if (err != CONTACTS_ERROR_NONE) {
+ _DEBUG_ERROR("[da_xcalllog_plugIn] contacts_filter_set_int Fail\n");
+ ret = _convert_service_error_to_common_error(err);
+ goto GET_FINISH;
+ }
+
+ err = contacts_query_set_filter(query, filter);
+ if (err != CONTACTS_ERROR_NONE) {
+ _DEBUG_ERROR("[da_xcalllog_plugIn] contacts_query_set_filter Fail\n");
+ ret = _convert_service_error_to_common_error(err);
+ goto GET_FINISH;
+ }
+
+ err = contacts_db_get_count_with_query(query, &count);
+ if (err != CONTACTS_ERROR_NONE) {
+ _DEBUG_ERROR("[da_xcalllog_plugIn] contacts_db_get_count_with_query Fail\n");
+ ret = _convert_service_error_to_common_error(err);
+ goto GET_FINISH;
+ }
+ _DEBUG_INFO("count = %d", count);
+
+ if( count > 0 ) {
+ err = contacts_db_get_records_with_query(query, 0, 1, &list);
+ if (err == CONTACTS_ERROR_NONE) {
+ _DEBUG_INFO("[da_xcalllog_plugIn] contacts_db_get_records_with_query Success!! \n");
+
+ err = contacts_list_first(list);
+ if(err == CONTACTS_ERROR_NONE) {
+ err = contacts_list_get_current_record_p(list, &record);
+ if (err != CONTACTS_ERROR_NONE) {
+ _DEBUG_ERROR("[da_xcalllog_plugIn] contacts_list_get_current_record_p Fail\n");
+ ret = _convert_service_error_to_common_error(err);
+ goto GET_FINISH;
+ }
+
+ err = contacts_record_get_str(record, _contacts_person_phone_log.display_name, name);
+ if (err != CONTACTS_ERROR_NONE) {
+ _DEBUG_ERROR("[da_xcalllog_plugIn] contacts_record_get_str Fail\n");
+ ret = _convert_service_error_to_common_error(err);
+ goto GET_FINISH;
+ } else {
+ _DEBUG_INFO("[da_xcalllog_plugIn] contacts_record_get_str Success !! \n");
+ }
+ }
+ }
+
+ } else {
+ name = 0;
+ }
+ }
+
+ contacts_query_destroy(query);
+ contacts_filter_destroy(filter);
+ contacts_list_destroy(list, true);
+
+ _INNER_FUNC_EXIT;
+ return ret;
+
+
+ GET_FINISH:
+
+ contacts_query_destroy(query);
+ contacts_filter_destroy(filter);
+ contacts_list_destroy(list, true);
+
+ *name = 0;
+ _EXTERN_FUNC_EXIT;
+ return ret;
+
}
static char *_calllog_put_content(char *vcard_stream, char *content_type, char *content_value)