[Internal: merge oma-dm-agent]
authorJooHark Park <juhaki.park@samsung.com>
Mon, 15 Apr 2013 12:36:45 +0000 (21:36 +0900)
committerJooHark Park <juhaki.park@samsung.com>
Mon, 15 Apr 2013 12:36:45 +0000 (21:36 +0900)
=====================================
[Problem]
-
[Cause]
-
[Solution]
- merge oma-dm-agent
=====================================

Change-Id: I6f585e4b7f453077929c22fa8cbe7e752f685df2

47 files changed:
debian/changelog [changed mode: 0644->0755]
gbs_build.sh [new file with mode: 0755]
include/common/dm_common.h
include/common/dm_common_def.h
include/common/dm_error.h
include/dm-engine/dl-manager/dd_object.h
include/dm-engine/dm_common_engine.h
include/dm-engine/fumo/fumo_account.h
include/dm-engine/fumo/fumo_engine.h
include/dm-engine/lawmo/lawmo_engine.h
include/framework/platform-event-handler/dm_platform_event_handler_internal.h
include/framework/task/oma_dm_task_spec.h
include/framework/ui-event-handler/ipc_agent.h
include/framework/ui-event-handler/ipc_common.h
include/mo-handler/dm_mo_common_internal.h
oma-dm-agent.manifest
oma-dm-cfg/csc-setting/change_csc_value.sh
oma-dm-cfg/ddf/slp/slp_devdetail_ddf.xml [changed mode: 0644->0755]
oma-dm-cfg/ddf/slp/slp_devinfo_ddf.xml [changed mode: 0644->0755]
oma-dm-cfg/ddf/slp/slp_fumo_ddf.xml
oma-dm-cfg/ddf/slp/slp_gcf_dmacc_ddf_1.2.xml
oma-dm-cfg/ddf/slp/slp_lawmo_pcw_ddf.xml
oma-dm-cfg/ipc/noticonfig_omadm [changed mode: 0644->0755]
packaging/oma-dm-agent.spec
src/agent/common/dm-status/oma_dm_status_db_handler.c
src/agent/common/dm_common.c
src/agent/dm-engine/cp/dm_cp_parser.c
src/agent/dm-engine/dl-manager/dd_parser.c [changed mode: 0644->0755]
src/agent/dm-engine/dl-manager/fw_downloader.c [changed mode: 0644->0755]
src/agent/dm-engine/dl-manager/sa_fw_downloader.c
src/agent/dm-engine/dm_common_engine.c
src/agent/dm-engine/fumo/fumo_engine.c [changed mode: 0644->0755]
src/agent/framework/platform-event-handler/dm_platform_event_handler.c
src/agent/framework/task/oma_dm_task_spec.c [changed mode: 0644->0755]
src/agent/framework/ui-event-handler/ipc_agent.c
src/agent/main.c
src/agent/mo-handler/dm_mo_common.c
src/agent/mo-handler/dm_mo_handler.c
src/agent/serviceadapter/dm-phase-handler/dm_phase_handler.c
src/agent/serviceadapter/networkbinder/na_binder.c [changed mode: 0644->0755]
src/agent/serviceadapter/sa_elements.c [changed mode: 0644->0755]
src/agent/serviceadapter/sa_session.c [changed mode: 0644->0755]
src/agent/serviceadapter/sa_syncml_binders.c [changed mode: 0644->0755]
src/plugins/dm-private/dmacc-gcf/src/plugin_interface.c
src/plugins/dm-private/slp-device-dm/src/plugin_interface_devexe.c
src/plugins/dm-private/slp-device-dm/src/plugin_slp_device_ctrl.c
src/plugins/dm-private/slp-device-dm/src/plugin_slp_device_info.c

old mode 100644 (file)
new mode 100755 (executable)
index 32cd457..a1e203f
@@ -1,3 +1,565 @@
+oma-dm-agent (0.1.66) unstable; urgency=low
+
+  * [SR:oma-dm-agent_0.1.66] SR Release
+  * Vconf key added
+  * FOTA update result popup (item 6EA)
+  * Update FOTA result file path
+  * FMM get my location patch
+  * 959 error patch for FOTA
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.66
+
+ -- Junhyung Park <jruss.park@samsung.com>  Fri, 12 Apr 2013 14:30:00 +0900
+
+oma-dm-agent (0.1.65) unstable; urgency=low
+
+  * [SR:oma-dm-agent_0.1.65] SR Release
+  * FMM get my location feature added
+  * DoCheckingRooting for FOTA
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.65
+
+ -- Junhyung Park <jruss.park@samsung.com>  Fri, 5 Apr 2013 22:30:00 +0900
+
+oma-dm-agent (0.1.64) unstable; urgency=low
+
+  * [SR:oma-dm-agent_0.1.64] SR Release
+  * Prevent 26656, 26706 patch.
+  * WiFi only about big delta size, GCF setting patch.
+  * network status checking patch.
+  * IF big delta. WiFi-only download - build feature.
+  * FMM Track my mobile feature added.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.64
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 4 Apr 2013 20:21:00 +0900
+
+oma-dm-agent (0.1.63) unstable; urgency=low
+
+  * [SR:oma-dm-agent_0.1.63] SR Release
+  * DM_GENERIC_ALERT for polling & user_init patch, adding delta.tar decompress for FOTA UA.
+  * Not enough save space for delta. ( adding popup )
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.63
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Fri, 29 Mar 2013 17:50:00 +0900
+
+oma-dm-agent (0.1.62) unstable; urgency=low
+
+  * [SR:oma-dm-agent_0.1.62] SR Release
+  * FOTA Push app_id , app_sec_id , FOTA SPP_APP_ID patch.
+  * /opt/data/fota -> /opt/usr/data/fota patch.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.62
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Wed, 20 Mar 2013 19:42:00 +0900
+
+oma-dm-agent (0.1.61) unstable; urgency=low
+
+  * [SR:oma-dm-agent_0.1.61] SR Release
+  * FMM SPP APP ID applied
+  * Remove samsung-sso api
+  * Fix prevent issues (1EA)
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.61
+
+ -- Junhyung Park <jruss.park@samsung.com>  Thu, 14 Mar 2013 16:30:00 +0900
+
+oma-dm-agent (0.1.60) unstable; urgency=low
+
+  * [SR:oma-dm-agent_0.1.60] SR Release
+  * Prevent defect fixed.
+  * Ring my mobile patch
+  * FOTA APP_ID, APP_SEC_ID, SPP_APP_ID applied -> rollback. ( FOTA server side is not ready )
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.60
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 7 Mar 2013 21:47:00 +0900
+
+oma-dm-agent (0.1.59) unstable; urgency=low
+
+  * [SR:oma-dm-agent_0.1.59] SR Release
+  * FMM Track my mobile feature added
+  * FOTA polling feature added
+  * Remove libwbxml
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.59
+
+ -- Junhyung Park <jruss.park@samsung.com>  Thu, 28 Feb 2013 17:30:00 +0900
+
+oma-dm-agent (0.1.58) unstable; urgency=low
+
+  * [SR:oma-dm-agent_0.1.58] SR Release
+  * polling version.xml parsing patch.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.58
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 21 Feb 2013 17:05:00 +0900
+
+oma-dm-agent (0.1.57) unstable; urgency=low
+
+  * [SR:oma-dm-agent_0.1.57] SR Release
+  * FOTA Delta download patch
+  * FMM Call logs feature added
+  * Fix prevent issues
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.57
+
+ -- Junhyung Park <jruss.park@samsung.com>  Thu, 7 Feb 2013 20:30:00 +0900
+
+oma-dm-agent (0.1.56) unstable; urgency=low
+
+  * [SR:oma-dm-agent_0.1.56] SR Release
+  * FMM factory reset feature added
+  * Smack rule applied
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.56
+
+ -- Junhyung Park <jruss.park@samsung.com>  Tue, 5 Feb 2013 20:30:00 +0900
+
+oma-dm-agent (0.1.55) unstable; urgency=low
+
+  * 1. DB file creation is moved from post to install.
+  * 2. FMM wipe out my mobile.
+  * 3. Apply smack label to booting script.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.55
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 31 Jan 2013 19:18:00 +0900
+
+oma-dm-agent (0.1.54) unstable; urgency=low
+
+  * 1. OMA DM disclaimer.
+  * 2. FMM ring my mobile. - appsvc -> aul_launch
+  * 3. OMA DM delta download patch. - sa_fw_downloader.c
+  * 4. prevent defect patch.
+  * 5. remove sync_agent_get_event_data_param.
+  * 6. FMM Lock patch. - appsvc -> aul_launch
+  * 7. large delta download patch. - prevent rollback.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.54
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Fri, 25 Jan 2013 15:28:00 +0900
+
+oma-dm-agent (0.1.53) unstable; urgency=low
+
+  * 1. model info, multi language patch.
+  * 2. prevent defect patch.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.53
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 10 Jan 2013 17:48:00 +0900
+
+oma-dm-agent (0.1.52) unstable; urgency=low
+
+  * 1. sync_agent_deinit() implemented.
+  * 2. vconf value setting patch.
+  * 3. dlog log format unified.
+  * 4. copyright - include directory.
+  * 5. copyright - src directory.
+  * 6. source patch for rsa refactoring.
+  * 7. indent : oma-dm-agent.
+  * 8. dm bootstrap install fail patch.
+  * 9. oma-dm-agent prevent patch.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.52
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 27 Dec 2012 20:00:00 +0900
+
+oma-dm-agent (0.1.51) unstable; urgency=low
+
+  * 1. ipc refactoring - ipc refactoring branch merge to master
+  * 2. Fix prevent issue
+  * 3. License info update
+  * 4. Add gcf plugin
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.51
+
+ -- Junhyung Park <jruss.park@samsung.com>  Sat, 20 Dec 2012 22:00:00 +0900
+
+oma-dm-agent (0.1.50) unstable; urgency=low
+
+  * 1. ipc refactoring - api name patch for build.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.50
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Sat, 08 Dec 2012 11:03:00 +0900
+
+oma-dm-agent (0.1.49) unstable; urgency=low
+
+  * 1. ipc refactoring - api name patch.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.49
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 06 Dec 2012 17:00:00 +0900
+
+oma-dm-agent (0.1.48) unstable; urgency=low
+
+  * 1. ipc refactoring - api name patch.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.48
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 06 Dec 2012 16:50:00 +0900
+
+oma-dm-agent (0.1.47) unstable; urgency=low
+
+  * 1. dmacc password generation.
+  * 2. fota download flow.
+  * 3. oma dm api set.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.47
+
+ -- Junhyung Park <jruss.park@samsung.com>  Thu, 03 Dec 2012 15:19:00 +0900
+
+oma-dm-agent (0.1.46) unstable; urgency=low
+
+  * 1. _system_command patch.
+  * 2. prevent defect fix.
+  * 3. uic single/multiple choice patch.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.46
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 29 Nov 2012 21:27:04 +0900
+
+oma-dm-agent (0.1.45) unstable; urgency=low
+
+  * 1. capi-messaging-push removed.
+  * 2. GCF bug fix
+  * 3. add smack option
+  * 4. prevent defect fixed.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.45
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 22 Nov 2012 20:07:04 +0900
+
+oma-dm-agent (0.1.44) unstable; urgency=low
+
+  * 1. GCF
+  * 2. ACL
+  * 3. Prevent dbus auto activation.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.44
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 08 Nov 2012 20:20:04 +0900
+
+oma-dm-agent (0.1.43) unstable; urgency=low
+
+  * 1. gcf patch 1302, 1307
+  * 2. prevent defect fix.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.43
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 01 Nov 2012 17:47:04 +0900
+
+oma-dm-agent (0.1.42) unstable; urgency=low
+
+  * 1. gcf patch. 0701, 0501, 0502, 0503, 0601, 0901, 1307, 1308, 1401, 1501
+  * 2. default symbol visibility to hidden.
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.42
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 25 Oct 2012 19:27:04 +0900
+
+oma-dm-agent (0.1.41) unstable; urgency=low
+
+  * 1. Replace include sync-agent.h
+  * 2. Remove warning
+  * 3. Logging macro
+  * 4. User initiated for GCF
+  * 5. UIC patch for GCF
+  * 6. get mo runtime property for GCF
+  * 7. control mo runtime property
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.41
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Fri, 12 Oct 2012 16:16:04 +0900
+
+oma-dm-agent (0.1.40) unstable; urgency=low
+
+  * 1. Bug fix in manifest file
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.40
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 27 Sep 2012 16:33:04 +0900
+
+oma-dm-agent (0.1.39) unstable; urgency=low
+
+  * 1. Bug fix in manifest file
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.39
+
+ -- WooJin Yun <suhoangel9@samsung.com>  Tue, 25 Sep 2012 13:33:04 +0900
+
+oma-dm-agent (0.1.38) unstable; urgency=low
+
+  * 1. Remove daemon start in post
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.38
+
+ -- WooJin Yun <suhoangel9@samsung.com>  Mon, 24 Sep 2012 11:20:53 +0900
+
+oma-dm-agent (0.1.37) unstable; urgency=low
+
+  * 1. SMACK applied
+  * 2. preun , postun patch about spec file
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.37
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Fri, 21 Sep 2012 11:00:17 +0900
+
+oma-dm-agent (0.1.36) unstable; urgency=low
+
+  * 1. Modify check ui alert mode
+  * 2. Modify check roaming call state
+  * 3. Increase ext id in cp
+  * 4. Change network callback regarding management,  generic alert circulation
+  * 5. Code clean-up
+  * 6. Execute install / Remind interval execute install
+  * 7. Delete duplicate free_session
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.36
+
+ -- WooJin Yun <suhoangel9@samsung.com>  Thu, 13 Sep 2012 16:55:17 +0900
+
+oma-dm-agent (0.1.35) unstable; urgency=low
+
+  * 1. Apply changes due to package name change : sync-agent-framework -> sync-agent
+  * 2. g_main_loop_run( ) placed in main thread
+  * 3. Plugins moved to agent daemon
+  * 4. Add pkgname in oma-dm-agent.spec
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.35
+
+ -- WooJin Yun <suhoangel9@samsung.com>  Thu, 06 Sep 2012 21:14:41 +0900
+
+oma-dm-agent (0.1.34) unstable; urgency=low
+
+  * 1. Fix dm-agent issue
+  *    - Change wrong name
+  *    - Remove ipc sync response type
+  *    - Big size noti, memory full noti, wifi only fail noti
+  *    - Roaming, call state
+  *    - Remove alarm column in db
+  * 2. Apply Tizen Managed API changes
+  * 3. Remove warning
+  * 4. Check mo acl
+       - Check acl server command
+       - Bug fix xmlinitparser, xmlcleanupparser
+  * 5. Change include expression
+  * 6. Modify sync-agent struct, enum and define api name
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.34
+
+ -- WooJin Yun <suhoangel9@samsung.com>  Fri, 31 Aug 2012 12:27:34 +0900
+
+oma-dm-agent (0.1.33) unstable; urgency=low
+
+  * 1. Remove module name from external header file name
+  * 2. package name is changed (oma-dm-service -> oma-dm-agent)
+  * 3. Change NULL check expression
+  * 4. Change plugin lib folder path
+  * Git: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.33
+
+ -- WooJin Yun <suhoangel9@samsung.com>  Thu, 23 Aug 2012 14:19:25 +0900
+
+oma-dm-agent (0.1.32) 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: framework/system/oma-dm-agent
+  * Tag: oma-dm-agent_0.1.32
+
+ -- WooJin Yun <suhoangel9@samsung.com>  Fri, 17 Aug 2012 11:26:08 +0900
+
+oma-dm-service (0.1.31) unstable; urgency=low
+
+  * Directory restructuring applied
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.31
+
+ -- WooJin Yun <suhoangel9@samsung.com>  Tue, 07 Aug 2012 20:40:55 +0900
+
+oma-dm-service (0.1.30) unstable; urgency=low
+
+  * local test done. pkg upload. doxygen , maintainer , system function
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.30
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Wed, 18 Jul 2012 18:28:56 +0900
+
+oma-dm-service (0.1.29) unstable; urgency=low
+
+  * pkg upload.
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.29
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Tue, 10 Jul 2012 10:28:56 +0900
+
+oma-dm-service (0.1.28) unstable; urgency=low
+
+  * filename update, secure coding, user initiate, changelog & spec file update.
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.28
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Wed, 04 Jul 2012 15:48:56 +0900
+
+oma-dm-service (0.1.27) unstable; urgency=low
+
+  * sh file permission update, dm bootstrap.
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.27
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Wed, 27 Jun 2012 17:48:56 +0900
+
+oma-dm-service (0.1.26) unstable; urgency=low
+
+  * fota ux1.2 - 10page remind interval update.
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.26
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Tue, 26 Jun 2012 13:48:56 +0900
+
+oma-dm-service (0.1.25) unstable; urgency=low
+
+  * fota download bug fix & spec , changelog update.
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.25
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Mon, 25 Jun 2012 14:48:56 +0900
+
+oma-dm-service (0.1.24) unstable; urgency=low
+
+  * fota directory changing.
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.24
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Fri, 15 Jun 2012 15:28:56 +0900
+
+oma-dm-service (0.1.20) unstable; urgency=low
+
+  * pkg upload
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.20
+
+ -- Sunbong Ha <sunbong.ha@samsung.com>  Tue, 12 Jun 2012 17:28:56 +0900
+
+oma-dm-service (0.1.19) unstable; urgency=low
+
+  * vconf-key update -  pkg upload
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.19
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Thu, 24 May 2012 19:35:33 +0900
+
+oma-dm-service (0.1.18) unstable; urgency=low
+
+  * pkg upload
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.18
+
+ -- Juhaki Park <juhaki.park@samsung.com>  Mon, 21 May 2012 17:55:33 +0900
+
+oma-dm-service (0.1.17) unstable; urgency=low
+
+  * 1. bug fixed admin set reset db_open
+  * 2. implement uic module
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.17
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com>  Wed, 09 May 2012 13:35:33 +0900
+
+oma-dm-service (0.1.16) unstable; urgency=low
+
+  * 1. bug fixed hmac , replace acl property 
+  * 2. bug fixed get acl property
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.16
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com>  Thu, 26 Apr 2012 15:56:27 +0900
+
+oma-dm-service (0.1.15) unstable; urgency=low
+
+  * bug fixed oma dm admin ui 
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.15
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com>  Tue, 17 Apr 2012 20:54:34 +0900
+
+oma-dm-service (0.1.14) unstable; urgency=low
+
+  * pkg upload for sync-agent-framework upload
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.14
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com>  Mon, 09 Apr 2012 14:55:56 +0900
+
+oma-dm-service (0.1.13) unstable; urgency=low
+
+  * pkg upload
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.13
+
+ -- Joohark Park <juhaki.park@samsung.com>  Tue, 03 Apr 2012 14:18:47 +0900
+
+oma-dm-service (0.1.12) unstable; urgency=low
+
+  * pkg upload
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.12
+
+ -- Juhak Park <juhaki.park@samsung.com>  Tue, 03 Apr 2012 12:18:47 +0900
+
+oma-dm-service (0.1.11) unstable; urgency=low
+
+  * pkg upload for sync-agent-framework
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.11
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com>  Thu, 29 Mar 2012 13:25:47 +0900
+
+oma-dm-service (0.1.10) unstable; urgency=low
+
+  * add alarm & fota register 
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.10
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com>  Thu, 22 Mar 2012 19:49:20 +0900
+
+oma-dm-service (0.1.9) unstable; urgency=low
+
+  * bug fixed & pkg upload
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.9
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com>  Wed, 21 Mar 2012 16:33:11 +0900
+
+oma-dm-service (0.1.8) unstable; urgency=low
+
+  * pkg upload for sync-agent-fw pkg upload
+  * Git: slp/pkgs/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.8
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com>  Thu, 15 Mar 2012 17:07:40 +0900
+
+oma-dm-service (0.1.7) unstable; urgency=low
+
+  * crash fixed 
+  * Git: slp/apps/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.7
+
+ -- leejunhyuk <junhyuk7.lee@samsung.com>  Fri, 09 Mar 2012 17:51:21 +0900
+
+oma-dm-service (0.1.6) unstable; urgency=low
+
+  * spp module bug fixed & pkg upload 
+  * Git: slp/apps/o/oma-dm-service
+  * Tag: oma-dm-service_0.1.6
+
+ -- Junhyuk Lee <junhyuk7.lee@samsung.com>  Thu, 08 Mar 2012 11:29:39 +0900
+
 oma-dm-agent (0.1.5) unstable; urgency=low
 
   * [SR : oma-dm-agent_0.1.5] SR Release
diff --git a/gbs_build.sh b/gbs_build.sh
new file mode 100755 (executable)
index 0000000..516e1ea
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+#sdb -d shell rm /root/app/*.rpm
+
+rm -rf /home/juhaki/gbs-build-pkg/*.rpm
+
+gbs -d -v build -A armv7l --include-all
+
+cp -rf /home/juhaki/GBS-ROOT/local/scratch.armv7l.0/.build.packages/RPMS/armv7l/*.rpm /home/juhaki/gbs-build-pkg/
+
+#sdb -d push /home/juhaki/gbs-build-pkg /root/app/
+
+#sdb -d shell change-booting-mode.sh --update
+
+#sdb -d shell rpm -Uvh  --force --nodeps /root/*.rpm
+
+
index 56ef319..51fec66 100755 (executable)
@@ -388,6 +388,92 @@ DM_ERROR set_account_registration_alarm(char *alarm_str, CONFIG_TYPE alarm_type)
 void delete_account_registration_alarm(char *alarm_str, CONFIG_TYPE alarm_type);
 
 /**
+ *@par Description: API to set fota polling registration alarm
+ *
+ *
+ * @par Purpose:
+ * @par Typical use case:
+ * @par par Method of function operation:
+ * @par Important notes:
+ * @param[in]          polling period (period day)
+ * @param[in]          polling start hour (0~23)
+ * @param[in]          polling range hour (1~24)
+ * @param[in]          alarm type string(fumo, fmm)
+ * @param[in]          alarm type(fumo, fmm)
+ *
+ * @return             DM_OK   on success
+ *                                     DM_ERROR  on error
+ *
+ * @par Errors:
+ *
+ * @pre None.
+ * @post
+ * @see
+ * @remarks None.
+ *
+ * @par Sample Code:
+ * @code
+ * @endcode
+ */
+DM_ERROR set_polling_registration_alarm(int poll_period, int poll_time, int poll_range, char *alarm_str, CONFIG_TYPE alarm_type);
+
+/**
+ * @par Description: API to delete fota polling registration alarm
+ *
+ *
+ * @par Purpose:
+ * @par Typical use case:
+ * @par par Method of function operation:
+ * @par Important notes:
+ * @param[in]          alarm type string
+ * @param[in]          alarm type
+ *
+ * @return
+ *
+ * @par Errors:
+ *
+ * @pre None.
+ * @post
+ * @see
+ * @remarks None.
+ *
+ * @par Sample Code:
+ * @code
+ * @endcode
+ */
+void delete_polling_registration_alarm(char *alarm_str, CONFIG_TYPE alarm_type);
+
+/**
+ * @par Description: API to set alarm schedule
+ *
+ *
+ * @par Purpose:
+ * @par Typical use case:
+ * @par par Method of function operation:
+ * @par Important notes:
+ * @param[in]          polling period (period day)
+ * @param[in]          polling start hour (0~23)
+ * @param[in]          polling range hour (1~24)
+ * @param[in]          alarm type
+ * @param[in]          config type
+ *
+ * @return             DM_OK   on success
+ *                                     DM_ERROR  on error
+ *
+ * @par Errors:
+ *
+ * @pre None.
+ * @post
+ * @see
+ * @remarks None.
+ *
+ * @par Sample Code:
+ * @code
+ * @endcode
+ */
+DM_ERROR add_polling_alarm_item(int poll_period, int poll_time, int poll_range, char *alarm_type, CONFIG_TYPE conf_type);
+
+/**
  * @par Description: API to set alarm schedule
  *
  *
@@ -868,6 +954,31 @@ DM_ERROR compare_memory_space(char *memory_type, long double file_size);
 void get_roaming_state(int *roaming_state);
 
 /**
+ * @par Description: API to get roaming state
+ *
+ *
+ * @par Purpose:
+ * @par Typical use case:
+ * @par par Method of function operation:
+ * @par Important notes:
+ * @param[in]          wifi_state
+ *
+ * @return
+ *
+ * @par Errors:
+ *
+ * @pre None.
+ * @post
+ * @see
+ * @remarks None.
+ *
+ * @par Sample Code:
+ * @code
+ * @endcode
+ */
+void get_wifi_connected_state(int *wifi_state);
+
+/**
  * @par Description: API to get call state
  *
  *
@@ -1072,4 +1183,92 @@ int get_default_noti_type(char *ui_mode, NotI_Type noti_type);
  */
 char *get_new_uri(char *old_object_uri);
 
+/**
+ *@par Description: API to set FMM Mobile tracking alarm
+ *
+ *
+ * @par Purpose:
+ * @par Typical use case:
+ * @par par Method of function operation:
+ * @par Important notes:
+ * @param[in]          polling period (period day)
+ * @param[in]          polling start hour (0~23)
+ * @param[in]          polling range hour (1~24)
+ * @param[in]          alarm type string(fumo, fmm)
+ * @param[in]          alarm type(fumo, fmm)
+ *
+ * @return             DM_OK   on success
+ *                                     DM_ERROR  on error
+ *
+ * @par Errors:
+ *
+ * @pre None.
+ * @post
+ * @see
+ * @remarks None.
+ *
+ * @par Sample Code:
+ * @code
+ * @endcode
+ */
+DM_ERROR set_lawmo_mobile_tracking_start_alarm(int poll_period, int poll_time, int poll_range, char *alarm_str, CONFIG_TYPE alarm_type);
+
+/**
+ * @par Description: API to delete FMM Mobile tracking alarm
+ *
+ *
+ * @par Purpose:
+ * @par Typical use case:
+ * @par par Method of function operation:
+ * @par Important notes:
+ * @param[in]          alarm type string
+ * @param[in]          alarm type
+ *
+ * @return
+ *
+ * @par Errors:
+ *
+ * @pre None.
+ * @post
+ * @see
+ * @remarks None.
+ *
+ * @par Sample Code:
+ * @code
+ * @endcode
+ */
+void delete_lawmo_mobile_tracking_alarm(char *alarm_str, CONFIG_TYPE alarm_type);
+
+/**
+ * @par Description: API to set FMM Mobile tracking alarm item
+ *
+ *
+ * @par Purpose:
+ * @par Typical use case:
+ * @par par Method of function operation:
+ * @par Important notes:
+ * @param[in]          polling period (period day)
+ * @param[in]          polling start hour (0~23)
+ * @param[in]          polling range hour (1~24)
+ * @param[in]          alarm type
+ * @param[in]          config type
+ *
+ * @return             DM_OK   on success
+ *                                     DM_ERROR  on error
+ *
+ * @par Errors:
+ *
+ * @pre None.
+ * @post
+ * @see
+ * @remarks None.
+ *
+ * @par Sample Code:
+ * @code
+ * @endcode
+ */
+DM_ERROR add_lawmo_mobile_tracking_alarm_item(int poll_period, int poll_time, int poll_range, char *alarm_type, CONFIG_TYPE conf_type);
+
+
+
 #endif                         /* OMA_DM_COMMON_H_ */
index dcd0fff..a7fd4fa 100755 (executable)
@@ -57,7 +57,7 @@
 /*for slp  fota*/
 
 /*
-#define OMA_DM_FUMO_APPID "bc2d5906ebefbb66"
+#define OMA_DM_FUMO_APPID "xxxxxxxxxx"
 #define OMA_DM_FUMO_APPSECRETID "rLIrPQYjzNOgkSU6gQME+b2J8Ro="
 
 #define OMA_DM_LAWMO_APPID "ed7b8510eb22050e"
 #define LAWMO_ACCOUNT_FLAG "lawmo_account_flag"
 #define LAWMO_ACCOUNT_ALARM "lawmo_account_alarm"
 
+#define FOTA_POLLING_ALARM "fumo_polling_alarm"
+#define LAWMO_TRACKING_START_ALARM "lawmo_tracking_start_alarm"
+
 #define IPC_DS                                                                                                         "/tmp/agent_fw_event_omads"
 #define FOTA_DELTA_INTERNAL_STORAGE                            "/opt/data/fota"
 #define FOTA_DELTA_SD_INTERNAL_STORAGE                 "/opt/media"
@@ -130,7 +133,9 @@ typedef enum {
        FUMO_ACCOUNT_FLAG_TYPE = 2,
        FUMO_ACCOUNT_ALARM_TYPE = 3,    //alarm
        LAWMO_ACCOUNT_FLAG_TYPE = 4,
-       LAWMO_ACCOUNT_ALARM_TYPE = 5    //alarm
+       LAWMO_ACCOUNT_ALARM_TYPE = 5,   //alarm
+       FOTA_POLLING_ALARM_TYPE = 6,
+       LAWMO_TRACKING_START_ALARM_TYPE = 7
 } CONFIG_TYPE;
 
 /*
index 109e6ce..c359e26 100755 (executable)
@@ -141,6 +141,9 @@ typedef enum {
        DM_ERR_FOTA_ACCOUNT_REGISTRATION = 1335,
        DM_ERR_LAWMO_ACCOUNT_REGISTRATION = 1336,
 
+       /*fota polling */
+       DM_ERR_FOTA_POLL = 1350,
+
        /*cp */
        DM_ERR_EVENT_DS = 1400,
 
index 6564e77..503ba1c 100755 (executable)
@@ -45,7 +45,7 @@ typedef struct {
        char *icon_uri;
        char *object_vender;
        char *DD_version;
-       char *install_param;
+       char *install_param;    /* ex) binaryType=FULL displayLanguage=kor-KR */
        char *medea_object;
 
 } Download_Descriptor;
index 0a8f0a1..1809c4c 100755 (executable)
@@ -26,6 +26,9 @@
 #include "framework/platform-event-handler/dm_platform_event_handler_internal.h"
 #include "framework/platform-event-handler/dm_platform_event_handler.h"
 
+//#include "serviceadapter/sa_define.h"
+#include "serviceadapter/sa_elements_internal.h"
+
 #define CHECK_OPERATION                         1
 #define NON_CHECK_OPERATION     0
 
@@ -111,6 +114,35 @@ void init_Dm_Engine();
 DM_ERROR engine_start(char *server_id, char *full_path, char *correlator, ENGINE_ID * service_engine_id, int *resultCode);
 
 /**
+ * @par Description: API to engine Start about MO replace command.
+ *
+ *
+ * @par Purpose:
+ * @par Typical use case:
+ * @par Method of function operation:
+ * @par Important notes:
+ * @param[in]  server id                                               server id
+ * @param[in]  full_path                                               full path
+ * @param[in]  resultCode                                              resultCode
+ * @param[in]  item                                                            item
+ *
+ * @return                     DM_OK                                                   success
+ *                                     DM_ERRORS                                       fail
+ *
+ * @par Errors:
+ *
+ * @pre None.
+ * @post
+ * @see
+ * @remarks None.
+ *
+ * @par Sample Code:
+ * @code
+ * @endcode
+ */
+DM_ERROR engine_replace_start(char *server_id, char *full_path, ENGINE_ID * service_engine_id, int *resultCode, Item * item);
+
+/**
  * @par Description: API to service_engine_Start
  *
  *
index 17ccf9c..b7d6956 100755 (executable)
@@ -24,6 +24,9 @@
 #ifndef FOTA_ACCOUNT_H_
 #define FOTA_ACCOUNT_H_
 
+#define VERSION_URL_KEY "db/SyncML/oma-dm-service/versionurl"
+#define VERSION_FILENAME_KEY "db/SyncML/oma-dm-service/versionfilename"
+
 /*dm-agent*/
 #include "common/dm_error.h"
 
@@ -54,4 +57,6 @@
  */
 int register_fota_account();
 
+int register_fota_polling(char *str_url, char *file_name, int *exist_version);
+
 #endif                         /* FOTA_ACCOUNT_H_ */
index 147d5d9..f1f2f9b 100755 (executable)
 DM_ERROR fumo_exec(char *full_path, char *value, FUMO_Error * fumo_return);
 
 /**
+ * @par Description: API to execute fumo operation about fumo MO replace cmd.
+ *
+ *
+ * @par Purpose:
+ * @par Typical use case:
+ * @par Method of function operation:
+ * @par Important notes:
+ * @param[in]  full_path                                       mo full path
+ * @param[in]  value                                                   value
+ * @param[out] fumo_return                             fumo return value
+ *
+ * @return             DM_OK                                                   success
+ *                                     DM_ERRORS                                       fail
+ *
+ * @par Errors:
+ *
+ * @pre None.
+ * @post
+ * @see
+ * @remarks None.
+ *
+ * @par Sample Code:
+ * @code
+ * @endcode
+ */
+DM_ERROR fumo_replace(char *full_path, char *value, FUMO_Error * fumo_return);
+
+/**
  * @par Description: API to operate firmware download
  *
  *
index b411985..543b5e6 100755 (executable)
 DM_ERROR lawmo_exec(char *full_path, char *correlator, LAWMO_Result_code * lawmo_return, int check_operation);
 
 /**
+ * @par Description: API to execute lawmo operation for lawmo MO replace cmd.
+ *
+ *
+ * @par Purpose:
+ * @par Typical use case:
+ * @par Method of function operation:
+ * @par Important notes:
+ * @param[in]  full_path                                       mo full path
+ * @param[in]  value                                                   value
+ * @param[in]  check operation                 check operation
+ *
+ * @return                     DM_OK                                                   success
+ *                                     DM_ERRORS                                       fail
+ *
+ * @par Errors:
+ *
+ * @pre None.
+ * @post
+ * @see
+ * @remarks None.
+ *
+ * @par Sample Code:
+ * @code
+ * @endcode
+ */
+DM_ERROR lawmo_replace(char *full_path, char *value, LAWMO_Result_code * lawmo_return, int check_operation);
+
+/**
  * @par Description: API to execute lawmo operation
  *
  *
index d0e79ff..d1bbf4b 100755 (executable)
@@ -22,14 +22,16 @@ typedef enum {
        IP_PUSH_EVENT = 0,
        WAP_PUSH_EVENT,
        UI_EVENT,
-       SERVER_BOOTSTRAP_EVENT
+       SERVER_BOOTSTRAP_EVENT,
+       POLL_EVENT
 } Event_Type;
 
 typedef enum {
        NOTI_TYPE_NOT_SPECIFIED = 0,
        NOTI_TYPE_BACKGRUOUND,
        NOTI_TYPE_INFOMATIVE,
-       NOTI_TYPE_USERINTERACTION
+       NOTI_TYPE_USERINTERACTION,
+       NOTI_TYPE_POLLINTERACTION
 } NotI_Type;
 
 typedef struct {
index cd4562b..9311fac 100755 (executable)
 #define EC_MSG_TYPE_BOOTSTRAP_TASK_REQUEST                                                                             3
 #define EC_MSG_TYPE_NAME_BOOTSTRAP_TASK_REQUEST                                                                "dm_bootstrap"
 
-#define EC_MSG_TYPE_DM_FUMO_COMMON_TASK_REQUEST                                                4
-#define EC_MSG_TYPE_NAME_DM_FUMO_COMMON_TASK_REQUEST                           "dm_    fumo_common"
+#define EC_MSG_TYPE_DM_FUMO_COMMON_TASK_REQUEST                                                                4
+#define EC_MSG_TYPE_NAME_DM_FUMO_COMMON_TASK_REQUEST                                           "dm_fumo_common"
 
-#define EC_MSG_TYPE_DM_FUMO_UI_TASK_REQUEST                                                                    5
-#define EC_MSG_TYPE_NAME_DM_FUMO_UI_TASK_REQUEST                                                       "dm_    fumo_ui"
+#define EC_MSG_TYPE_DM_FUMO_UI_TASK_REQUEST                                                                            5
+#define EC_MSG_TYPE_NAME_DM_FUMO_UI_TASK_REQUEST                                                       "dm_fumo_ui"
 
 #define EC_MSG_TYPE_DM_LAWMO_COMMON_TASK_REQUEST                                               6
 #define EC_MSG_TYPE_NAME_DM_LAWMO_COMMON_TASK_REQUEST                          "dm_lawmo_common"
index 5f155b2..ab3ba5d 100755 (executable)
@@ -82,6 +82,7 @@ int noti_start(char *ui_mode);
  * @par Typical use case:
  * @par Method of function operation:
  * @par Important notes:
+ * @param[in]  int type, file size
  *
  * @return                     RESPONSE_TYPE_OK                                                                                                                                                                                                success
                                                RESPONSE_TYPE_NONE , RESPONSE_TYPE_CANCEL, RESPONSE_TYPE_TIMEOVER               fail
@@ -98,7 +99,7 @@ int noti_start(char *ui_mode);
  * @code
  * @endcode
  */
-int noti_download();
+int noti_download(int file_size);
 
 /**
  * @par Description: API to noti install
@@ -182,6 +183,33 @@ int noti_send_download_info(int filesize, char *path);
 int noti_low_battery(char *battery_level);
 
 /**
+ * @par Description: API to noti firmware update result.
+ *
+ *
+ * @par Purpose:
+ * @par Typical use case:
+ * @par Method of function operation:
+ * @par Important notes:
+ * @param[in]  int type, file size
+ *
+ * @return                     RESPONSE_TYPE_OK                                                                                                                                                                                                success
+                                               RESPONSE_TYPE_NONE , RESPONSE_TYPE_CANCEL, RESPONSE_TYPE_TIMEOVER               fail
+ *
+ *
+ * @par Errors:
+ *
+ * @pre None.
+ * @post
+ * @see
+ * @remarks None.
+ *
+ * @par Sample Code:
+ * @code
+ * @endcode
+ */
+int noti_update_result(int result);
+
+/**
  * @par Description: API to alert uic display
  *
  *
@@ -405,6 +433,7 @@ int noti_memory_full(int file_size);
  * @par Typical use case:
  * @par Method of function operation:
  * @par Important notes:
+ * @param[in]  int type, file size
  *
  * @return                     RESPONSE_TYPE_OK                                                                                                                                                                                                success
                                                RESPONSE_TYPE_NONE , RESPONSE_TYPE_CANCEL, RESPONSE_TYPE_TIMEOVER               fail
@@ -421,6 +450,6 @@ int noti_memory_full(int file_size);
  * @code
  * @endcode
  */
-int noti_over_max_file_size();
+int noti_over_max_file_size(int file_size);
 
 #endif                         /* IPC_AGENT_H_ */
index 55e37fd..ecec8dd 100755 (executable)
@@ -50,23 +50,25 @@ typedef enum {
 
 typedef enum {
        NOTI_UNKNOWN = 0,
-       NOTI_DOWNLOAD = 1,      // Type 0
-       NOTI_INSTALL,           // Type 0
-       NOTI_DOWNLOAD_INFO,     // Type 0
-
-       NOTI_ENGINE_START = 4,  // Type 0
-       NOTI_ENGINE_FAIL,       // Type 0
-       NOTI_WIFI_ONLY_DOWNLOAD_FAIL,   // Type 0
-       NOTI_MEMORY_FULL,       // Type 0
-       NOTI_OVER_BIG_SIZE,     // Type 0
-       NOTI_LOW_BATTERY,       // Type 0
-
-       NOTI_ALERT_DISPLAY = 10,        // Type 0, response event
-       NOTI_ALERT_CONFIRMATION,        // Type 0, response event
-       NOTI_ALERT_INPUTTEXT,   // Type 0, response event
-       NOTI_ALERT_SINGLE_CHOICE,       // Type 0, response event
-       NOTI_ALERT_MULTIPLE_CHOICE,     // Type 0, response event
-
+       NOTI_DOWNLOAD = 1,                              // Type 0
+       NOTI_INSTALL,                      // Type 0
+       NOTI_DOWNLOAD_INFO,                // Type 0
+
+       NOTI_ENGINE_START = 4,                          // Type 0
+       NOTI_ENGINE_FAIL,                                               // Type 0
+       NOTI_WIFI_ONLY_DOWNLOAD_FAIL,           // Type 0
+       NOTI_MEMORY_FULL,                                               // Type 0
+       NOTI_OVER_BIG_SIZE,                                     // Type 0
+       NOTI_LOW_BATTERY,                                               // Type 0
+
+       NOTI_ALERT_DISPLAY = 10,                                // Type 0, response event
+       NOTI_ALERT_CONFIRMATION,                                // Type 0, response event
+       NOTI_ALERT_INPUTTEXT,                           // Type 0, response event
+       NOTI_ALERT_SINGLE_CHOICE,                       // Type 0, response event
+       NOTI_ALERT_MULTIPLE_CHOICE,                     // Type 0, response event
+
+       NOTI_POLL_INTERACTION = 15,
+       NOTI_UPDATE_RESULT,                                     // Type 0
        NOTI_NUM
 } NOTI_ID;
 
@@ -75,7 +77,8 @@ typedef enum {
        PUSH_NOT_SPECIFIED = 0,
        PUSH_BACKGROUND,
        PUSH_INFORMATIVE,
-       PUSH_INTERACTION
+       PUSH_INTERACTION,
+       POLL_INTERACTION
 } PUSH_TYPE;
 
 typedef enum {
index 7f4d835..2492ad1 100755 (executable)
@@ -33,6 +33,8 @@
 
 #define DM_DEVINFO                                                                                                     "./DevInfo"
 #define DM_DEVDETAIL                                                                                                   "./DevDetail"
+#define DM_DEVDETAIL_FWV                                                                                       "./DevDetail/FwV"
+
 #define DM_DMACC_MSCSERVER                                                                                     "./DMAcc/MSCserver"
 #define DM_DMACC_MSCTESTSERVER                                                                         "./DMAcc/MSCTestserver"
 #define DM_DMACC_GCF                                                                                           "./DMAcc/gcf"
@@ -46,6 +48,8 @@
 #define DM_FUMO_STATE_OP                                                                                               "/State"
 #define DM_FUMO_EXT_OP                                                                                         "/Ext"
 
+#define DM_FUMO_EXT_OP_DOCHECKINGROOTING                                               "/Ext/DoCheckingRooting"
+
 #define DM_LAWMO_STATE_OP                                                                                                      "/State"
 #define DM_LAWMO_AVAILABLEWIPELIST_LISTITEMNAME                                "/AvailableWipeList/omadm/ListItemName"
 #define DM_LAWMO_AVAILABLEWIPELIST_TOBEWIPED                                   "/AvailableWipeList/omadm/ToBeWipe"
@@ -175,6 +179,8 @@ typedef struct _dm_acc {
 #define DM_FUMO_STATE                                                                                                          "./FUMO/State"
 #define DM_FUMO_EXT                                                                                                                    "./FUMO/Ext"
 
+#define DM_FUMO_EXT_DO_CHECKING_ROOTING                                "./FUMO/Ext/DoCheckingRooting"
+
 #define DM_LAWMO                                                                                                                               "./LAWMO"
 #define DM_LAWMO_STATE                                                                                                 "./LAWMO/State"
 #define DM_LAWMO_AVAILABLEWIPELIST                                                                     "./LAWMO/AvailableWipeList"
index cc890d2..8902f0e 100755 (executable)
                <filesystem path="/usr/share/oma_dm_cfg/ddf/slp_mscserver_dmacc_ddf.txt" label="oma-dm-agent::ddf"/>
                <filesystem path="/usr/share/oma_dm_cfg/ddf/slp_msctestserver_dmacc_ddf.txt" label="oma-dm-agent::ddf"/>
                <filesystem path="/usr/share/oma_dm_cfg/ddf/slp_ddfs.txt" label="oma-dm-agent::ddf"/>
+               <filesystem path="/opt/dbspace/.dm_service.db" label="oma-dm-agent::db"/>
+               <filesystem path="/opt/dbspace/.dm_service.db-journal" label="oma-dm-agent::db"/>
+               <filesystem path="/opt/dbspace/.omadmagent.db" label="oma-dm-agent::db"/>
+               <filesystem path="/opt/dbspace/.omadmagent.db-journal" label="oma-dm-agent::db"/>
+               <filesystem path="/opt/dbspace/.momanager.db" label="oma-dm-agent::db"/>
+               <filesystem path="/opt/dbspace/.momanager.db-journal" label="oma-dm-agent::db"/>
+               <filesystem path="/etc/rc.d/rc3.d/S91oma-dm-agent" label="_" exec_label="none"/>
+               <filesystem path="/etc/rc.d/rc5.d/S91oma-dm-agent" label="_" exec_label="none"/>
+               <filesystem path="/etc/init.d/oma-dm" label="_" exec_label="none"/>
        </assign>
        <request>
                <domain name="oma-dm-agent" />
index 7ae0391..074ec02 100755 (executable)
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+vconftool set -t string -f db/SyncML/oma-dm-service/DevManagement/ConfVersion "0.1"
 
 vconftool set -t int -f db/SyncML/oma-dm-service/DevManagement/NbDevManagement 1
 
@@ -14,3 +15,7 @@ vconftool set -t string -f db/SyncML/oma-dm-service/DevManagement/1/ClientNonce
 vconftool set -t int   -f db/SyncML/oma-dm-service/DevManagement/1/AuthType 1
 vconftool set -t int   -f db/SyncML/oma-dm-service/DevManagement/1/Port 80
 
+vconftool set -t string -f db/SyncML/oma-dm-service/DevManagement/1/UserName "RSuser"
+vconftool set -t string -f db/SyncML/oma-dm-service/DevManagement/1/ClientPwd "RSpass"
+
+
old mode 100644 (file)
new mode 100755 (executable)
index 293fd19..e448d90
@@ -3,7 +3,7 @@
 <MgmtTree>\r
        <VerDTD>1.2</VerDTD>\r
        <Man>Samsung Electronics</Man>\r
-       <Mod>GT-I9500</Mod>\r
+       <Mod>GT-I8800</Mod>\r
        <Node>\r
                <NodeName>DevDetail</NodeName>\r
                <!--The '.' shows that this node is located immediately under the root.-->\r
old mode 100644 (file)
new mode 100755 (executable)
index c9e0015..21d8c2a
@@ -3,7 +3,7 @@
 <MgmtTree>\r
        <VerDTD>1.2</VerDTD>\r
        <Man>Samsung Electronics</Man>\r
-       <Mod>GT-I9500</Mod>\r
+       <Mod>GT-I8800</Mod>\r
        <Node>\r
                <NodeName>DevInfo</NodeName>\r
                <!--The '.' shows that this node is located immediately under the root.-->\r
index 71d6857..757276a 100755 (executable)
@@ -3,7 +3,7 @@
 <MgmtTree> \r
        <VerDTD>1.2</VerDTD>\r
        <Man>Samsung Electronics</Man>\r
-       <Mod>GT-I9500</Mod>\r
+       <Mod>GT-I8800</Mod>\r
        <Node>\r
                <NodeName>FUMO</NodeName>\r
                <!--The node is located in a location specified below in the Path element -->\r
                                </DFType>\r
                                </DFProperties>\r
                        </Node>\r
+                       <Node>\r
+                               <NodeName>DoCheckingRooting</NodeName>\r
+                               <!--This node is used for Vendor specific extensions -->\r
+                               <DFProperties>\r
+                                       <AccessType>\r
+                                               <Get/><Replace/>\r
+                                       </AccessType>\r
+                               <DFFormat>\r
+                                       <chr/>\r
+                               </DFFormat>\r
+                               <Occurrence>\r
+                                       <ZeroOrMore/>\r
+                               </Occurrence>\r
+                               <Scope>\r
+                                       <Permanent/>\r
+                               </Scope>\r
+                               <DFTitle>A node that can be used to provide vendor-specific extensions </DFTitle>\r
+                               <DFType>\r
+                                       <MIME>text/plain</MIME>\r
+                               </DFType>\r
+                               </DFProperties>\r
+                       </Node>\r
                </Node>\r
        </Node>\r
 </MgmtTree> \r
index 5679736..9eee832 100755 (executable)
@@ -3,7 +3,7 @@
 <MgmtTree>\r
        <VerDTD>1.2</VerDTD>\r
        <Man>Samsung Electronics</Man>\r
-       <Mod>GT-I9500</Mod>\r
+       <Mod>GT-I8800</Mod>\r
        <Node>\r
                <NodeName>DMAcc</NodeName>\r
                <!--The Path element must be used here so that the SyncML management object can be correctly positioned in the management tree.-->\r
index b2b38db..3d6f7ac 100755 (executable)
@@ -3,7 +3,7 @@
 <MgmtTree> 
            <VerDTD>1.2</VerDTD>
            <Man>Samsung Electronics</Man>
-           <Mod>GT-I9500</Mod>
+           <Mod>GT-I8800</Mod>
            <Node>
                         <NodeName>Ext</NodeName>
                         <!--The node is located in a location specified below in the Path element -->
old mode 100644 (file)
new mode 100755 (executable)
index e18abf2..6c8ed95
@@ -11,4 +11,5 @@
 11, 0, 3, 30, NOTI_ALERT_CONFIRMATION
 12, 0, 3, 30, NOTI_ALERT_INPUTEXT
 13, 0, 3, 30, NOTI_ALERT_SINGLE_CHOICE
-14, 0, 3, 30, NOTI_ALERT_MULTIPLE_CHOICE
\ No newline at end of file
+14, 0, 3, 30, NOTI_ALERT_MULTIPLE_CHOICE15, 0, 0, 30, NOTI_POLL_INTERACTION
+16, 0, 0, 30, NOTI_UPDATE_RESULT
index b23b35b..b1c078c 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       oma-dm-agent
 Summary:    oma-dm-agent daemon for FOTA,DM,CP,FMM Service
-Version:    0.1.5
+Version:    0.1.66
 Release:    1
 Group:      TO_BE/FILLED_IN
 License:    Apache License, Version 2.0 
@@ -66,6 +66,16 @@ make %{?jobs:-j%jobs}
 
 %install
 rm -rf %{buildroot}
+
+if [ ! -d %{buildroot}/opt/dbspace ]
+then
+       mkdir -p %{buildroot}/opt/dbspace
+fi
+
+sqlite3 %{buildroot}/opt/dbspace/.dm_service.db "PRAGMA journal_mode = PERSIST; create table a(a); drop table a;" > /dev/null
+sqlite3 %{buildroot}/opt/dbspace/.omadmagent.db "PRAGMA journal_mode = PERSIST; create table a(a); drop table a;" > /dev/null
+sqlite3 %{buildroot}/opt/dbspace/.momanager.db "PRAGMA journal_mode = PERSIST; create table a(a); drop table a;" > /dev/null
+
 %make_install
 
 
@@ -74,41 +84,22 @@ rm -rf %{buildroot}
 
 
 %post
-if [ ! -d /opt/dbspace ]
-then
-       mkdir /opt/dbspace
-fi
 if [ ! -d /etc/rc.d/rc3.d ]
 then
-       mkdir /etc/rc.d/rc3.d
+       mkdir -p /etc/rc.d/rc3.d
 fi
 if [ ! -d /etc/rc.d/rc5.d ]
 then
-       mkdir /etc/rc.d/rc5.d
+       mkdir -p /etc/rc.d/rc5.d
 fi
 
-ln -s /etc/init.d/oma-dm /etc/rc.d/rc3.d/S91oma-dm-agent
-ln -s /etc/init.d/oma-dm /etc/rc.d/rc5.d/S91oma-dm-agent
-
-sqlite3 /opt/dbspace/.dm_service.db "PRAGMA journal_mode = PERSIST; create table a(a); drop table a;" > /dev/null
-sqlite3 /opt/dbspace/.omadmagent.db "PRAGMA journal_mode = PERSIST; create table a(a); drop table a;" > /dev/null
-sqlite3 /opt/dbspace/.momanager.db "PRAGMA journal_mode = PERSIST; create table a(a); drop table a;" > /dev/null
-
-chmod 600 /opt/dbspace/.dm_service.db
-chmod 600 /opt/dbspace/.dm_service.db-journal
-chmod 600 /opt/dbspace/.omadmagent.db
-chmod 600 /opt/dbspace/.omadmagent.db-journal
-chmod 600 /opt/dbspace/.momanager.db
-chmod 600 /opt/dbspace/.momanager.db-journal
-
-if [ -f /usr/lib/rpm-plugins/msm.so ]
+if [ ! -f /etc/rc.d/rc3.d/S91oma-dm-agent ]
 then
-       chsmack -a oma-dm-agent::db /opt/dbspace/.dm_service.db
-       chsmack -a oma-dm-agent::db /opt/dbspace/.dm_service.db-journal
-       chsmack -a oma-dm-agent::db /opt/dbspace/.omadmagent.db
-       chsmack -a oma-dm-agent::db /opt/dbspace/.omadmagent.db-journal
-       chsmack -a oma-dm-agent::db /opt/dbspace/.momanager.db
-       chsmack -a oma-dm-agent::db /opt/dbspace/.momanager.db-journal
+       ln -s /etc/init.d/oma-dm /etc/rc.d/rc3.d/S91oma-dm-agent
+fi
+if [ ! -f /etc/rc.d/rc5.d/S91oma-dm-agent ]
+then
+       ln -s /etc/init.d/oma-dm /etc/rc.d/rc5.d/S91oma-dm-agent
 fi
 
 #/etc/init.d/oma-dm start
@@ -134,16 +125,24 @@ rm -rf /usr/share/oma-dm-cfg
 
 
 %files
+%attr(600,root,root) /opt/dbspace/.dm_service.db
+%attr(600,root,root) /opt/dbspace/.dm_service.db-journal
+%attr(600,root,root) /opt/dbspace/.omadmagent.db
+%attr(600,root,root) /opt/dbspace/.omadmagent.db-journal
+%attr(600,root,root) /opt/dbspace/.momanager.db
+%attr(600,root,root) /opt/dbspace/.momanager.db-journal
+
 %manifest oma-dm-agent.manifest
 %defattr(-,root,root,-)
 /usr/share/dbus-1/services/*
 /usr/bin/oma-dm-agent
 
-/usr/share/oma-dm-cfg/*
 /usr/share/oma-dm-cfg/ddf/*
-/usr/share/oma-dm-cfg/ddf/slp/*
+/usr/share/oma-dm-cfg/delta_size/*
+/usr/share/oma-dm-cfg/fw-init/*
 /usr/share/oma-dm-cfg/ipc/*
 
+
 %defattr(700,root,root)
 /usr/share/oma-dm-cfg/csc-setting/change_csc_value.sh
 /usr/share/oma-dm-cfg/imei-setting/change_imei_callnum.sh
index 378da1c..5c6ef4b 100755 (executable)
@@ -297,6 +297,7 @@ DM_ERROR Update_Engine_Status(engine_status * status)
        _EXTERN_FUNC_ENTER;
 
        retvm_if(status == NULL, DM_ERR_UNKNOWN, "engine status is NULL !!");
+       _DEBUG_INFO("status [%d]", status);
 
        DB_HANDLER *db_handler = _get_agent_handler(GET_THREAD_ID);
        if (db_handler == NULL) {
@@ -310,6 +311,8 @@ DM_ERROR Update_Engine_Status(engine_status * status)
                _EXTERN_FUNC_EXIT;
                return dm_add_engine_status(db_handler, status);
        } else {
+               _DEBUG_INFO("status->engine_id [%d]", status->engine_id);
+               _DEBUG_INFO("status->download_click [%d]", status->download_click);
                _EXTERN_FUNC_EXIT;
                return dm_update_engine_status(db_handler, status);
        }
index 029c0bd..c073202 100755 (executable)
@@ -117,21 +117,21 @@ DM_ERROR init_dm()
                _DEBUG_INFO("success register wap push : %d ", ret);
        }
 
+
        ret = register_fumo_ip_push();
        if (ret == -1) {
                _DEBUG_INFO("fail register fumo ip push : %d ", ret);
        } else {
                _DEBUG_INFO("success register fumo ip push : %d ", ret);
 
-               /*todo temp code
-                * will integrate notification UI */
-               /*ret = register_fota_account();
-
-                  if (ret == -1) {
-                  _DEBUG_INFO("fail register fota account : %d ", ret);
-                  } else {
-                  _DEBUG_INFO("success register fota account : %d ", ret);
-                  } */
+               //todo temp code
+               //  will integrate notification UI
+               //ret = register_fota_account();
+               //if (ret == -1) {
+               //      _DEBUG_INFO("fail register fota account : %d ", ret);
+               //} else {
+               //      _DEBUG_INFO("success register fota account : %d ", ret);
+               //}
        }
 
        ret = register_lawmo_samsung_account();
@@ -511,12 +511,22 @@ void delete_account_registration_alarm(char *alarm_str, CONFIG_TYPE alarm_type)
        _EXTERN_FUNC_EXIT;
 }
 
+
+void delete_polling_alarm_item(char *alarm_type, CONFIG_TYPE conf_type)
+{
+       _EXTERN_FUNC_ENTER;
+
+       delete_alarm_item(alarm_type, conf_type);
+       _EXTERN_FUNC_EXIT;
+
+}
+
 DM_ERROR add_alarm_item(Reminder_Interval interval, char *alarm_type, CONFIG_TYPE conf_type)
 {
        _EXTERN_FUNC_ENTER;
 
        DM_ERROR ret = DM_OK;
-       /*int week[] = {DAY_SUN, DAY_MON, DAY_TUE, DAY_WED, DAY_THU, DAY_FRI, DAY_SAT}; */
+       //int week[] = {DAY_SUN, DAY_MON, DAY_TUE, DAY_WED, DAY_THU, DAY_FRI, DAY_SAT};
 
        time_t current_time;
        struct tm *struct_time;
@@ -813,6 +823,9 @@ DM_ERROR get_fumo_ui_mode(char **ui_mode)
        engine_status *status = NULL;
        ret = Get_Engine_Status(FUMO_SERVICE_ENGINE, &status);
        if (ret != DM_OK) {
+               if(status != NULL)
+                       Free_Memory_Engine_Status(&status, 1);
+
                _EXTERN_FUNC_EXIT;
                return ret;
        }
@@ -1193,6 +1206,31 @@ void get_roaming_state(int *roaming_state)
        _EXTERN_FUNC_EXIT;
 }
 
+void get_wifi_connected_state(int *wifi_state)
+{
+       _EXTERN_FUNC_ENTER;
+
+       int wifi_connection = VCONFKEY_WIFI_OFF;
+       int nRes_wifistatus = vconf_get_int(VCONFKEY_WIFI_STATE, &wifi_connection);
+       *wifi_state = -1;
+
+       if (nRes_wifistatus != 0) {
+               _DEBUG_INFO("vconf_get_int get wificonnection fail\n");
+               *wifi_state = -1;
+               _EXTERN_FUNC_EXIT;
+               return;
+       }
+
+       if(wifi_connection >= VCONFKEY_WIFI_CONNECTED) {
+               _DEBUG_INFO("vconf_get_int get wificonnection success\n");
+               *wifi_state = 0;
+               _EXTERN_FUNC_EXIT;
+               return;
+       }
+
+       _EXTERN_FUNC_EXIT;
+}
+
 void get_call_sate(int *call_state)
 {
        _EXTERN_FUNC_ENTER;
@@ -1250,7 +1288,7 @@ DM_ERROR compare_memory_space(char *memory_type, long double file_size)
                return DM_MEMORY_ERROR;
        }
 
-       _DEBUG_INFO("memory free size : %f, total size : %f ", sizeFree, sizeTotal);
+       _DEBUG_INFO("need free size [%f], memory free size [%f], total size [%f] ", file_size, sizeFree, sizeTotal);
        if (file_size > sizeFree) {
                _EXTERN_FUNC_EXIT;
                return DM_OVER_MEMORY_ERROR;
@@ -1439,6 +1477,10 @@ int get_default_noti_type(char *ui_mode, NotI_Type noti_type)
                        _EXTERN_FUNC_EXIT;
                        return NOTI_DOWNLOAD;   //connect to server
                        break;
+               case NOTI_TYPE_POLLINTERACTION:
+                       _EXTERN_FUNC_EXIT;
+                       return NOTI_POLL_INTERACTION;   //connect to server
+                       break;
                default:
                        return NOTI_UNKNOWN;    //none type
                        break;
index b54425c..f1fdf23 100755 (executable)
@@ -1327,6 +1327,15 @@ static DM_CP_PxLogical *__parse_PxLogical(WBXMLTreeNode * wbxml_dom_node)
                                                                                                        }
                                                                                                } else if (WBXML_STRCMP("SERVICE", wbxml_attribute_get_xml_value(param_attr)) == 0) {
                                                                                                        String_Node *target_ptr = ___get_Last_String_Node(port->service);
+
+                                                                                                       if(target_ptr == NULL) {
+                                                                                                               _DEBUG_ERROR("___get_Last_String_Node fail - target_ptr NULL ERROR");
+                                                                                                               free_cp_pxlogical(pxLogical);
+                                                                                                               pxLogical = NULL;
+                                                                                                               _INNER_FUNC_EXIT;
+                                                                                                               return 0;
+                                                                                                       }
+
                                                                                                        ___set_Param(pCursor_Port, &(target_ptr->data));
                                                                                                        if(target_ptr->data != NULL) {
                                                                                                                _DEBUG_VERBOSE("SERVICE : %s", target_ptr->data);
@@ -1387,8 +1396,8 @@ static DM_CP_PxLogical *__parse_PxLogical(WBXMLTreeNode * wbxml_dom_node)
                                                                                                        String_Node *target_ptr = ___get_Last_String_Node(pxPhysical->domain);
                                                                                                        if(target_ptr == NULL) {
                                                                                                                _DEBUG_VERBOSE("___get_Last_String_Node fail");
-                                          free_cp_pxlogical(pxLogical);
-                                          pxLogical = NULL;
+                                                                                                               free_cp_pxlogical(pxLogical);
+                                                                                                               pxLogical = NULL;
                                                                                                                _INNER_FUNC_EXIT;
                                                                                                                return 0;
                                                                                                        }
@@ -1436,8 +1445,8 @@ static DM_CP_PxLogical *__parse_PxLogical(WBXMLTreeNode * wbxml_dom_node)
                                                                                                        String_Node *target_ptr = ___get_Last_String_Node(pxPhysical->to_napid);
                                                                                                        if(target_ptr == NULL) {
                                                                                                                _DEBUG_VERBOSE("___get_Last_String_Node fail");
-                                          free_cp_pxlogical(pxLogical);
-                                          pxLogical = NULL;
+                                                                                                               free_cp_pxlogical(pxLogical);
+                                                                                                               pxLogical = NULL;
                                                                                                                _INNER_FUNC_EXIT;
                                                                                                                return 0;
                                                                                                        }
@@ -1505,8 +1514,8 @@ static DM_CP_PxLogical *__parse_PxLogical(WBXMLTreeNode * wbxml_dom_node)
                                                                                                                                                        String_Node *target_ptr = ___get_Last_String_Node(port->service);
                                                                                                                                                        if(target_ptr==NULL) {
                                                                                                                                                                _DEBUG_VERBOSE("___get_Last_String_Node fail");
-                                                            free_cp_pxlogical(pxLogical);
-                                                            pxLogical = NULL;
+                                                                                                                                                               free_cp_pxlogical(pxLogical);
+                                                                                                                                                               pxLogical = NULL;
                                                                                                                                                                _INNER_FUNC_EXIT;
                                                                                                                                                                return 0;
                                                                                                                                                        }
old mode 100644 (file)
new mode 100755 (executable)
index d17eeb5..7773e59
@@ -38,7 +38,8 @@ typedef enum {
        DD_NODE_DESCRIPTION,
        DD_NODE_OBJECT_URI,
        DD_NODE_SIZE,
-       DD_NODE_INSTALL_NOTIFY_URI
+       DD_NODE_INSTALL_NOTIFY_URI,
+       DD_NODE_INSTALL_PARAM
 } DD_NODE_TYPE;
 
 static DD_NODE_TYPE ___get_node_type(unsigned char *node_name);
@@ -101,6 +102,9 @@ static DD_NODE_TYPE ___get_node_type(unsigned char *node_name)
        } else if (strcmp((const char *)node_name, "installNotifyURI") == 0) {
                _INNER_FUNC_EXIT;
                return DD_NODE_INSTALL_NOTIFY_URI;
+       } else if (strcmp((const char *)node_name, "installParam") == 0) {
+               _INNER_FUNC_EXIT;
+               return DD_NODE_INSTALL_PARAM;
        }
 
        _INNER_FUNC_EXIT;
@@ -130,6 +134,9 @@ static DM_ERROR __set_value_to_dd_object(xmlNode * a_node, Download_Descriptor *
                                {
                                        if (content != NULL) {
                                                (*dd_object)->object_type = strdup((const char *)content);
+                                               _DEBUG_VERBOSE("object_type = %s\n", (*dd_object)->object_type);
+                                       } else {
+                                               _DEBUG_VERBOSE("object type null");
                                        }
                                }
                                break;
@@ -137,6 +144,9 @@ static DM_ERROR __set_value_to_dd_object(xmlNode * a_node, Download_Descriptor *
                                {
                                        if (content != NULL) {
                                                (*dd_object)->object_description = strdup((const char *)content);
+                                               _DEBUG_VERBOSE("object_description = %s\n", (*dd_object)->object_description);
+                                       } else {
+                                               _DEBUG_VERBOSE("object description null");
                                        }
                                }
                                break;
@@ -162,6 +172,9 @@ static DM_ERROR __set_value_to_dd_object(xmlNode * a_node, Download_Descriptor *
                                {
                                        if (content != NULL) {
                                                (*dd_object)->object_size = atoi((const char *)content);
+                                               _DEBUG_VERBOSE("object_size = %d\n", (*dd_object)->object_size);
+                                       } else {
+                                               _DEBUG_VERBOSE("object size null");
                                        }
                                }
                                break;
@@ -183,6 +196,16 @@ static DM_ERROR __set_value_to_dd_object(xmlNode * a_node, Download_Descriptor *
                                        }
                                }
                                break;
+                       case DD_NODE_INSTALL_PARAM:
+                               {
+                                       if (content != NULL) {
+                                               (*dd_object)->install_param = strdup((const char *)content);
+                                               _DEBUG_VERBOSE("install_param = %s\n", (*dd_object)->install_param);
+                                       } else {
+                                               _DEBUG_VERBOSE("install param null");
+                                       }
+                               }
+                               break;
                        default:
                                break;
                        }
old mode 100644 (file)
new mode 100755 (executable)
index b228d7c..be02eec
@@ -55,6 +55,7 @@ DM_ERROR get_object_information(char *dd_server_uri, int *file_size, Download_De
        char *recvMsg = 0;
        unsigned int recvMsg_size = 0;
        GList *recv_header = 0;
+       _DEBUG_INFO("dd_server_uri [%s]", dd_server_uri);
        ret = send_download_msg(DD_DOWNLOAD, dd_server_uri, "application/vnd.oma.dd+xml", send_header, 0, 0, &recv_header, &recvMsg, &recvMsg_size);
        if (ret != DM_OK) {
                *download_status = DM_ERR_LOSS_OF_SERVICE;
@@ -75,9 +76,23 @@ DM_ERROR get_object_information(char *dd_server_uri, int *file_size, Download_De
        if (*download_descriptor != NULL && (*download_descriptor)->object_uri != NULL) {
                *file_size = (*download_descriptor)->object_size;
 
-               _DEBUG_INFO(" dd->object_uri = %s \n", (*download_descriptor)->object_uri);
+               if((*download_descriptor)->object_type != NULL) {
+                       _DEBUG_INFO(" dd->object_type = %s \n", (*download_descriptor)->object_type);
+               }
+               if((*download_descriptor)->object_uri != NULL) {
+                       _DEBUG_INFO(" dd->object_uri = %s \n", (*download_descriptor)->object_uri);
+               }
                _DEBUG_INFO(" dd->size = %d \n", (*download_descriptor)->object_size);
-               _DEBUG_INFO(" dd->object_description = %s \n", (*download_descriptor)->object_description);
+               if((*download_descriptor)->install_notify_uri != NULL) {
+                       _DEBUG_INFO(" dd->install_notify_uri = %s \n", (*download_descriptor)->install_notify_uri);
+               }
+               if((*download_descriptor)->object_description != NULL) {
+                       _DEBUG_INFO(" dd->object_description = %s \n", (*download_descriptor)->object_description);
+               }
+               if((*download_descriptor)->install_param != NULL) {
+                       _DEBUG_INFO(" dd->install_param = %s \n", (*download_descriptor)->install_param);
+               }
+
        } else {
                _DEBUG_INFO("dd obejct uri null");
                ret = DM_ERR_INVALID_DESCRIPTOR;
@@ -105,8 +120,8 @@ DM_ERROR check_file_resume(const char *checked_download_folder, DOWNLOAD_FILE_ST
        /* 1. validate download_folder variable */
        retvm_if((checked_download_folder) == NULL, COMMON_ERR_IS_NULL, "checked_download_folder is NULL!!");
 
-       if (file_status != NULL) {
-               _DEBUG_INFO("checked_download_folder == 0 && file_status != 0 ");
+       if (file_status == NULL) {
+               _DEBUG_INFO("file_status == NULL ");
                ret = COMMON_ERR_IS_NULL;
                _EXTERN_FUNC_EXIT;
                return ret;
@@ -387,10 +402,11 @@ static int _arrange_file(const char *download_folder, const char *file_name)
        char *temp_file_path = 0;
        for (iter = fileList; iter != 0; iter = g_slist_next(iter)) {
                temp_file_info = (char *)(iter->data);
-               _DEBUG_TRACE("temp_file_name = %s\n", temp_file_name);
+               _DEBUG_TRACE("temp_file_info = %s\n", temp_file_info);
 
                //
                temp_file_name = strtok(temp_file_info, ",");
+               _DEBUG_TRACE("temp_file_name = %s\n", temp_file_name);
                //
 
                if (strcmp(temp_file_name, file_name) != 0) {
index d285ec3..30e4d04 100755 (executable)
 #define LOG_TAG        "OMA_DM_DL"
 #endif
 
-#define DOWNLOAD_BODY_SIZE     66304
-//#define DOWNLOAD_BODY_SIZE    3592624
+//#define DOWNLOAD_BODY_SIZE   66304
+////#define DOWNLOAD_BODY_SIZE    3592624
+
+//#define DOWNLOAD_BODY_SIZE        983040
+#define DOWNLOAD_BODY_SIZE          491520
+//#define DOWNLOAD_BODY_SIZE        245760
+
 #define MAX_COUNT                                              3
 
 static sync_agent_na_result_e _download_data(GList * header_info, int na_plugIn_id, unsigned char *download_folder, unsigned int download_start_size,
@@ -113,8 +118,10 @@ char *get_file_name_from_http_header(GList * header_info)
        if (value != NULL) {
                _DEBUG_INFO("Key = %s, Value = %s\n", "Content-Disposition", value);
                char *ptr1 = strstr(value, "attachment;");
+               ptr1 = ptr1+strlen("attachment;");
                if (ptr1 != NULL) {
-                       ptr1 = strstr(ptr1, "fileName=");
+                       ptr1 = strstr(ptr1, "fileName=\"");
+                       ptr1 = ptr1+strlen("fileName=\"");
                        if (ptr1 != NULL) {
 
                                char *temp = strdup(ptr1);
@@ -147,7 +154,7 @@ DM_ERROR send_download_msg(DL_SEND_MSG_TYPE send_dl_type, char *local_uri, char
        DM_ERROR ret = DM_OK;
        int net_session_id;
 
-       retvm_if((sendMsg) == NULL, COMMON_ERR_IS_NULL, "sendMsg is NULL!!");
+       //retvm_if((sendMsg) == NULL, COMMON_ERR_IS_NULL, "sendMsg is NULL!!");
 
        //timeout : 30 seconds
        res = sync_agent_open_connection(transportType, 30, (unsigned int *)(&(net_session_id)));
@@ -171,7 +178,7 @@ DM_ERROR send_download_msg(DL_SEND_MSG_TYPE send_dl_type, char *local_uri, char
                        add_header_info(&header_info, "method", "get");
                        add_header_info(&header_info, "uri", local_uri);
                        add_header_info(&header_info, "Connection", "Keep-Alive");
-                       add_header_info(&header_info, "User-Agent", "Samsung electronics GT-I9500 SyncML_DM Client");
+                       add_header_info(&header_info, "User-Agent", "Samsung electronics GT-I8800 SyncML_DM Client");
                        add_header_info(&header_info, "Accept", content_type);
                        add_header_info(&header_info, "Accept-Charset", "UTF-8");
                        add_header_info(&header_info, "Content-Type", content_type);
@@ -192,8 +199,14 @@ DM_ERROR send_download_msg(DL_SEND_MSG_TYPE send_dl_type, char *local_uri, char
        switch (send_dl_type) {
        case DD_DOWNLOAD:
        case GET_FILE_NAME:
+               {
+                       res = sync_agent_send_msg(      /*acc_info (id, pw, uri, ...), */
+                                                        header_info, transportType, NULL, sendMsg_length, recv_header, (unsigned char **)recvMsg, recvMsg_length, SYNC_AGENT_NA_SEND_TYPE_SEND_N_RECEIVE, net_session_id);
+               }
+               break;
        case SEND_DOWNLOAD_STATUS:
                {
+                       retvm_if((sendMsg) == NULL, COMMON_ERR_IS_NULL, "sendMsg is NULL!!");
                        res = sync_agent_send_msg(      /*acc_info (id, pw, uri, ...), */
                                                         header_info, transportType, sendMsg, sendMsg_length, recv_header, (unsigned char **)recvMsg, recvMsg_length, SYNC_AGENT_NA_SEND_TYPE_SEND_N_RECEIVE, net_session_id);
                }
@@ -262,7 +275,8 @@ DM_ERROR download_data(char *local_uri, char *content_type, GList * header_info,
        int down_count = 0;
 
        retvm_if((local_uri) == NULL, COMMON_ERR_IS_NULL, "local_uri is NULL!!");
-       retvm_if((header_info) == NULL, COMMON_ERR_IS_NULL, "header_info is NULL!!");
+       //retvm_if((header_info) == NULL, COMMON_ERR_IS_NULL, "header_info is NULL!!");
+       warn_if((header_info) == NULL, "header_info is NULL!! But this is normal case !!");
        retvm_if((download_folder) == NULL, COMMON_ERR_IS_NULL, "download_folder is NULL!!");
 
        //timeout : 30 seconds
@@ -277,7 +291,7 @@ DM_ERROR download_data(char *local_uri, char *content_type, GList * header_info,
        add_header_info(&header_info, "method", "get");
        add_header_info(&header_info, "uri", local_uri);
        add_header_info(&header_info, "Connection", "Keep-Alive");
-//      add_header_info(&header_info, "User-Agent", "Samsung electronics GT-I9500 SyncML_DM Client");
+//      add_header_info(&header_info, "User-Agent", "Samsung electronics GT-I8800 SyncML_DM Client");
        add_header_info(&header_info, "Accept", content_type);
        add_header_info(&header_info, "Accept-Charset", "UTF-8");
        add_header_info(&header_info, "Content-Type", content_type);
@@ -424,11 +438,11 @@ static sync_agent_na_result_e _download_data(GList * header_info, int na_plugIn_
                        ret = get_wifi_state();
                        _DEBUG_TRACE("wifi only mode : %d", ret);
                        if (ret != SYNC_AGENT_NA_SUCCESS) {
-                               goto return_part;
+                               goto free_and_return_part;
                        }
                }
 
-               /* send_msg */
+               /* send_msg */ // sync_agent_send_msg function include backup_send_head_info_list resource free.
                ret = sync_agent_send_msg(backup_send_head_info_list, na_plugIn_id, 0, 0, &recv_header_info, &recvMsg, &recvMsg_size, send_type, session_id);
                if (ret != SYNC_AGENT_NA_SUCCESS) {
                        _DEBUG_TRACE("sync_agent_send_msg() fail");
@@ -512,16 +526,6 @@ static sync_agent_na_result_e _download_data(GList * header_info, int na_plugIn_
                }
 
                _DEBUG_TRACE("############# Set_Data_Down_Info() success !!");
-
-               if (backup_send_head_info_list != NULL) {
-                       for (free_list = backup_send_head_info_list; free_list != NULL;) {
-                               free_item = (sync_agent_na_common_header_info_s *) (free_list->data);
-                               free_list = g_list_next(free_list);
-
-                               sync_agent_free_na_common_header_info(free_item);
-                       }
-                       g_list_free(backup_send_head_info_list);
-               }
        }
 
        _INNER_FUNC_EXIT;
@@ -529,6 +533,11 @@ static sync_agent_na_result_e _download_data(GList * header_info, int na_plugIn_
 
  return_part:
 
+       _INNER_FUNC_EXIT;
+       return ret;
+
+ free_and_return_part:
+
        if (backup_send_head_info_list != NULL) {
                for (free_list = backup_send_head_info_list; free_list != NULL;) {
                        free_item = (sync_agent_na_common_header_info_s *) (free_list->data);
index 42fa7ad..3bd711a 100755 (executable)
@@ -60,7 +60,7 @@ static DM_ERROR _change_engine_status(char *server_id, char *full_path, char *co
 
        engine_status *status;
 
-       int is_exist;
+       int is_exist = 0;
        is_exist = IsExist_Engine_id(service_engine_status);
 
        if (is_exist == 1) {
@@ -91,7 +91,19 @@ static DM_ERROR _change_engine_status(char *server_id, char *full_path, char *co
        status->server_id = strdup(server_id);
        status->task_id = task_id;
        status->ui_noti_type = 0;
-       status->download_click = 0;
+       _DEBUG_INFO("is_exist [%d]", is_exist);
+       if(is_exist == 0) {
+               status->download_click = RESUME_STATUS_DONWLOAD_BEFORE;
+       } else {
+               _DEBUG_INFO("is_exist [%d] , status->download_click [%d] ", is_exist, status->download_click);
+               if( (RESUME_STATUS_INSTALL_BEFORE <= status->download_click) && (status->download_click <= RESUME_STATUS_INSTALL_IDLE ) ) {
+                       status->download_click = RESUME_STATUS_INSTALL_BEFORE;
+               } else {
+                       status->download_click = RESUME_STATUS_DONWLOAD_BEFORE;
+               }
+       }
+       _DEBUG_INFO("status->download_click [%d]", status->download_click);
+
        //status->ui_mode = ;
 
        /* one engine */
@@ -283,6 +295,7 @@ DM_ERROR service_engine_start(ENGINE_ID service_engine_id, DM_ERROR * service_re
 
                        switch (service_engine_id) {
                        case FUMO_SERVICE_ENGINE:
+                               _DEBUG_INFO(" service_status->download_click [%d] ", service_status->download_click);
                                _DEBUG_INFO(" fumo exec");
                                ret = fumo_exec(full_path, correlator, (FUMO_Error *) (&engine_return));
                                _DEBUG_INFO("fumo ret : %d", ret);
@@ -315,14 +328,50 @@ DM_ERROR service_engine_start(ENGINE_ID service_engine_id, DM_ERROR * service_re
                                goto error;
                        }
 
+                       _DEBUG_INFO(" after_service_status->download_click [%d] ", after_service_status->download_click);
+
                        if (after_service_status->download_click != RESUME_STATUS_INSTALL_BEFORE) {
+
                                /*engine status generic alert status */
                                service_engine_status = DM_GENERICALERT_ING;
                                ret = Update_Engine_Status_Column(service_engine_id, VALUE_ENGINE_STATUS, &service_engine_status);
                                _DEBUG_INFO("service engine status generic alert");
 
+
                                ret = Update_Engine_Status_Column(service_engine_id, VALUE_RESULT_STATUS, &engine_return);
                                _DEBUG_INFO("service engine status generic alert status : %d", engine_return);
+
+                               /* adding alert for fota result start : _generate_generic_alert*/
+                               if( (after_service_status->download_click == RESUME_STATUS_INSTALL) && (service_engine_id == FUMO_SERVICE_ENGINE) ) {
+                                       _DEBUG_INFO("fota result report");
+                                       int isFinish = 0;
+                                       void *session = NULL;
+                                       //int common_status = DM_IDLE;
+                                       //ret = genericalert_operation(engine_return, server_id, service_engine_id);
+                                       ret = genericalert_operation(&session, &isFinish, service_engine_id);
+                                       _DEBUG_INFO("isFinish [%d]", isFinish);
+                                       if(ret != DM_OK) {
+                                               goto error;
+                                       }
+                                       set_engine_status_idle(service_engine_id);
+
+                                       Delete_Engine_Status(service_engine_id);
+                                       _DEBUG_INFO("Delete fumo service engine");
+
+                                       //_DEBUG_INFO("isFinish [%d]", isFinish);
+                                       //if(!isFinish) {
+                                       if(engine_return == 200) {
+                                               ret = management_phase(1, (Session **) (&session), NULL, &service_engine_id, &isFinish);
+                                               if (ret != DM_OK) {
+                                                       *service_ret = ret;
+                                                       _DEBUG_INFO("management_phase is not DM_OK");
+                                                       goto error;
+                                               } else {
+                                                       _DEBUG_INFO("management_phase is DM_OK");
+                                               }
+                                       }
+                               }
+                               /* adding alert for fota result end */
                        }
 
                        str_free(&full_path);
@@ -456,6 +505,12 @@ DM_ERROR dm_common_operation(Event_Contents * pEvent_data)
                goto error;
        }
 
+       if( session_id != NULL ) {
+               _DEBUG_INFO("session_id [%s]", session_id);
+       } else {
+               _DEBUG_INFO("session_id is NULL");
+       }
+
        get_service_engine_id(&service_engine_id, pEvent_data->ui_mode);
 
        /*pkg 1 ~ pkg2 */
@@ -556,7 +611,7 @@ DM_ERROR genericalert_operation(void **session, int *isFinish, ENGINE_ID service
                        _DEBUG_INFO(" ----------------------------------------------------------------------generic alert-------------------------------------------------------------------------------");
                        _DEBUG_INFO("service engine id = %d\n", service_engine_id);
 
-                       isFinish = 0;
+                       *isFinish = 0;
                        int isgeneticAlert = 1;
 
                        if (status->server_id != NULL) {
old mode 100644 (file)
new mode 100755 (executable)
index 9250283..1efbcee
@@ -15,6 +15,8 @@
  * limitations under the License.
  */
 
+#include <vconf.h>
+
 /*sync-agent*/
 #include <sync_agent.h>
 
 #include "ipc_common.h"
 #include "ipc_agent.h"
 
-#define MAX_FILE_SIZE 52428800
+
+#define MAX_FILE_SIZE 52428800     /* 50 MB */
+//#define MAX_FILE_SIZE 2042626048 /* 1948 MB : (2*1024*1024*1024) - (100*1024*1024) */
+
+#define DD_MULTI_LANGUAGE      "db/SyncML/oma-dm-service/DD-multilanguage"
+#define DD_OBJECT_SIZE                 "db/SyncML/oma-dm-service/DD-objectsize"
 
 #ifndef OMADM_AGENT_LOG
 #undef LOG_TAG
 
 static DM_ERROR _firmware_download(char *server_url, MEMORY_TYPE * memory_type, FUMO_Error * fumo_return);
 static DM_ERROR _firmware_install(char *full_path, MEMORY_TYPE memory_type, FUMO_Error * fumo_return);
+static DM_ERROR _firmware_update_popup(int result);
 static DM_ERROR __check_low_battery();
 static DM_ERROR __check_memory(long double file_size, MEMORY_TYPE * is_internal_memory);
 static DM_ERROR ___get_max_file_size(int *max_file_size);
 static DM_ERROR __check_max_file_size(int file_size);
+static DM_ERROR _checking_rooting_opeartion(char *value);
 
 DM_ERROR fumo_engine_state_operation(char *full_path, char *down_server, FUMO_Error * fumo_return)
 {
@@ -52,7 +61,9 @@ DM_ERROR fumo_engine_state_operation(char *full_path, char *down_server, FUMO_Er
        DM_ERROR ret = DM_OK;
 
        retvm_if((full_path) == NULL, COMMON_ERR_IS_NULL, "full_path is NULL!!");
+       _DEBUG_INFO("full_path [%s]", full_path);
        retvm_if((down_server) == NULL, COMMON_ERR_IS_NULL, "down_server is NULL!!");
+       _DEBUG_INFO("down_server [%s]", down_server);
 
        char *result_mo_type = NULL;
        sync_agent_dev_return_e dci_ret_exec = SYNC_AGENT_DEV_RETURN_SUCCESS;
@@ -207,7 +218,8 @@ DM_ERROR fumo_engine_state_operation(char *full_path, char *down_server, FUMO_Er
                        //*fumo_return = result;
                        //*fumo_return = 202;
                        _DEBUG_INFO("-----------------firmware update result : %d  fumo return : %d------------------", dci_ret_exec, (*fumo_return));
-                       if (dci_ret_exec != SYNC_AGENT_DEV_RETURN_SUCCESS) {
+                       //if (dci_ret_exec != SYNC_AGENT_DEV_RETURN_SUCCESS) {
+                       if ( (dci_ret_exec != SYNC_AGENT_DEV_RETURN_SUCCESS) || (*fumo_return != 200) ) {
                                fumo_state = UPDATE_FAILED_HAVE_DATA;
                        } else {
                                fumo_state = UPDATE_SUCCESSFUL_HAVE_DATA;
@@ -230,6 +242,11 @@ DM_ERROR fumo_engine_state_operation(char *full_path, char *down_server, FUMO_Er
 /*             if(ret != DM_OK)
                        goto error;*/
 
+                       ret = _firmware_update_popup(FUMO_UPDATE_FAILED);
+                       if (ret != DM_OK) {
+                               _DEBUG_INFO("_firmware_update result popup fail ");
+                       }
+
                        /*ret = FUMO_UPDATE_FAILED; */
                        *fumo_return = FUMO_UPDATE_FAILED;
                        _DEBUG_INFO("update fail ");
@@ -245,6 +262,11 @@ DM_ERROR fumo_engine_state_operation(char *full_path, char *down_server, FUMO_Er
 /*             if(ret != DM_OK)
                        goto error;*/
 
+                       ret = _firmware_update_popup(FUMO_SUCCESS);
+                       if (ret != DM_OK) {
+                               _DEBUG_INFO("_firmware_update result popup fail ");
+                       }
+
                        /*ret = FUMO_SUCCESS; */
                        *fumo_return = FUMO_SUCCESS;
                        _DEBUG_INFO("update success ");
@@ -257,6 +279,7 @@ DM_ERROR fumo_engine_state_operation(char *full_path, char *down_server, FUMO_Er
        //      str_free(&result_mo_type);
        _DEBUG_INFO(" end fumo state : %d\n", fumo_state);
        str_free(&fumo_state_data);
+       str_free(&result_mo_type);
 
        _EXTERN_FUNC_EXIT;
        return ret;
@@ -333,6 +356,51 @@ DM_ERROR fumo_exec(char *full_path, char *correlator, FUMO_Error * fumo_return)
        return ret;
 }
 
+DM_ERROR fumo_replace(char *full_path, char *value, FUMO_Error * fumo_return)
+{
+       _EXTERN_FUNC_ENTER;
+
+       DM_ERROR ret = DM_OK;
+
+       retvm_if((full_path) == NULL, COMMON_ERR_IS_NULL, "full_path is NULL!!");
+
+       char *result_mo_type = NULL;
+       ret = get_mo_operationtype(full_path, &result_mo_type);
+       if (ret != DM_OK)
+               goto error;
+
+       if (result_mo_type == NULL) {
+               _DEBUG_INFO("result_mo_type is null");
+               ret = COMMON_ERR_IS_NULL;
+               goto error;
+       } else {
+               _DEBUG_INFO("result_mo_type [%s]", result_mo_type);
+       }
+
+       if (strcmp(result_mo_type, DM_FUMO_EXT_OP_DOCHECKINGROOTING) == 0) {
+               ret = _checking_rooting_opeartion(value);
+               if (ret != DM_OK) {
+                       (*fumo_return) = DM_ERR_COMMAND_NOT_ALLOWED;
+                       goto error;
+               } else {
+                       (*fumo_return) = DM_OK;
+               }
+       } else {
+                       goto error;
+       }
+
+       str_free(&result_mo_type);
+       _DEBUG_INFO(" end : %d", ret);
+       _EXTERN_FUNC_EXIT;
+       return ret;
+ error:
+
+       str_free(&result_mo_type);
+       _DEBUG_INFO(" end error : %d \n", ret);
+       _EXTERN_FUNC_EXIT;
+       return ret;
+}
+
 static DM_ERROR _firmware_download(char *server_url, MEMORY_TYPE * memory_type, FUMO_Error * fumo_return)
 {
        _INNER_FUNC_ENTER;
@@ -363,12 +431,14 @@ static DM_ERROR _firmware_download(char *server_url, MEMORY_TYPE * memory_type,
        _DEBUG_TRACE("----------------------------------------------------------------------------------------------------- \n");
 
        ret = Get_Engine_Status(FUMO_SERVICE_ENGINE, &status);
+       _DEBUG_INFO("Get_Engine_Status [%d]", ret);
        if (ret != DM_OK || status == NULL) {
                *fumo_return = FUMO_USER_CANCELLED;
                download_status = DM_ERR_USER_CANDELLED;
                goto error;
        }
 
+       _DEBUG_INFO("status->download_click [%d]", status->download_click);
        switch (status->download_click) {
        case RESUME_STATUS_DONWLOAD_BEFORE:     /*before click download popup */
                {
@@ -383,9 +453,56 @@ static DM_ERROR _firmware_download(char *server_url, MEMORY_TYPE * memory_type,
                                goto error;
                        }
 
+                       // DD download - description text
+                       download_descriptor = (Download_Descriptor *) calloc(1, sizeof(Download_Descriptor) + 1);
+                       if (download_descriptor == NULL) {
+                               _DEBUG_TRACE("calloc failed !!");
+                               ret = COMMON_ERR_ALLOC;
+                               *fumo_return = FUMO_USER_CANCELLED;
+                               download_status = DM_ERR_INVALID_DESCRIPTOR;
+                               goto error;
+                       }
+
+                       ret = get_object_information(server_url, &file_size, &download_descriptor, &download_status);
+                       if (ret != DM_OK) {
+                               *fumo_return = FUMO_USER_CANCELLED;
+                               download_status = DM_ERR_INVALID_DESCRIPTOR;
+                               goto error;
+                       } else {
+                               if(download_descriptor->object_description != NULL) {
+                                       _DEBUG_INFO(" dd->object_description = %s \n", download_descriptor->object_description);
+                                       int vconf_result = 0;
+
+                                       vconf_result = vconf_set_str(DD_MULTI_LANGUAGE, download_descriptor->object_description);
+                                       if(vconf_result == 0) {
+                                               _DEBUG_VERBOSE("vconf_set_str() success %s [%s]!!", DD_MULTI_LANGUAGE, download_descriptor->object_description);
+                                       } else {
+                                               _DEBUG_VERBOSE("vconf_set_str() %s failed !!", DD_MULTI_LANGUAGE);
+                                       }
+                               } else {
+                                       _DEBUG_INFO("dd->object_description is NULL");
+                               }
+
+                               if(download_descriptor->object_size != 0) {
+                                       _DEBUG_INFO(" dd->object_size = %d \n", download_descriptor->object_size);
+                                       int vconf_result = 0;
+
+                                       vconf_result = vconf_set_int(DD_OBJECT_SIZE, download_descriptor->object_size);
+                                       if(vconf_result == 0) {
+                                               _DEBUG_VERBOSE("vconf_set_int() success %s [%d]!!", DD_OBJECT_SIZE, download_descriptor->object_size);
+                                       } else {
+                                               _DEBUG_VERBOSE("vconf_set_int() %s failed !!", DD_OBJECT_SIZE);
+                                       }
+                               } else {
+                                       _DEBUG_INFO("dd->object_size is NULL");
+                               }
+                       }
+                       //
+
+
                        int noti_res;
                        _DEBUG_TRACE("waiting connect to server success in firmware download\n");
-                       noti_res = noti_download();
+                       noti_res = noti_download(file_size);
                        _DEBUG_TRACE("download noti response : %d \n ", noti_res);
 
                        if (noti_res == RESPONSE_TYPE_OK) {
@@ -445,10 +562,12 @@ static DM_ERROR _firmware_download(char *server_url, MEMORY_TYPE * memory_type,
                        }
 
                        _DEBUG_TRACE("======================================================");
-                       _DEBUG_TRACE("object size %d\n", file_size);
+                       _DEBUG_TRACE("object size [%d]\n", file_size);
+                       _DEBUG_TRACE("wifi only config [%d]\n", config);
                        _DEBUG_TRACE("======================================================");
 
                        ret = __check_memory(file_size, memory_type);
+                       //ret = DM_OVER_MEMORY_ERROR; // for memory not enough - UI testing
                        if (ret != DM_OK) {
                                noti_res = noti_memory_full((int)file_size);
                                if (noti_res == RESPONSE_TYPE_OK) {
@@ -458,7 +577,7 @@ static DM_ERROR _firmware_download(char *server_url, MEMORY_TYPE * memory_type,
                                }
                                download_status = DM_ERR_INSUFFICIENT_MEMORY;
                                *fumo_return = FUMO_USER_CANCELLED;
-                               ret = DM_OK;
+                               //ret = DM_OK;
                                goto error;
                        }
 
@@ -473,6 +592,8 @@ static DM_ERROR _firmware_download(char *server_url, MEMORY_TYPE * memory_type,
                                int wifi_ret = 0;
                                wifi_ret = get_wifi_state();
                                _DEBUG_TRACE("wifi mode : %d", wifi_ret);
+                               //wifi_ret = 4; // If delta size is big.. for wifi mode test
+                               //_DEBUG_TRACE("wifi mode : %d", wifi_ret); // If delta size is big.. for wifi mode test
 
                                if (wifi_ret != 1) {
                                        _DEBUG_TRACE("3g mode");
@@ -676,11 +797,13 @@ static DM_ERROR _firmware_install(char *full_path, MEMORY_TYPE memory_type, FUMO
        FUMO_State fumo_state = READY_TO_UPDATE;
 
        ret = Get_Engine_Status(FUMO_SERVICE_ENGINE, &status);
+       _DEBUG_INFO("Get_Engine_Status [%d]", ret);
        if (ret != DM_OK || status == NULL) {
                *fumo_return = FUMO_USER_CANCELLED;
                goto error;
        }
 
+       _DEBUG_INFO("status->download_click [%d]", status->download_click);
        switch (status->download_click) {
        case RESUME_STATUS_INSTALL_BEFORE:
                {
@@ -766,8 +889,8 @@ static DM_ERROR _firmware_install(char *full_path, MEMORY_TYPE memory_type, FUMO
        default:
                {
                        ret = DM_RESUME_IDLE;
-                       goto returnpart;
                        _DEBUG_TRACE("----------------------------------------------------install later --------------------------------------------------------------------");
+                       goto returnpart;
                }
                break;
        }
@@ -798,6 +921,26 @@ static DM_ERROR _firmware_install(char *full_path, MEMORY_TYPE memory_type, FUMO
        return ret;
 }
 
+static DM_ERROR _firmware_update_popup(int result)
+{
+       _INNER_FUNC_ENTER;
+
+       DM_ERROR ret = DM_OK;
+       _DEBUG_INFO("result [%d]", result);
+       int noti_res = 0;
+       noti_res = noti_update_result(result);
+       if (noti_res == RESPONSE_TYPE_OK) {
+               ret = DM_OK;
+       } else {
+               // error in noti-process
+               ret = COMMON_ERR_IPC;
+       }
+
+       _DEBUG_INFO(" end error : %d \n", ret);
+       _INNER_FUNC_EXIT;
+       return ret;
+}
+
 DM_ERROR firmware_download_opeartion(char *full_path, FUMO_Error * fumo_return)
 {
        _EXTERN_FUNC_ENTER;
@@ -1139,7 +1282,8 @@ static DM_ERROR __check_memory(long double file_size, MEMORY_TYPE * is_internal_
        DM_ERROR ret = DM_OK;
        int ipc_ret = 0;
        int existed_sd;
-       long double need_size = file_size * 2;
+//     long double need_size = file_size * 2.1;
+       long double need_size = file_size + 1024*1024*3;
 
        ret = compare_memory_space(FOTA_DELTA_INTERNAL_STORAGE, need_size);
 
@@ -1147,7 +1291,7 @@ static DM_ERROR __check_memory(long double file_size, MEMORY_TYPE * is_internal_
                ret = existed_sd_card_memory(&existed_sd);
                if (existed_sd == 0 || ret != DM_OK) {
                        /* ui ->not existed sd card or make folder error */
-                       ipc_ret = noti_over_max_file_size();
+                       ipc_ret = noti_over_max_file_size((int)file_size);
                        if (ipc_ret == RESPONSE_TYPE_OK) {
                                _DEBUG_VERBOSE("file size over the memory");
                        } else {
@@ -1165,7 +1309,7 @@ static DM_ERROR __check_memory(long double file_size, MEMORY_TYPE * is_internal_
                        ret = compare_memory_space(FOTA_DELTA_SD_EXTERNAL_STORAGE, need_size);
                        if (ret == DM_MEMORY_ERROR) {
                                /* ui ->  sd_card full */
-                               ipc_ret = noti_over_max_file_size();
+                               ipc_ret = noti_over_max_file_size((int)file_size);
                                if (ipc_ret == RESPONSE_TYPE_OK) {
                                        _DEBUG_VERBOSE("file size over the memory");
                                } else {
@@ -1205,7 +1349,7 @@ static DM_ERROR ___get_max_file_size(int *max_file_size)
        err = sync_agent_is_existing_fs(MAX_DELTA_FILE_SIZE);
        /*define value when this is file not existed */
        if (err == 0) {
-               _DEBUG_VERBOSE("max file size : 50MB");
+               _DEBUG_INFO("max file size : 50MB");
                *max_file_size = MAX_FILE_SIZE;
                _INNER_FUNC_EXIT;
                return DM_OK;
@@ -1214,7 +1358,7 @@ static DM_ERROR ___get_max_file_size(int *max_file_size)
        /*value when this is file existed */
        err = sync_agent_read_whole_file(MAX_DELTA_FILE_SIZE, &required_contents, &size_return);
        if (err == 1) {
-               _DEBUG_VERBOSE("max file size : %s", required_contents);
+               _DEBUG_INFO("max file size : %s", required_contents);
 
                err = chartoint(required_contents, max_file_size);
                if (err == 1) {
@@ -1222,16 +1366,16 @@ static DM_ERROR ___get_max_file_size(int *max_file_size)
                        _INNER_FUNC_EXIT;
                        return DM_OK;
                } else {
-                       _DEBUG_VERBOSE("get max file size error");
+                       _DEBUG_INFO("get max file size error");
                        _INNER_FUNC_EXIT;
                        return COMMON_ERR_IS_NULL;
                }
        } else {
-               _DEBUG_VERBOSE("get max file size error");
+               _DEBUG_INFO("get max file size error");
                _INNER_FUNC_EXIT;
                return COMMON_ERR_IS_NULL;
        }
-       _DEBUG_VERBOSE("get max file size error");
+       _DEBUG_INFO("get max file size error");
 
        _INNER_FUNC_EXIT;
        return COMMON_ERR_IS_NULL;
@@ -1245,28 +1389,29 @@ static DM_ERROR __check_max_file_size(int file_size)
        int noti_res = 0;
 
        int max_file_size = 0;
+       //file_size = 2042626049; // for testing..
        ret = ___get_max_file_size(&max_file_size);
        if (ret != DM_OK) {
-               _DEBUG_VERBOSE("get max file size error");
+               _DEBUG_INFO("get max file size error");
                ret = DM_WIFI_ONLY_ERROR;
                goto error;
        }
-       _DEBUG_VERBOSE("file size = %d, max file size = %d", file_size, max_file_size);
+       _DEBUG_INFO("file size = %d, max file size = %d", file_size, max_file_size);
 
        /*max_file_size = 0 (0 in file or not existed file)
         *  - can't use this option
         *  - this option is max file size define in file when 3g mode
         */
        if (max_file_size != 0 && file_size > max_file_size) {
-               noti_res = noti_over_max_file_size();
-               _DEBUG_VERBOSE("noti over max file size : %d", noti_res);
+               noti_res = noti_over_max_file_size(file_size);
+               _DEBUG_INFO("noti over max file size : %d", noti_res);
 
-               _DEBUG_VERBOSE("can't save current_size on 3g mode");
+               _DEBUG_INFO("can't save current_size on 3g mode");
                ret = DM_WIFI_ONLY_ERROR;
                goto error;
 
        } else {
-               _DEBUG_VERBOSE("save current size on 3g mode");
+               _DEBUG_INFO("save current size on 3g mode");
        }
 
        _INNER_FUNC_EXIT;
@@ -1278,3 +1423,32 @@ static DM_ERROR __check_max_file_size(int file_size)
        _INNER_FUNC_EXIT;
        return ret;
 }
+
+static DM_ERROR _checking_rooting_opeartion(char *value)
+{
+       _INNER_FUNC_ENTER;
+       DM_ERROR ret = DM_OK;
+
+       retvm_if((value) == NULL, COMMON_ERR_IS_NULL, "value is NULL!!");
+       _DEBUG_INFO("value [%s]", value);
+
+       if (strcmp(value, "T") == 0) {
+//     if (strcmp(value, "F") == 0) { // for testing...
+
+               /* Device rooting check => if rooting status => return DM_ERR_COMMAND_NOT_ALLOWED , if not rooting status => return DM_OK */
+               //struct_cordon_status cordon_status;
+               //cordon_get_current_root_status(&cordon_status);
+               //_DEBUG_INFO("cordon_status.is_device_rooted [%d]", cordon_status.is_device_rooted);
+               //if(cordon_status.is_device_rooted == TRUE) {
+               //      ret = DM_ERR_COMMAND_NOT_ALLOWED;
+               //} else {
+                       ret = DM_OK; // DM_ERR_COMMAND_NOT_ALLOWED;
+               //}
+       } else {
+               ret = DM_OK;
+       }
+
+       _INNER_FUNC_EXIT;
+       _DEBUG_INFO("end ret : %d", ret);
+       return ret;
+}
index c91a434..1c42c24 100755 (executable)
@@ -20,6 +20,7 @@
 #include <sys/un.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include <vconf.h>
 
 /*sync-agent*/
 #include <sync_agent.h>
@@ -58,6 +59,7 @@ static int _dm_notification_operation(const char *out_message, unsigned int outl
        DM_ERROR ret = DM_OK;
 
        retvm_if((out_message) == NULL, COMMON_ERR_IS_NULL, "out_message is NULL!!");
+       _DEBUG_INFO("out_message %d [%s]", outlen, out_message);
 
        SanPackage *pSanPackage = NULL;
        Event_Contents *ev_data = NULL;
@@ -155,7 +157,9 @@ static int _dm_notification_operation(const char *out_message, unsigned int outl
        return 1;
 
  error:
-       event_data_free((void *)ev_data);
+       if(ev_data != NULL) {
+               event_data_free((void *)ev_data);
+       }
        free_sanpackageparser(pSanPackage);
        _INNER_FUNC_EXIT;
        _DEBUG_INFO("end error");
@@ -362,7 +366,8 @@ int dm_ip_push_callback(int item_id, void *user_data)
        char *pushmessage = NULL;
        //ip_push_struct->message = strdup("IPP_20111216000000000000000001|DM|Ft4/CLTiWx/Y0AK+fBIayALoAAAAlPcKeDZnMXExNHI3NQ==");
 
-       pushmessage = (char *)user_data;
+       pushmessage = strdup((char *)user_data);
+       retvm_if((pushmessage) == NULL, -1, "pushmessage is NULL!!");
 
        _DEBUG_INFO("user_data : %s", (char *)user_data);
        _DEBUG_INFO("push contents : %s", pushmessage);
@@ -375,8 +380,9 @@ int dm_ip_push_callback(int item_id, void *user_data)
                if (message != NULL) {
                        _DEBUG_INFO("DS event : %s", message);
                        ret = _send_event_ds(message);
-                       _EXTERN_FUNC_EXIT;
-                       return ret;
+                       //_EXTERN_FUNC_EXIT;
+                       //return ret;
+                       goto error;
                }
 
                message = strchr(app_type, '|') + 1;
@@ -517,6 +523,11 @@ int dm_telephony_end_callback(int item_id, void *user_data)
                sleep(1);
                //DB_Close();
                _DEBUG_INFO("sync agent db close = %d", ret);
+
+               if(status != NULL) {
+                       Free_Memory_Engine_Status(&status, 1);
+               }
+
                _EXTERN_FUNC_EXIT;
                return 1;
        }
@@ -894,7 +905,7 @@ static DM_ERROR _send_event_ds(char *event_msg)
        int client_len;
        int client_sockfd;
        struct sockaddr_un clientaddr;
-       int event_type = 9;
+       int event_type = 11;
        char *msg = NULL;
 
        retvm_if((event_msg) == NULL, DM_ERR_EVENT_DS, "event_msg is NULL!!");
old mode 100644 (file)
new mode 100755 (executable)
index 7bbb4f6..144dac8
@@ -317,16 +317,30 @@ static sync_agent_ec_task_error_e _start_dm_fumo_common_process(unsigned int par
         */
        int roaming_state = -1;
        int call_state = -1;
+       int wifi_state = -1;
        Event_Contents *pEvent_data = NULL;
        int task_id;
 
        get_roaming_state(&roaming_state);
+       get_wifi_connected_state(&wifi_state);
        get_call_sate(&call_state);
+       /*
        if (roaming_state == -1 || call_state == -1) {
                _DEBUG_TRACE("NOT ROAMING OR CALL STATUS  roaming state : %d , call state : %d", roaming_state, call_state);
                ret = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
                goto error;
        }
+       */
+       if (call_state == -1) {
+               _DEBUG_TRACE("CALL STATUS  call state : %d", call_state);
+               ret = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
+               goto error;
+       }
+       if ( (roaming_state == -1) && (wifi_state == -1) ) {
+               _DEBUG_TRACE("NOT ROAMING AND WiFi Status  roaming state : %d , WiFi state : %d", roaming_state, wifi_state);
+               ret = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
+               goto error;
+       }
 
        task_id = sync_agent_get_self_request_id();
        _DEBUG_TRACE("task id ============================================ %d", task_id);
@@ -355,8 +369,9 @@ static sync_agent_ec_task_error_e _start_dm_fumo_common_process(unsigned int par
                //for using fumo ui
                //add_config_db_using_ui( task_id, pEvent_data->ui_mode);
 
-               int is_exist;
+               int is_exist = 0;
                is_exist = IsExist_Engine_id(FUMO_SERVICE_ENGINE);
+               _DEBUG_INFO("IsExist_Engine_id(FUMO_SERVICE_ENGINE)  [%d]", is_exist);
 
                if (is_exist == 0) {
                        engine_status status;
@@ -393,11 +408,12 @@ static sync_agent_ec_task_error_e _start_dm_fumo_common_process(unsigned int par
                                status->ui_mode = strdup(pEvent_data->ui_mode);
                                status->task_id = task_id;
                                status->ui_noti_type = get_default_noti_type(pEvent_data->ui_mode, pEvent_data->noti_type);     //0;
-                               status->download_click = RESUME_STATUS_DONWLOAD_BEFORE;
+                               //status->download_click = RESUME_STATUS_DONWLOAD_BEFORE; // 959 error fix about "download done -> softwareupdate retry clicked". ??? 
 
                                DB_Begin_Transaction();
                                ret = Update_Engine_Status(status);
                                _DEBUG_TRACE(" update engine status : %d \n", ret);
+                               _DEBUG_TRACE(" status->download_click [%d] ", status->download_click);
                                DB_End_Transaction(TRANSACTION_COMMIT_);
 
                                if (status != NULL)
@@ -421,7 +437,11 @@ static sync_agent_ec_task_error_e _start_dm_fumo_common_process(unsigned int par
                value = status->engine_status;
 
                if (value != DM_BEFORE_BOOTSTRAP) {
-                       ret = dm_common_start(pEvent_data);
+                       _DEBUG_INFO("status->ui_noti_type [%d] pEvent_data->noti_type [%d]", status->ui_noti_type, pEvent_data->noti_type);
+                       if(pEvent_data->noti_type == NOTI_TYPE_POLLINTERACTION) {
+                       } else {
+                               ret = dm_common_start(pEvent_data);
+                       }
                } else {
                        //do popup ui
                        //retry factorybootstrap
@@ -764,13 +784,28 @@ static sync_agent_ec_task_error_e _start_fumo_serviceEngine_process(unsigned int
 
        int roaming_state = -1;
        int call_state = -1;
+       int wifi_state = -1;
        get_roaming_state(&roaming_state);
+       get_wifi_connected_state(&wifi_state);
        get_call_sate(&call_state);
+       /*
        if (roaming_state == -1 || call_state == -1) {
                _DEBUG_TRACE("NOT ROAMING OR CALL STATUS  roaming state : %d , call state : %d", roaming_state, call_state);
                ret = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
                goto error;
        }
+       */
+       if (call_state == -1) {
+               _DEBUG_TRACE("CALL STATUS  call state : %d", call_state);
+               ret = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
+               goto error;
+       }
+       if ( (roaming_state == -1) && (wifi_state == -1) ) {
+               _DEBUG_TRACE("NOT ROAMING AND WiFi Status  roaming state : %d , WiFi state : %d", roaming_state, wifi_state);
+               ret = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
+               goto error;
+       }
+
 
        int task_id;
        task_id = sync_agent_get_self_request_id();
index 61b6caf..b80fa1f 100755 (executable)
@@ -19,6 +19,9 @@
 #include <stdio.h>
 #include <aul.h>
 
+#include <vconf.h>
+#include <vconf-keys.h>
+
 /*sync-agent*/
 #include <sync_agent.h>
 
@@ -89,7 +92,9 @@ static int __check_ui_mode(char **ui_mode, char *input_string)
        _INNER_FUNC_ENTER;
 
        if (*ui_mode == NULL) {
+               _DEBUG_VERBOSE("ui mode is NULL");
                if (input_string != NULL) {
+                       _DEBUG_VERBOSE("input_string : %s", input_string);
                        if (strcmp(input_string, OMADM_ALERT_UI_TYPE) == 0 || strcmp(input_string, OMADM_FUMO_NOTI_UI_TYPE) == 0 || strcmp(input_string, OMADM_FUMO_UI_TYPE) == 0 || strcmp(input_string, OMADM_FUMO_BACKGROUND_UI_TYPE) == 0) {
 
                                *ui_mode = strdup(input_string);
@@ -103,7 +108,7 @@ static int __check_ui_mode(char **ui_mode, char *input_string)
                }
        } else {
                _DEBUG_VERBOSE("ui mode : %s", *ui_mode);
-               _DEBUG_VERBOSE("ui mode : %s", input_string);
+               _DEBUG_VERBOSE("input_string : %s", input_string);
                if (input_string != NULL) {
                        if (strcmp(input_string, OMADM_ALERT_UI_TYPE) == 0 || strcmp(input_string, OMADM_FUMO_NOTI_UI_TYPE) == 0 || strcmp(input_string, OMADM_FUMO_UI_TYPE) == 0 || strcmp(input_string, OMADM_FUMO_BACKGROUND_UI_TYPE) == 0) {
 
@@ -128,11 +133,21 @@ static int __launch_ui(char *ui_mode, int noti_type)
        int ui_ret = 1;
 
        if (ui_mode != NULL) {
+               _DEBUG_INFO("ui_mode[%s], noti_type[%d]", ui_mode, noti_type);
+
                if (strcmp(ui_mode, OMADM_FUMO_UI_TYPE) == 0) {
                        ui_ret = launch_oma_dm_fumo_ui();
                        _DEBUG_VERBOSE("fumo ui : %d", ui_ret);
                } else if (strcmp(ui_mode, OMADM_FUMO_NOTI_UI_TYPE) == 0) {
-                       ui_ret = launch_om_dm_fumo_noti_ui(NOTI_TYPE_USERINTERACTION, NULL, NULL);
+                       DM_ERROR ret_poll = DM_OK;
+                       char *server_id = NULL;
+                       ret_poll = get_Serverid(SAMSUNG_FUMO_TYPE, &server_id);
+                       if (ret_poll!= DM_OK || server_id == NULL) {
+                               ui_ret = launch_om_dm_fumo_noti_ui(NOTI_TYPE_USERINTERACTION, NULL, NULL);
+                       } else {
+                               ui_ret = launch_om_dm_fumo_noti_ui(NOTI_TYPE_USERINTERACTION, NULL, server_id);
+                               free(server_id);
+                       }
                        _DEBUG_VERBOSE("noti ui : %d", ui_ret);
                } else if (strcmp(ui_mode, OMADM_FUMO_BACKGROUND_UI_TYPE) == 0) {
                        if (noti_type == NOTI_INSTALL) {
@@ -262,16 +277,16 @@ static int __event_callback_software_update(sync_agent_event_data_s * request, s
        OPER_MODE operationMode = OPER_UNKNOWN;
        NotI_Type noti_type = NOTI_TYPE_NOT_SPECIFIED;
 
-       sync_agent_get_event_data_param(request, &ui_type);
+       sync_agent_get_event_data_param_int(request, (int*) &ui_type);
        _DEBUG_VERBOSE("UI TYPE : %d\n", ui_type);
 
        switch (ui_type) {
        case FOTA_COMMON_UI:
                _DEBUG_VERBOSE("common ui");
                fota_ui_type = OMADM_FUMO_UI_TYPE;
-               sync_agent_get_event_data_param(request, &task_id);
+               sync_agent_get_event_data_param_int(request, &task_id);
                _DEBUG_VERBOSE("get task id : %d", task_id);
-               sync_agent_get_event_data_param(request, &server_type);
+               sync_agent_get_event_data_param_int(request, (int*) &server_type);
                ret = get_Serverid(server_type, &server_id);
                //ret =get_Serverid(SAMSUNG_FUMO_TYPE , &server_id);
                //ret =get_Serverid(GCF_TYPE , &server_id);
@@ -281,8 +296,8 @@ static int __event_callback_software_update(sync_agent_event_data_s * request, s
        case FOTA_NOTI_UI:
                _DEBUG_VERBOSE("noti ui");
                fota_ui_type = OMADM_FUMO_NOTI_UI_TYPE;
-               sync_agent_get_event_data_param(request, &session_id);
-               sync_agent_get_event_data_param(request, &server_id);
+               sync_agent_get_event_data_param_str(request, &session_id);
+               sync_agent_get_event_data_param_str(request, &server_id);
                _DEBUG_VERBOSE("get session id : %s", session_id);
                _DEBUG_VERBOSE("get server id : %s", server_id);
                operationMode = OPER_SERVER_INITIATION_FROM_IP;
@@ -293,7 +308,7 @@ static int __event_callback_software_update(sync_agent_event_data_s * request, s
        case ADMIN_UI:
                _DEBUG_VERBOSE("admin ui");
                fota_ui_type = OMADM_ADMIN_UI_TYPE;
-               sync_agent_get_event_data_param(request, &server_type);
+               sync_agent_get_event_data_param_int(request, (int*) &server_type);
                ret = get_Serverid(server_type, &server_id);
                _DEBUG_VERBOSE("get server id : %s : %d", server_id, ret);
                operationMode = OPER_USER_INITIATION;
@@ -375,7 +390,7 @@ static int __event_callback_cancel(sync_agent_event_data_s * request, sync_agent
        _DEBUG_VERBOSE(">>> >>> >>> Connect to server    CANCELED !!!\n");
 
        int task_id;
-       sync_agent_get_event_data_param(request, &task_id);
+       sync_agent_get_event_data_param_int(request, &task_id);
        _DEBUG_VERBOSE("task id : %d\n", task_id);
 
        /*sync_agent_cancel_task(task_id); */
@@ -402,7 +417,7 @@ static int __event_callback_download(sync_agent_event_data_s * request, sync_age
        int response_type = 0;
        RESUME_STATUS download_clicked = 0;
 
-       sync_agent_get_event_data_param(request, &response_type);
+       sync_agent_get_event_data_param_int(request, &response_type);
        _DEBUG_VERBOSE("DOWNLOAD BUTTON TYPE : %d\n", response_type);
 
        ret = DB_Open();
@@ -452,7 +467,7 @@ static int __event_callback_install(sync_agent_event_data_s * request, sync_agen
        int response_type = 0;
        RESUME_STATUS download_clicked = 0;
 
-       sync_agent_get_event_data_param(request, &response_type);
+       sync_agent_get_event_data_param_int(request, &response_type);
        _DEBUG_VERBOSE("INSTALL BUTTON TYPE : %d\n", response_type);
 
        ret = DB_Open();
@@ -501,8 +516,8 @@ static int __event_callback_set_interval(sync_agent_event_data_s * request, sync
        EVENT_RESPONSE ev_response = EVENT_RESPONSE_OK;
        int request_param = INTERVAL_CANCEL;
 
-       sync_agent_get_event_data_param(request, &request_param);
-       _DEBUG_VERBOSE("interval val from UI : %d\n", request_param);
+       sync_agent_get_event_data_param_int(request, &request_param);
+       _DEBUG_INFO("interval val from UI : %d\n", request_param);
 
        switch (request_param) {
        case RESPONSE_TYPE_REMINDER_INTERVAL_1_HOUR:
@@ -527,15 +542,21 @@ static int __event_callback_set_interval(sync_agent_event_data_s * request, sync
                break;
        }
 
-       _DEBUG_VERBOSE(" interval val in fumo engine : %d\n", request_param);
+       _DEBUG_INFO(" interval val in fumo engine : %d\n", request_param);
        if (request_param != INTERVAL_CANCEL) {
                ret = fumo_schedule_task_request(request_param);
                if (ret != DM_OK) {
                        goto error;
                }
-               _DEBUG_VERBOSE("fumo schedule task result  : %d\n", ret);
+               _DEBUG_INFO("fumo schedule task result  : %d\n", ret);
        } else {
-               _DEBUG_VERBOSE("fumo schedule cancel : %d \n", ret);
+/*
+               ret = fumo_schedule_task_request(request_param);
+               if (ret != DM_OK) {
+                       goto error;
+               }
+*/
+               _DEBUG_INFO("fumo schedule cancel : %d \n", ret);
        }
 
        //2012.11.20
@@ -560,6 +581,16 @@ static int __event_callback_account_registration(sync_agent_event_data_s * reque
 
        retvm_if((request) == NULL, 0, "request is NULL!!");
 
+   /*
+       DM_ERROR push_ret = DM_OK;
+       push_ret = register_fumo_ip_push();
+       if (push_ret == -1) {
+               _DEBUG_INFO("fail register fumo ip push : %d ", push_ret);
+       } else {
+               _DEBUG_INFO("success register fumo ip push : %d ", push_ret);
+       }
+   */
+
        //2012.11.20
        EVENT_RESPONSE ev_response = EVENT_RESPONSE_OK;
 
@@ -567,26 +598,51 @@ static int __event_callback_account_registration(sync_agent_event_data_s * reque
        //temp code
        int db_ret = 0;
        db_ret = sync_agent_open_agent();
-       _DEBUG_VERBOSE("OPEN DACI : %d", db_ret);
+       _DEBUG_INFO("OPEN DACI : %d", db_ret);
 
        ret = register_fota_account();
 
-       db_ret = sync_agent_close_agent();
-       _DEBUG_VERBOSE("CLOSE DACI : %d", db_ret);
-
        if (ret == 0) {
-               _DEBUG_VERBOSE("fail register fota account : %d ", ret);
+               _DEBUG_INFO("fail register fota account : %d ", ret);
                goto error;
        } else {
-               _DEBUG_VERBOSE("success register fota account : %d ", ret);
+               _DEBUG_INFO("success register fota account : %d ", ret);
+
+               char * str_version_url = NULL;
+               str_version_url = vconf_get_str(VERSION_URL_KEY);
+               if(str_version_url == NULL) {
+                       _DEBUG_ERROR("vconf_get_str[%s] failed", VERSION_URL_KEY);
+                       ret = EVENT_RESPONSE_FAIL;
+                       _INNER_FUNC_EXIT;
+                       goto error;
+               }
+               char * str_version_filename = NULL;
+               str_version_filename = vconf_get_str(VERSION_FILENAME_KEY);
+               if(str_version_filename == NULL) {
+                       _DEBUG_ERROR("vconf_get_str[%s] failed", VERSION_FILENAME_KEY);
+                       ret = EVENT_RESPONSE_FAIL;
+                       goto error;
+               }
+
+               int exist_version = -1;
+               //ret = register_fota_polling(str_version_url, str_version_filename, &exist_version);
+               _DEBUG_INFO("exist_version [%d]", exist_version);
+
        }
 
+       db_ret = sync_agent_close_agent();
+       _DEBUG_INFO("CLOSE DACI : %d", db_ret);
+
        //2012.11.20
        sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &ev_response);
 
        _INNER_FUNC_EXIT;
        return 0;
+
  error:
+       db_ret = sync_agent_close_agent();
+       _DEBUG_INFO("CLOSE DACI : %d", db_ret);
+
        //2012.11.20
        ev_response = EVENT_RESPONSE_FAIL;
        sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &ev_response);
@@ -625,7 +681,7 @@ static int __event_callback_get_profile(sync_agent_event_data_s * request, sync_
        sync_agent_dm_mo_error_e db_ret = SYNC_AGENT_DM_MO_SUCCESS;
        char *server_id = NULL;
 
-       sync_agent_get_event_data_param(request, &sv_type);
+       sync_agent_get_event_data_param_int(request, (int*) &sv_type);
        _DEBUG_VERBOSE("server type : %d\n", sv_type);
 
        db_ret = sync_agent_open_mo();
@@ -747,21 +803,21 @@ static int __event_callback_set_profile(sync_agent_event_data_s * request, sync_
                goto error;
        }
        //update 2012.11.20
-       sync_agent_get_event_data_param(request, &sv_type);
+       sync_agent_get_event_data_param_int(request, (int*) &sv_type);
        _DEBUG_VERBOSE("server profile type : %d", sv_type);
-       sync_agent_get_event_data_param(request, &(dmaccount->server_url));
+       sync_agent_get_event_data_param_str(request, &(dmaccount->server_url));
        _DEBUG_VERBOSE("server url : %s", (dmaccount->server_url));
-       sync_agent_get_event_data_param(request, &(dmaccount->server_id));
+       sync_agent_get_event_data_param_str(request, &(dmaccount->server_id));
        _DEBUG_VERBOSE("server id : %s", dmaccount->server_id);
-       sync_agent_get_event_data_param(request, &(dmaccount->server_pw));
+       sync_agent_get_event_data_param_str(request, &(dmaccount->server_pw));
        _DEBUG_VERBOSE("server_pw : %s", dmaccount->server_pw);
-       sync_agent_get_event_data_param(request, &(dmaccount->user_id));
+       sync_agent_get_event_data_param_str(request, &(dmaccount->user_id));
        _DEBUG_VERBOSE("user_id : %s", dmaccount->user_id);
-       sync_agent_get_event_data_param(request, &(dmaccount->user_pw));
+       sync_agent_get_event_data_param_str(request, &(dmaccount->user_pw));
        _DEBUG_VERBOSE("user_pw : %s", dmaccount->user_pw);
-       sync_agent_get_event_data_param(request, &(dmaccount->user_auth_type));
+       sync_agent_get_event_data_param_str(request, &(dmaccount->user_auth_type));
        _DEBUG_VERBOSE("user_auth_type : %s", dmaccount->user_auth_type);
-       sync_agent_get_event_data_param(request, &(dmaccount->server_auth_type));
+       sync_agent_get_event_data_param_str(request, &(dmaccount->server_auth_type));
        _DEBUG_VERBOSE("server_auth_type : %s", dmaccount->server_auth_type);
 
        get_Serverid(sv_type, &server_id);
@@ -806,7 +862,7 @@ static int __event_callback_reset_profile(sync_agent_event_data_s * request, syn
        EVENT_RESPONSE ev_response = EVENT_RESPONSE_OK;
        SERVICE_SERVER_TYPE sv_type = NO_ENGINE_TYPE;
 
-       sync_agent_get_event_data_param(request, &sv_type);
+       sync_agent_get_event_data_param_int(request, (int*) &sv_type);
        _DEBUG_VERBOSE("PROFILE TYPE : %d\n", sv_type);
 
        switch (sv_type) {
@@ -859,10 +915,10 @@ static int __event_callback_uic_alert(sync_agent_event_data_s * request, sync_ag
        */
        free_res_data(res_uic_data);
 
-       sync_agent_get_event_data_param(request, &response_ret);
+       sync_agent_get_event_data_param_int(request, (int*) &response_ret);
        _DEBUG_TRACE("response is %d", response_ret);
 
-       sync_agent_get_event_data_param(request, &type);
+       sync_agent_get_event_data_param_int(request, (int*) &type);
        _DEBUG_TRACE("uic type %d", type);
 
        /*alloc reponse data */
@@ -877,7 +933,7 @@ static int __event_callback_uic_alert(sync_agent_event_data_s * request, sync_ag
                case UIC_CONFIRMATION_TYPE:
                        break;
                case UIC_INPUT_TEXT_TYPE:{
-                               sync_agent_get_event_data_param(request, &input_text);
+                               sync_agent_get_event_data_param_str(request, &input_text);
                                _DEBUG_TRACE("input text %s", input_text);
 
                                res_uic_data->input_text = strdup(input_text);
@@ -885,7 +941,7 @@ static int __event_callback_uic_alert(sync_agent_event_data_s * request, sync_ag
                        break;
                case UIC_SINGLE_CHOICE_TYPE:
                case UIC_MULTIPLE_CHOICE_TYPE:{
-                               sync_agent_get_event_data_param(request, &count);
+                               sync_agent_get_event_data_param_int(request, &count);
                                _DEBUG_TRACE("count  is %d\n", count);
 
                                if (count != 0) {
@@ -893,7 +949,7 @@ static int __event_callback_uic_alert(sync_agent_event_data_s * request, sync_ag
                                        for (i = 0; i < count; ++i) {
                                                char *input = NULL;
                                                char *value = NULL;
-                                               sync_agent_get_event_data_param(request, &input);
+                                               sync_agent_get_event_data_param_str(request, &input);
                                                _DEBUG_TRACE(" choice : %s", input);
                                                if (input == NULL) {
                                                        input = strdup("NULL");
@@ -980,7 +1036,7 @@ static int __event_callback_set_fumo_config_wifi_only(sync_agent_event_data_s *
        int ret = 1;
        int wifi_only_param;
 
-       sync_agent_get_event_data_param(request, &wifi_only_param);
+       sync_agent_get_event_data_param_int(request, &wifi_only_param);
 
        sync_agent_open_agent();
        ret = set_wifi_only_config(wifi_only_param);
@@ -1011,20 +1067,20 @@ static int __event_callback_check_pin_code(sync_agent_event_data_s * request, sy
        CP_ERROR err = CP_ERROR_SUCCESS;
 
        int ext_id = 0;
-       sync_agent_get_event_data_param(request, &ext_id);
+       sync_agent_get_event_data_param_int(request, &ext_id);
        _DEBUG_VERBOSE("ext id : %d", ext_id);
 
        char *user_pin = NULL;
 
        int response_type = RESPONSE_TYPE_NONE;
-       sync_agent_get_event_data_param(request, &response_type);
+       sync_agent_get_event_data_param_int(request, &response_type);
        _DEBUG_VERBOSE("response type :  %d", response_type);
 
        int response_value = 0;
 
        if (response_type == RESPONSE_TYPE_OK) {
                _DEBUG_VERBOSE("check pin code !!");
-               sync_agent_get_event_data_param(request, &user_pin);
+               sync_agent_get_event_data_param_str(request, &user_pin);
                _DEBUG_VERBOSE("user pin : %s", user_pin);
 
                int is_correct = 0;
@@ -1098,7 +1154,7 @@ static int __event_add_dmacc(sync_agent_event_data_s * request, sync_agent_event
        EVENT_RESPONSE ev_response = EVENT_RESPONSE_OK;
        SERVICE_SERVER_TYPE sv_type = NO_ENGINE_TYPE;
 
-       sync_agent_get_event_data_param(request, &sv_type);
+       sync_agent_get_event_data_param_int(request, (int*) &sv_type);
        _DEBUG_VERBOSE("server type : %d\n", sv_type);
 
        db_ret = sync_agent_open_mo();
@@ -1108,7 +1164,7 @@ static int __event_add_dmacc(sync_agent_event_data_s * request, sync_agent_event
        _DEBUG_VERBOSE("dm status open : %d", db_ret);
 
        ret = DB_Begin_Transaction();
-       _DEBUG_VERBOSE("end transaction : %d", ret);
+       _DEBUG_VERBOSE("begin transaction : %d", ret);
 
        switch (sv_type) {
                //todo will change ipc refactoring
@@ -1187,7 +1243,7 @@ static int __event_remove_dmacc(sync_agent_event_data_s * request, sync_agent_ev
        EVENT_RESPONSE ev_response = EVENT_RESPONSE_OK;
        SERVICE_SERVER_TYPE sv_type = NO_ENGINE_TYPE;
 
-       sync_agent_get_event_data_param(request, &sv_type);
+       sync_agent_get_event_data_param_int(request, (int*) &sv_type);
        _DEBUG_VERBOSE("server type : %d\n", sv_type);
 
        //mo db
@@ -1394,12 +1450,12 @@ int noti_start(char *ui_mode)
        return _IPC_noti(IPC_NOTI_TYPE_0, NOTI_ENGINE_START, 0, ui_mode, NULL);
 }
 
-int noti_download()
+int noti_download(int file_size)
 {
        _EXTERN_FUNC_ENTER;
        _DEBUG_INFO("-----------------------------------------------------------------------noti_connect_to_server-------------------------------------------------------------------------------------");
        _EXTERN_FUNC_EXIT;
-       return _IPC_noti(IPC_NOTI_TYPE_0, NOTI_DOWNLOAD, 0, NULL, NULL);
+       return _IPC_noti(IPC_NOTI_TYPE_0, NOTI_DOWNLOAD, file_size, NULL, NULL);
 }
 
 int noti_install()
@@ -1426,6 +1482,14 @@ int noti_low_battery(char *battery_level)
        return _IPC_noti(IPC_NOTI_TYPE_0, NOTI_LOW_BATTERY, 0, battery_level, NULL);
 }
 
+int noti_update_result(int result)
+{
+       _EXTERN_FUNC_ENTER;
+       _DEBUG_INFO("-----------------------------------------------------------------------noti_update_result-------------------------------------------------------------------------------------");
+       _EXTERN_FUNC_EXIT;
+       return _IPC_noti(IPC_NOTI_TYPE_0, NOTI_UPDATE_RESULT, result, NULL, NULL);
+}
+
 int alert_uic_display(uic_data * uic_value)
 {
        _EXTERN_FUNC_ENTER;
@@ -1490,12 +1554,13 @@ int noti_memory_full(int file_size)
        return _IPC_noti(IPC_NOTI_TYPE_0, NOTI_MEMORY_FULL, file_size, 0, 0);
 }
 
-int noti_over_max_file_size()
+int noti_over_max_file_size(int file_size)
 {
        _EXTERN_FUNC_ENTER;
        _DEBUG_INFO("-----------------------------------------------------------------------noti_over_max_file_size-------------------------------------------------------------------------------------");
        _EXTERN_FUNC_EXIT;
-       return _IPC_noti(IPC_NOTI_TYPE_0, NOTI_OVER_BIG_SIZE, 0, 0, 0);
+//     return _IPC_noti(IPC_NOTI_TYPE_0, NOTI_OVER_BIG_SIZE, 0, 0, 0);
+       return _IPC_noti(IPC_NOTI_TYPE_0, NOTI_OVER_BIG_SIZE, file_size, 0, 0);
 }
 
 static int _IPC_noti(int noti_type, int noti_id, int input_param, char *input_string, void *user_data)
@@ -1564,6 +1629,10 @@ static int _IPC_noti(int noti_type, int noti_id, int input_param, char *input_st
        case NOTI_UNKNOWN:
                break;
        case NOTI_DOWNLOAD:     //Type 0
+               {
+                       _DEBUG_TRACE("download file size : %d", input_param);
+                       sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &input_param);
+               }
                break;
        case NOTI_INSTALL:      //Type 0
                break;
@@ -1612,7 +1681,8 @@ static int _IPC_noti(int noti_type, int noti_id, int input_param, char *input_st
                break;
        case NOTI_OVER_BIG_SIZE:        //Type 0
                {
-                       _DEBUG_TRACE("over max size");
+                       _DEBUG_TRACE("over max size : %d", input_param);
+                       sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &input_param);
                }
                break;
        case NOTI_LOW_BATTERY:  //Type 0
@@ -1629,6 +1699,12 @@ static int _IPC_noti(int noti_type, int noti_id, int input_param, char *input_st
                        sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, input_string);
                }
                break;
+       case NOTI_UPDATE_RESULT:
+               {
+                       _DEBUG_TRACE("fota update result : %d", input_param);
+                       sync_agent_append_event_data_param(noti, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &input_param);
+               }
+               break;
        case NOTI_ALERT_DISPLAY:        //Type 2, response event
        case NOTI_ALERT_CONFIRMATION:   //Type 2, response event
        case NOTI_ALERT_INPUTTEXT:      //Type 2, response event
index 256840b..7aa97e8 100755 (executable)
@@ -24,6 +24,9 @@
 #include <dbus/dbus.h>
 //#include <appcore-common.h>
 
+#include <vconf.h>
+#include <wait.h>
+
 /*sync-agent*/
 #include <sync_agent.h>
 
@@ -160,6 +163,83 @@ static void _agent_daemon_signal_handler(int signo, siginfo_t * info, void *p_co
        _EXTERN_FUNC_EXIT;
 }
 
+static int _system_command(const char *command)
+{
+       _EXTERN_FUNC_ENTER;
+
+       int pid = 0, status = 0;
+       char *const environ[] = { NULL };
+
+       retvm_if((command) == NULL, -1, "command is NULL!!");
+
+       pid = fork();
+       if (pid == -1) {
+               _DEBUG_INFO("ERROR : fork failed to create a process\n");
+               _EXTERN_FUNC_EXIT;
+               return -1;
+
+       } else if (pid == 0) {
+               char *argv[4];
+               argv[0] = "sh";
+               argv[1] = "-c";
+               argv[2] = (char *)command;
+               argv[3] = 0;
+
+               execve("/bin/sh", argv, environ);
+               abort();
+       } else {
+               do {
+                       if (waitpid(pid, &status, 0) == -1) {
+                               if (errno != EINTR) {
+                                       return -1;
+                               }
+
+                       } else {
+                               _EXTERN_FUNC_EXIT;
+                               return status;
+                       }
+
+               } while (1);
+       }
+       _EXTERN_FUNC_EXIT;
+       return -1;
+}
+
+static void _confversion_check()
+{
+   _INNER_FUNC_ENTER;
+       char *value = NULL;
+       value = vconf_get_str("db/SyncML/oma-dm-service/DevManagement/ConfVersion");
+
+       if (value != NULL) {
+               if (strcmp(value, "") == 0) {
+                       if (value != NULL)
+                               free(value);
+                       goto failed;
+               } else if(strncmp(value, "0.1", strlen("0.1")) == 0) {
+                  _DEBUG_INFO("ConfVersion is same value existed!");
+               } else {
+                       goto failed;
+               }
+       } else {
+                       goto failed;
+       }
+
+       _INNER_FUNC_EXIT;
+       return ;
+
+ failed:
+   _DEBUG_INFO("ConfVersion is not same value existed !!");
+   int ret = _system_command("/usr/share/oma-dm-cfg/csc-setting/change_csc_value.sh");
+   if (ret != -1) {
+               _DEBUG_INFO("success");
+   } else {
+               _DEBUG_INFO("fail");
+   }
+   _INNER_FUNC_EXIT;
+       return ;
+}
+
 int main()
 {
        _EXTERN_FUNC_ENTER;
@@ -177,7 +257,7 @@ int main()
 //      _DEBUG_INFO("[TIME] 2. main : %d msec\n", appcore_measure_time());
 //      appcore_measure_start();
        xmlInitParser();
-
+   _confversion_check();
        _register_dbus_service();
 
        init_error = sync_agent_init("/usr/share/oma-dm-cfg/fw-init/omadm_fw_config.xml");
index 5278757..d742414 100755 (executable)
@@ -409,7 +409,7 @@ void dmacc_define_lawmo() {
        sync_agent_dm_mo_node_type_e  mo_node_type3 = SYNC_AGENT_DM_MO_NODE_LEAF;
 
        char *mo_full_path4 = DM_DEVINFO_MOD;
-       char *value4 = "GT-I9500";
+       char *value4 = "GT-I8800";
        sync_agent_dm_mo_node_type_e  mo_node_type4 = SYNC_AGENT_DM_MO_NODE_LEAF;
 
        char *mo_full_path5 = DM_DEVINFO_DMV;
@@ -486,7 +486,7 @@ void dmacc_define_lawmo() {
                sync_agent_dm_mo_node_type_e  mo_node_type9 = SYNC_AGENT_DM_MO_NODE_LEAF;
 
                char *mo_full_path10 =DM_DEVINFO_HWV;
-               char *value10 ="GT-I9500";
+               char *value10 ="GT-I8800";
                sync_agent_dm_mo_node_type_e  mo_node_type10 = SYNC_AGENT_DM_MO_NODE_LEAF;
 
                char *mo_full_path11 =DM_DEVINFO_LRGOBJ;
@@ -1410,6 +1410,9 @@ DM_ERROR get_server_type(char *server_id, int *server_type)
        err = sync_agent_get_serverinfo(&server_info);
        if (err != SYNC_AGENT_DM_MO_SUCCESS) {
                _DEBUG_INFO("get server info : %d", err);
+               if(server_info != NULL) {
+                       free(server_info);
+               }
                return COMMON_ERR_IS_NULL;
        }
 
index 22a03e1..fc7afd7 100755 (executable)
@@ -530,9 +530,9 @@ DM_ERROR replace_mo(char *mo_full_path, char *value, char *prop_value, char *con
        err_code = sync_agent_update_mo_item(mo_node);
        //err_code = sync_agent_update_mo(mo_node);
        if (err_code == SYNC_AGENT_DM_MO_SUCCESS) {
-               _DEBUG_INFO(" Success to sync_agent_update_mo()\n");
+               _DEBUG_INFO(" Success to sync_agent_update_mo_item()\n");
        } else {
-               _DEBUG_INFO("  Failed to sync_agent_update_mo()\n");
+               _DEBUG_INFO("  Failed to sync_agent_update_mo_item()\n");
                goto error;
        }
 
index e8fafeb..e75e252 100755 (executable)
@@ -148,8 +148,13 @@ static DM_ERROR _generate_setupphase_msg(Session ** session, char *pServer_id, c
        int isFinal = 1;
 
        /*Client init */
-       if (pSession_id == NULL)
-               pSession_id = g_strdup_printf("%ld", time(NULL));
+       if (pSession_id == NULL) {
+               //pSession_id = g_strdup_printf("%ld", time(NULL));
+               pSession_id = g_strdup_printf("%ld", time(NULL)%10000);
+               _DEBUG_INFO("pSession_id [%s]", pSession_id);
+       } else {
+               _DEBUG_INFO("pSession_id [%s]", pSession_id);
+       }
 
        char *sourceUrl = NULL;
        char *client_id = NULL;
@@ -165,7 +170,7 @@ static DM_ERROR _generate_setupphase_msg(Session ** session, char *pServer_id, c
        if (nextNonce == NULL) {
                (nextNonce) = strdup(ELEMENT_DEFAULT_CLIENT_NONCE);
        }
-
+       _DEBUG_INFO("pServer_id [%s] , pSession_id [%s]", pServer_id, pSession_id);
        if ((*session) == NULL) {
                ret = create_syncml_session(VERSION_12, PROTOCOL_TYPE_DM, pServer_id, client_id, pSession_id, sourceUrl, targetUrl, session);
                if (ret != DM_OK)
@@ -206,6 +211,7 @@ static DM_ERROR _generate_setupphase_msg(Session ** session, char *pServer_id, c
        /*SyncBody */
        /* create alert */
        AlertType syncType;
+       _DEBUG_INFO("session_type [%d]", session_type);
        switch (session_type) {
        case 0:         //IP_PUSH_EVENT
        case 1:         //WAP_PUSH_EVENT
@@ -233,6 +239,15 @@ static DM_ERROR _generate_setupphase_msg(Session ** session, char *pServer_id, c
                goto error;
        putCmdIntoList(&commands, &commands_last, pReplaceCommand);
 
+
+
+       /* create generic alert for polling & user init  */
+       //Command *pAlertDownloadUpdateCommand = NULL;
+       //Item *pItem = NULL;
+       char *rSourceUrl = NULL;
+       char *format = NULL;
+       char *contenttype = NULL;
+       char *data = NULL;
        /*create SyncML */
        SyncML *pSyncML = NULL;
        ret = create_syncml(pSyncHdr, NULL, commands, isFinal, &pSyncML);
@@ -268,12 +283,27 @@ static DM_ERROR _generate_setupphase_msg(Session ** session, char *pServer_id, c
 
        (*session)->isSendingfinal = isFinal;
 
+
+       str_free(&rSourceUrl);
+       str_free(&format);
+       str_free(&contenttype);
+       str_free(&data);
+
+
        _INNER_FUNC_EXIT;
        return ret;
 
  error:
 
        _DEBUG_TRACE(" error : %d\n", ret);
+
+
+       str_free(&rSourceUrl);
+       str_free(&format);
+       str_free(&contenttype);
+       str_free(&data);
+
+
        _INNER_FUNC_EXIT;
        return ret;
 }
@@ -565,6 +595,7 @@ static DM_ERROR _generate_management_msg(Session ** session, char **msg, unsigne
        pSyncML = NULL;
 
        _DEBUG_TRACE(" error :%d\n", ret);
+       syncml_binder_terminate(pBinder);
 
        _INNER_FUNC_EXIT;
        return ret;
@@ -796,9 +827,11 @@ static DM_ERROR _generate_generic_alert(Session ** session, char *pServer_id, ch
                        pSession_id = (*session)->sessionID;
                }
        } else if (pSession_id == NULL) {
-               pSession_id = g_strdup_printf("%ld", time(NULL));
+               //pSession_id = g_strdup_printf("%ld", time(NULL));
+               pSession_id = g_strdup_printf("%ld", time(NULL)%10000);
+               _DEBUG_INFO("generate from time -> pSession_id [%s]", pSession_id);
        }
-
+       _DEBUG_INFO("pSession_id [%s]", pSession_id);
        ret = __get_dmaccInfo(pServer_id, &client_id, &client_pwd, &sourceUrl, &targetUrl, &isBase64, &nextNonce);
 
        if (ret != DM_OK)
@@ -1285,6 +1318,12 @@ DM_ERROR setup_phase(int transportType, Session ** session, char *pServer_id, ch
                //it can be only happend when server required MD5 authentication(we send basic authentication every time by default)
                msg = NULL;
                msg_size = 0;
+               if( pSession_id != NULL ) {
+                       _DEBUG_INFO("pSession_id [%s]", pSession_id);
+               } else {
+                       _DEBUG_INFO("pSession_id is NULL");
+               }
+
                ret = _generate_setupphase_msg(session, pServer_id, pSession_id, session_type, &msg, &msg_size);
                if (ret != DM_OK)
                        goto error;
@@ -1292,7 +1331,7 @@ DM_ERROR setup_phase(int transportType, Session ** session, char *pServer_id, ch
                file_count++;
                char file_name[1000];
                /*debuging */
-               snprintf(file_name, (int)sizeof(file_name), "/opt/data/oma-dm-cfg/packet/wbxml_send_msg_%d.wbxml", file_count);
+               snprintf(file_name, (int)sizeof(file_name), "/opt/data/oma-dm-cfg/packet/wbxml_msg_%d_send.wbxml", file_count);
                _DEBUG_INFO("file name : %s", file_name);
                sync_agent_write_whole_file(file_name, msg, msg_size, true);
 
@@ -1302,7 +1341,8 @@ DM_ERROR setup_phase(int transportType, Session ** session, char *pServer_id, ch
                if (ret != DM_OK)
                        goto error;
                /*debuging */
-               snprintf(file_name, (int)sizeof(file_name), "/opt/data/oma-dm-cfg/packet/wbxml_receivce_msg_%d.wbxml", file_count);
+               file_count++;
+               snprintf(file_name, (int)sizeof(file_name), "/opt/data/oma-dm-cfg/packet/wbxml_msg_%d_receivced.wbxml", file_count);
                _DEBUG_INFO("file name : %s", file_name);
                sync_agent_write_whole_file(file_name, recv_msg, recv_msg_size, true);
 
@@ -1361,7 +1401,7 @@ DM_ERROR management_phase(int transportType, Session ** session, char *pSession_
                /*for debuging */
                file_count++;
                char file_name[1000];
-               snprintf(file_name, (int)sizeof(file_name), "/opt/data/oma-dm-cfg/packet/wbxml_management_send_msg_%d.wbxml", file_count);
+               snprintf(file_name, (int)sizeof(file_name), "/opt/data/oma-dm-cfg/packet/wbxml_msg_%d_management_send.wbxml", file_count);
                _DEBUG_INFO("file name : %s", file_name);
                sync_agent_write_whole_file(file_name, msg, msg_size, true);
 
@@ -1370,7 +1410,8 @@ DM_ERROR management_phase(int transportType, Session ** session, char *pSession_
                        goto error;
 
                /*for debuging */
-               snprintf(file_name, (int)sizeof(file_name), "/opt/data/oma-dm-cfg/packet/wbxml_management_receivce_msg_%d.wbxml", file_count);
+               file_count++;
+               snprintf(file_name, (int)sizeof(file_name), "/opt/data/oma-dm-cfg/packet/wbxml_msg_%d_management_receivced.wbxml", file_count);
                _DEBUG_INFO("file name : %s", file_name);
                sync_agent_write_whole_file(file_name, recvMsg, recvMsg_size, true);
 
@@ -1428,6 +1469,7 @@ DM_ERROR generic_alert(int transportType, Session ** session, char *pServer_id,
                if (ret != DM_OK)
                        goto error;
 
+               file_count++;
                snprintf(file_name, (int)sizeof(file_name), "/opt/data/oma-dm-cfg/packet/wbxml_generic_receivce_msg_%d.wbxml", file_count);
                _DEBUG_INFO("file name : %s", file_name);
                sync_agent_write_whole_file(file_name, recvMsg, recvMsg_size, true);
old mode 100644 (file)
new mode 100755 (executable)
index e3cad3e..14dc5af
@@ -84,7 +84,7 @@ int NA_http_header_binder(char *accType, char *loc_uri, char *sessionid, int isH
                        return 0;
                }
                useragent->key = "User-Agent";
-               useragent->value = "Samsung electronics GT-I9500 SyncML_DM Client";
+               useragent->value = "Samsung electronics GT-I8800 SyncML_DM Client";
                *list = g_list_append(*list, useragent);
                _DEBUG_INFO(" user agent\n");
 
old mode 100644 (file)
new mode 100755 (executable)
index 8f38723..ba442d4
@@ -85,7 +85,11 @@ DM_ERROR create_location(const char *locURI, const char *locName, Location ** pL
        DM_ERROR ret = DM_OK;
 
        retvm_if((locURI) == NULL, COMMON_ERR_INTERNAL_NO_MEMORY, "locURI is NULL!!");
-       _DEBUG_INFO("start with locURI = %s, locName = %s\n", locURI, locName);
+       _DEBUG_INFO("start with locURI = %s", locURI);
+
+       if(locName != NULL){
+               _DEBUG_INFO("locName = %s", locName);
+       }
 
        *pLocation = (Location *) calloc(1, sizeof(Location) + 1);
        if (*pLocation == NULL) {
old mode 100644 (file)
new mode 100755 (executable)
index acc17d5..c4c57fc
@@ -743,8 +743,18 @@ static DM_ERROR _receive_changes_cmd(Session * session, Command * command)
                                                _DEBUG_TRACE("ACL PERMISSION");
                                                ret = check_mo_scope(targetUrl);
                                                if (ret != DM_OK) {
-                                                       resultStatus = ret;
-                                                       goto error;
+                                                       //resultStatus = ret;
+                                                       //goto error;
+                                                       ret = replace_itemtomo(item); // Permanent node. But Accesstype is allow.
+                                                       if (ret != DM_OK) {
+                                                               goto error;
+                                                       } else { // Permanent node. But device need execution about replace cmd.
+                                                               char *server_id = NULL;
+                                                               targetUrl = get_location_locuri(item->target);
+                                                               server_id = session->pServer_id;
+                                                               //ret = engine_replace_start(server_id, targetUrl, &(session->service_engine_id), &resultStatus, item);
+                                                               //resultStatus = DM_ERR_COMMAND_NOT_ALLOWED;
+                                                       }
                                                } else {
                                                        ret = replace_itemtomo(item);
                                                        if (ret != DM_OK)
old mode 100644 (file)
new mode 100755 (executable)
index 120e99d..b271680
@@ -41,6 +41,7 @@ DM_ERROR syncml_objectbinder(SyncML * pSyncML, char **msg, unsigned int *msg_siz
        retvm_if((pSyncML) == NULL, COMMON_ERR_INTERNAL_NOT_DEFINED, "pSyncML is NULL!!");
 
        sync_agent_pb_protocol_binder_function_set_s *pBinder_function_set = NULL;
+       sync_agent_pb_protocol_binder_info_s *pBinder = NULL;
 
        sync_agent_pb_error_e err = init_syncml_binder_function_set(&pBinder_function_set);
        if (err != SYNC_AGENT_PB_RETURN_OK) {
@@ -48,7 +49,6 @@ DM_ERROR syncml_objectbinder(SyncML * pSyncML, char **msg, unsigned int *msg_siz
                goto error;
        }
 
-       sync_agent_pb_protocol_binder_info_s *pBinder = NULL;
        pBinder = syncml_binder_init(pBinder, SYNC_AGENT_PB_ENCODING_WBXML_12, false, true, pBinder_function_set);
 
        err = syncml_binder_append(pBinder, PE_SYNCML_START, NULL);
@@ -187,6 +187,11 @@ DM_ERROR syncml_objectbinder(SyncML * pSyncML, char **msg, unsigned int *msg_siz
 
  error:
        _DEBUG_INFO("error end  %d \n", ret);
+
+       if(pBinder != NULL) {
+               syncml_binder_terminate(pBinder);
+       }
+
        _EXTERN_FUNC_EXIT;
        return ret;
 }
index 8a05650..ae1e4b9 100755 (executable)
 #define  CSC_VCONF_KEY_SYNCMLDM_SERVPWD                                "db/SyncML/oma-dm-service/DevManagement/%d/ServPwd"
 #define  CSC_VCONF_KEY_SYNCMLDM_PASSWORD                               "db/SyncML/oma-dm-service/DevManagement/%d/Password"
 
+#define  CSC_VCONF_KEY_SYNCMLDM_USERNAME                               "db/SyncML/oma-dm-service/DevManagement/%d/UserName"
+#define  CSC_VCONF_KEY_SYNCMLDM_CLIENTPWD                              "db/SyncML/oma-dm-service/DevManagement/%d/ClientPwd"
+
+
 //#define CSC_GCF_SERVER_NUM                                                                   3
 #define CSC_GCF_SERVER_NUM                                                                     1
 
 #define ALTER_SYNCMLDM_SERVID "RSate"
 #define ALTER_SYNCMLDM_SERVNONCE "12345"
 #define ALTER_SYNCMLDM_SERVPORT 80
-#define ALTER_SYNCMLDM_SERVPWD "T1NQIERNIFNlcnZlcg=="
+#define ALTER_SYNCMLDM_SERVPWD "RSatepass"
 #define ALTER_SYNCMLDM_PASSWORD ""
 
+#define ALTER_SYNCMLDM_USERNAME "RSuser"
+#define ALTER_SYNCMLDM_CLIENTPWD "RSpass"
+
 #define SERVER_NUM                                                                                                             1
 
 static int _get_index(const char *name);
@@ -107,7 +114,8 @@ EXPORT_API int sync_agent_plugin_get_mo_value(const char *mo_full_path, const ch
        retvm_if((mo_full_path) == NULL, -1, "mo_full_path is NULL!!");
        retvm_if((mo_name) == NULL, -1, "mo_name is NULL!!");
 
-       _DEBUG_INFO("mo_name : %s", mo_name);
+       _DEBUG_INFO("dmacc-gcf mo_full_path : %s", mo_full_path);
+       _DEBUG_INFO("dmacc-gcf mo_name : %s", mo_name);
        *mo_value = NULL;
 
        int n_index = _get_index(ALTER_SYNCMLDM_ACCNAME);
@@ -178,10 +186,13 @@ EXPORT_API int sync_agent_plugin_get_mo_value(const char *mo_full_path, const ch
                }
 
        } else if (!strcmp(mo_full_path, "./DMAcc/gcf/AppAuth/ServerAppAuth/AAuthSecret")) {
-               /* *mo_value = __get_MO_Value_STR(CSC_VCONF_KEY_SYNCMLDM_SERVPWD, nIndex);
-                  if((*mo_value) == NULL) {
-                  *mo_value = strdup(ALTER_SYNCMLDM_SERVPWD);
-                  } */
+               /* for gcf - start */
+               *mo_value = _get_mo_value_str(CSC_VCONF_KEY_SYNCMLDM_SERVPWD, n_index);
+               if((*mo_value) == NULL) {
+                       *mo_value = strdup(ALTER_SYNCMLDM_SERVPWD);
+               }
+               /* for gcf - end */
+               /*
                char *device_id = NULL;
                if (func_get_dev_info != 0) {
                        func_get_dev_info(2, "DevID", &device_id);
@@ -212,7 +223,7 @@ EXPORT_API int sync_agent_plugin_get_mo_value(const char *mo_full_path, const ch
 
                free(device_id);
                free(server_id);
-
+               */
        } else if (!strcmp(mo_full_path, "./DMAcc/gcf/AppAuth/ServerAppAuth/AAuthData")) {
                *mo_value = _get_mo_value_str(CSC_VCONF_KEY_SYNCMLDM_SERVNONCE, n_index);
                if ((*mo_value) == NULL) {
@@ -243,6 +254,14 @@ EXPORT_API int sync_agent_plugin_get_mo_value(const char *mo_full_path, const ch
                }
 
        } else if (!strcmp(mo_full_path, "./DMAcc/gcf/AppAuth/ClientAppAuth/AAuthName")) {
+               /* for gcf - start */
+               *mo_value = _get_mo_value_str(CSC_VCONF_KEY_SYNCMLDM_USERNAME, n_index);
+               if ((*mo_value) == NULL) {
+                       *mo_value = strdup(ALTER_SYNCMLDM_USERNAME);
+                       _set_mo_value_str(CSC_VCONF_KEY_SYNCMLDM_USERNAME, n_index, ALTER_SYNCMLDM_USERNAME);
+               }
+               /* for gcf - end */
+               /*
                char *device_id = NULL;
                if (func_get_dev_info != NULL) {
                        func_get_dev_info(2, "DevID", &device_id);
@@ -268,10 +287,16 @@ EXPORT_API int sync_agent_plugin_get_mo_value(const char *mo_full_path, const ch
 
                free(device_id);
                free(server_id);
-
+               */
                /* *mo_value = strdup("IMEI:357584040054001"); */
        } else if (!strcmp(mo_full_path, "./DMAcc/gcf/AppAuth/ClientAppAuth/AAuthSecret")) {
-
+               /* for gcf - start */
+               *mo_value = _get_mo_value_str(CSC_VCONF_KEY_SYNCMLDM_CLIENTPWD, n_index);
+               if((*mo_value) == NULL) {
+                       *mo_value = strdup(ALTER_SYNCMLDM_CLIENTPWD);
+               }
+               /* for gcf - end */
+               /*
                char *device_id = NULL;
                if (func_get_dev_info != NULL) {
                        func_get_dev_info(2, "DevID", &device_id);
@@ -292,7 +317,7 @@ EXPORT_API int sync_agent_plugin_get_mo_value(const char *mo_full_path, const ch
 
                free(device_id);
                free(server_id);
-
+               */
        } else if (!strcmp(mo_full_path, "./DMAcc/gcf/AppAuth/ClientAppAuth/AAuthData")) {
                *mo_value = _get_mo_value_str(CSC_VCONF_KEY_SYNCMLDM_CLIENTNONCE, n_index);
                if ((*mo_value) == NULL) {
@@ -318,7 +343,7 @@ EXPORT_API void sync_agent_set_function_get_devinfo_plugin(sync_agent_get_devinf
 
        _EXTERN_FUNC_ENTER;
 }
-
+/*
 static int _system_command(const char *command)
 {
        _EXTERN_FUNC_ENTER;
@@ -360,6 +385,7 @@ static int _system_command(const char *command)
        _EXTERN_FUNC_EXIT;
        return -1;
 }
+*/
 
 static int _get_index(const char *name)
 {
@@ -368,17 +394,17 @@ static int _get_index(const char *name)
        int n_acc_count = 0;
        if (vconf_get_int(CSC_VCONF_KEY_SYNCMLDM_NBFIELD, &n_acc_count)) {
                _DEBUG_TRACE("vconf_get_int FAIL");
-               ////            return -1;
-               //n_acc_count =ALTER_SYNCMLDM_NBFIELD;
-               //_set_mo_value_int(CSC_VCONF_KEY_SYNCMLDM_NBFIELD, CSC_GCF_SERVER_NUM, ALTER_SYNCMLDM_NBFIELD);
+               //            return -1;
+               n_acc_count =ALTER_SYNCMLDM_NBFIELD;
+               _set_mo_value_int(CSC_VCONF_KEY_SYNCMLDM_NBFIELD, CSC_GCF_SERVER_NUM, ALTER_SYNCMLDM_NBFIELD);
 
                //////// CSC don't include vconf value.
-               int ret = _system_command("/usr/share/oma-dm-cfg/csc-setting/change_csc_value.sh");
-               if (ret != -1) {
-                       _DEBUG_INFO("success");
-               } else {
-                       _DEBUG_INFO("fail");
-               }
+               //int ret = _system_command("/usr/share/oma-dm-cfg/csc-setting/change_csc_value.sh");
+               //if (ret != -1) {
+               //      _DEBUG_INFO("success");
+               //} else {
+               //      _DEBUG_INFO("fail");
+               //}
                n_acc_count = ALTER_SYNCMLDM_NBFIELD;
        }
 
index 9543039..59714c5 100755 (executable)
@@ -35,7 +35,6 @@
 #define LOG_TAG        "PLUGIN_DEVICE_SLP_DM"
 #endif
 
-#define DELTA_FILE "delta_hash.txt"
 
 static sync_agent_execute_dev_cb func_execute_dev_function_common = 0;
 
@@ -50,8 +49,6 @@ static int _execute_dev_wipe();
 static sync_agent_dev_return_e __convert_service_err_to_common_error(int service_err);
 /*static int __find_file_list(const char *folder_path, GSList **file_list);*/
 static int ___find_file(const char *folder_path, const char **file_path);
-static int ___check_filename_md5(char *folder_path, char *file_buffer);
-static int ___check_fimware_delta_validation(char *save_folder);
 static int __control_fimware_delta_file(int memory_type);
 
 static int ___get_download_save_folder(int memory_type, char **download_folder, char **save_folder);
@@ -154,14 +151,22 @@ static int _execute_dev_fota_flag(int memory_type)
        }
        _DEBUG_TRACE("control firmware delta file : %d \n", service_ret);
 
-       service_ret = slp_device_ctrl_set_fota_flag();
-       if (service_ret != 0) {
-               _DEBUG_TRACE("slp_device_ctrl_set_FOTA_flag() Fail");
+       int try_count = 0;
+       for( try_count = 0 ; try_count < 5 ; try_count++) {
+               service_ret = slp_device_ctrl_set_fota_flag();
+               if (service_ret != 0) {
+                       _DEBUG_TRACE("slp_device_ctrl_set_FOTA_flag() Fail");
+                       usleep(400000);
+               } else {
+                       _DEBUG_TRACE("slp_device_ctrl_set_FOTA_flag() Success");
+                       _INNER_FUNC_EXIT;
+                       return __convert_service_err_to_common_error(1);
+               }
        }
 
  error:
        _INNER_FUNC_EXIT;
-       return __convert_service_err_to_common_error(service_ret);
+       return __convert_service_err_to_common_error(0);
 }
 
 static int _execute_dev_fota_update_result(int *plugin_err)
@@ -308,111 +313,6 @@ static int ___find_file(const char *folder_path, const char **file_path)
        return ret;
 }
 
-static int ___check_filename_md5(char *folder_path, char *file_buffer)
-{
-       _INNER_FUNC_ENTER;
-       int ret = 1;
-
-       retvm_if((folder_path) == NULL, -1, "folder_path is NULL!!");
-       retvm_if((file_buffer) == NULL, -1, "file_buffer is NULL!!");
-
-       _DEBUG_VERBOSE(" check_file_folder : %s", folder_path);
-       _DEBUG_VERBOSE(" check_file : %s", file_buffer);
-
-       bool isSame = false;
-       char *check_segment = NULL;
-       char *find_file_name = NULL;
-       unsigned char *find_md5_word = NULL;
-       char *file_path = NULL;
-
-       GSList *filename_md5 = NULL;
-       GSList *filename_md5_iter = NULL;
-
-       const char *delimiter = ":\t\n ";
-       /*check_segment = strtok(file_buffer, ":\t\n "); */
-       check_segment = strtok(file_buffer, delimiter);
-       _DEBUG_VERBOSE(" check_segment : %s", check_segment);
-       filename_md5 = g_slist_append(filename_md5, check_segment);
-
-       while (check_segment != NULL) {
-               /*check_segment = strtok(NULL, ":\t\n "); */
-               check_segment = strtok(NULL, delimiter);
-               if (check_segment == NULL)
-                       break;
-               filename_md5 = g_slist_append(filename_md5, check_segment);
-
-               _DEBUG_VERBOSE(" check file : %s", check_segment);
-       }
-
-       for (filename_md5_iter = filename_md5; filename_md5_iter != NULL; filename_md5_iter = g_slist_next(filename_md5_iter)) {
-               if ((filename_md5_iter->data) == NULL) {
-                       ret = -1;
-                       goto error;
-               }
-
-               find_file_name = (char *)(filename_md5_iter->data);
-               filename_md5_iter = g_slist_next(filename_md5_iter);
-               find_md5_word = (unsigned char *)(filename_md5_iter->data);
-               _DEBUG_VERBOSE(" find_file_name : %s, find_md5 : %s", find_file_name, find_md5_word);
-
-               file_path = g_strdup_printf("%s/%s", folder_path, find_file_name);
-               ret = sync_agent_is_existing_fs(file_path);
-               if (ret != 1) {
-                       goto error;
-               }
-
-               ret = sync_agent_file_md5_validation(file_path, (char *)find_md5_word, &isSame);
-               if (ret != 1 || (ret == 1 && isSame == false))
-                       goto error;
-       }
-
-       _INNER_FUNC_EXIT;
-       return ret;
- error:
-       _DEBUG_VERBOSE(" end error : %d", ret);
-       _INNER_FUNC_EXIT;
-       return ret;
-}
-
-static int ___check_fimware_delta_validation(char *save_folder)
-{
-       _INNER_FUNC_ENTER;
-
-       retvm_if((save_folder) == NULL, -1, "save_folder is NULL!!");
-
-       int ret = 0;
-       char *required_contents = NULL;
-       unsigned long required_length = 0;
-       char *file_path = NULL;
-       bool isFinal;
-
-       file_path = g_strdup_printf("%s/%s", save_folder, DELTA_FILE);
-       _DEBUG_VERBOSE(" file_path : %s", file_path);
-
-       ret = sync_agent_read_whole_file(file_path, &required_contents, &required_length);
-       if (ret != 1)
-               goto error;
-       _DEBUG_VERBOSE(" file read is %d, required_length is %d ", ret, required_length);
-       _DEBUG_VERBOSE(" file read is %d, isFinal is %d ", ret, isFinal);
-       _DEBUG_VERBOSE(" file content is %s ", required_contents);
-
-       ret = ___check_filename_md5(save_folder, required_contents);
-       if (ret != 1)
-               goto error;
-
-       ret = sync_agent_free_file(&required_contents);
-       if (ret != 1)
-               goto error;
-
-       _INNER_FUNC_EXIT;
-       return ret;
-
- error:
-
-       _DEBUG_VERBOSE(" end error : %d \n", ret);
-       _INNER_FUNC_EXIT;
-       return ret;
-}
 
 static int __control_fimware_delta_file(int memory_type)
 {
@@ -441,11 +341,6 @@ static int __control_fimware_delta_file(int memory_type)
        } else {
                _DEBUG_VERBOSE(" Success to call sync_agent_uncompress()");
        }
-
-       ret = ___check_fimware_delta_validation(save_folder);
-       if (ret != 1)
-               goto error;
-
        int fs_error;
        fs_error = sync_agent_empty_directory_contents(download_folder);
 
index 5520214..a856d2b 100755 (executable)
@@ -129,6 +129,8 @@ int slp_device_ctrl_get_fota_update_result()
                _DEBUG_INFO("malloc fail \n");
                _EXTERN_FUNC_EXIT;
                return 400;
+       } else {
+               memset(str_result, 0, lSize+1);
        }
 
        result = fread(str_result, 1, lSize, file_des);
index 074ee4d..ab5b33a 100755 (executable)
@@ -87,7 +87,15 @@ char *slp_device_info_get_kernel_version()
        }
 
        struct utsname buf;
-       uname(&buf);
+       int uname_result = 0;
+       uname_result = uname(&buf);
+       if(uname_result != 0 ) {
+               snprintf(kernel_version, _D_SIZE_128_ - 1, "%s.%s", "K", "3.4.5");
+
+               _DEBUG_INFO("uname failed - kernel_version [%s]", kernel_version);
+               _EXTERN_FUNC_EXIT;
+               return kernel_version;          
+       }
 
        snprintf(kernel_version, _D_SIZE_128_ - 1, "%s.%s", "K", buf.release);