From 7e2c135b772eac67642da2c92a12e98e1a17d26f Mon Sep 17 00:00:00 2001 From: jomui Date: Tue, 6 Sep 2016 10:59:10 +0900 Subject: [PATCH 01/16] upgrade script Signed-off-by: jomui Change-Id: I880537d0b7252d59954fa5654e48918ccee8c930 --- packaging/geofence-server.spec | 7 ++++++- scripts/geofence-server_upgrade.sh | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 scripts/geofence-server_upgrade.sh diff --git a/packaging/geofence-server.spec b/packaging/geofence-server.spec index 3855e92..728ef7b 100644 --- a/packaging/geofence-server.spec +++ b/packaging/geofence-server.spec @@ -11,6 +11,8 @@ Source1: geofence-server.service ExcludeArch: %{arm} %ix86 x86_64 %endif +%define upgrade_script_path /usr/share/upgrade/scripts/ + Requires(post): sqlite Requires(post): lbs-server BuildRequires: cmake @@ -60,6 +62,9 @@ make %{?jobs:-j%jobs} rm -rf %{buildroot} %make_install +mkdir -p %{buildroot}%{upgrade_script_path} +cp -f scripts/geofence-server_upgrade.sh %{buildroot}%{upgrade_script_path} + #service for systemd is not installed to support only DBus auto activation #mkdir -p %{buildroot}%{_unitdir_user}/default.target.wants #install -m 644 %{SOURCE1} %{buildroot}%{_unitdir_user}/geofence-server.service @@ -76,9 +81,9 @@ rm -rf %{buildroot} %manifest geofence-server.manifest %defattr(-,root,root,-) /usr/bin/geofence-server - /usr/share/dbus-1/services/org.tizen.lbs.Providers.GeofenceServer.service %config %{_sysconfdir}/dbus-1/session.d/geofence-server.conf +%{upgrade_script_path}/geofence-server_upgrade.sh #service for systemd is not installed to support only DBus auto activation #%{_unitdir_user}/geofence-server.service diff --git a/scripts/geofence-server_upgrade.sh b/scripts/geofence-server_upgrade.sh new file mode 100644 index 0000000..fb359b0 --- /dev/null +++ b/scripts/geofence-server_upgrade.sh @@ -0,0 +1,21 @@ +#!/bin/sh +PATH=/bin:/usr/bin:/sbin:/usr/sbin + +#------------------------------------------------# +# geofence-server patch for upgrade (2.4 -> 3.0) # +#------------------------------------------------# + +# Macro +DB_DIR_24=/opt/usr/dbspace/ +DB_DIR_30=/opt/usr/home/owner/.applications/dbspace/ +DB_FILE=.geofence-server.db + +# move DB +mv $DB_DIR_24$DB_FILE $DB_DIR_30 +mv $DB_DIR_24$DB_FILE-journal $DB_DIR_30 + +#set Permission +chown owner:users $DB_DIR_30$DB_FILE +chown owner:users $DB_DIR_30$DB_FILE-journal + +exit 0 -- 2.7.4 From 4dfe998fde1a7dcf47c0d76ab46f73774e525037 Mon Sep 17 00:00:00 2001 From: MyungJoo Ham Date: Fri, 9 Sep 2016 01:48:34 +0000 Subject: [PATCH 02/16] Remove unnecessary profile dependencies from build spec If TV profile does not need geofence-dbus, update meta-tv.git so that it does not include geofence-dbus. If it does not include geofence-dbus already, this if profile expression is a dead code. Change-Id: I4a4a2d0ea588cf2eec18b22852a7c21ac236c528 Signed-off-by: MyungJoo Ham --- packaging/geofence-server.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packaging/geofence-server.spec b/packaging/geofence-server.spec index 728ef7b..c385ca8 100644 --- a/packaging/geofence-server.spec +++ b/packaging/geofence-server.spec @@ -7,10 +7,6 @@ License: Apache-2.0 Source0: %{name}-%{version}.tar.gz Source1: geofence-server.service -%if "%{?profile}" == "tv" -ExcludeArch: %{arm} %ix86 x86_64 -%endif - %define upgrade_script_path /usr/share/upgrade/scripts/ Requires(post): sqlite -- 2.7.4 From 8de1f3f754920205d8205d307df5c2e63ce55131 Mon Sep 17 00:00:00 2001 From: jomui Date: Fri, 2 Dec 2016 18:02:30 +0900 Subject: [PATCH 03/16] fixed SVACE 2.2 issues Signed-off-by: jomui Change-Id: Ibebe3807b07bccbb2697935c4392a50966610fa4 --- geofence-server/src/geofence_server.c | 5 ++++- geofence-server/src/geofence_server_wifi.c | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/geofence-server/src/geofence_server.c b/geofence-server/src/geofence_server.c index 9b33a97..88fbf87 100644 --- a/geofence-server/src/geofence_server.c +++ b/geofence-server/src/geofence_server.c @@ -2215,7 +2215,7 @@ static void dbus_start_geofence_cb(gint fence_id, const gchar *app_id, gpointer } else { bssidlen = strlen(ap_bssid); LOGI_GEOFENCE("Connected AP: %s, %d\n", ap_bssid, bssidlen); - if (g_strcmp0(wifi_info->bssid, ap_bssid) == 0) { + if (g_strcmp0(wifi_info->bssid, ap_bssid) == 0) { status_to_be_emitted = GEOFENCE_FENCE_STATE_IN; geofence_server->connectedTrackingWifiFenceId = fence_id; } else { @@ -2223,6 +2223,9 @@ static void dbus_start_geofence_cb(gint fence_id, const gchar *app_id, gpointer } } + if (ap_bssid != NULL) + free(ap_bssid); + ap_bssid = NULL; } } else { LOGI_GEOFENCE("Wifi is not switched on..."); diff --git a/geofence-server/src/geofence_server_wifi.c b/geofence-server/src/geofence_server_wifi.c index 3217474..13fc92f 100644 --- a/geofence-server/src/geofence_server_wifi.c +++ b/geofence-server/src/geofence_server_wifi.c @@ -165,6 +165,9 @@ void wifi_rssi_level_changed(wifi_rssi_level_e rssi_level, void *user_data) state = GEOFENCE_PROXIMITY_FAR; emit_wifi_geofence_proximity_changed(geofence_server, geofence_server->connectedTrackingWifiFenceId, state); } + if (bssid != NULL) + free(bssid); + bssid = NULL; } } @@ -203,7 +206,7 @@ void wifi_device_state_changed(wifi_device_state_e state, void *user_data) LOGD_GEOFENCE("exit"); } -void __geofence_check_wifi_matched_bssid(wifi_connection_state_e state, char *bssid, void *user_data) +void __geofence_check_wifi_matched_bssid(wifi_connection_state_e state, char *bssid, void *user_data) { LOGD_GEOFENCE("Comparing the matching bssids"); GeofenceServer *geofence_server = (GeofenceServer *)user_data; @@ -263,4 +266,7 @@ void wifi_conn_state_changed(wifi_connection_state_e state, wifi_ap_h ap, void * LOGD_GEOFENCE("Wifi disconnected with [%s].", ap_bssid); __geofence_check_wifi_matched_bssid(state, ap_bssid, user_data); } + if (ap_bssid != NULL) + free(ap_bssid); + ap_bssid = NULL; } -- 2.7.4 From 2328a0d26512585c854887a8e855e69295f0bf8c Mon Sep 17 00:00:00 2001 From: chanywa Date: Sat, 3 Dec 2016 17:05:08 +0900 Subject: [PATCH 04/16] rename update script file Change-Id: I7bc7f3267f1d5e25ff0fd128ba44fef07389e844 --- packaging/geofence-server.spec | 6 +++--- scripts/{geofence-server_upgrade.sh => 500.geofence-server.sh} | 0 2 files changed, 3 insertions(+), 3 deletions(-) rename scripts/{geofence-server_upgrade.sh => 500.geofence-server.sh} (100%) diff --git a/packaging/geofence-server.spec b/packaging/geofence-server.spec index c385ca8..302063a 100644 --- a/packaging/geofence-server.spec +++ b/packaging/geofence-server.spec @@ -1,6 +1,6 @@ Name: geofence-server Summary: Geofence Server for Tizen -Version: 0.4.4 +Version: 0.4.5 Release: 1 Group: Location/Service License: Apache-2.0 @@ -59,7 +59,7 @@ rm -rf %{buildroot} %make_install mkdir -p %{buildroot}%{upgrade_script_path} -cp -f scripts/geofence-server_upgrade.sh %{buildroot}%{upgrade_script_path} +cp -f scripts/500.%{name}.sh %{buildroot}%{upgrade_script_path} #service for systemd is not installed to support only DBus auto activation #mkdir -p %{buildroot}%{_unitdir_user}/default.target.wants @@ -79,7 +79,7 @@ rm -rf %{buildroot} /usr/bin/geofence-server /usr/share/dbus-1/services/org.tizen.lbs.Providers.GeofenceServer.service %config %{_sysconfdir}/dbus-1/session.d/geofence-server.conf -%{upgrade_script_path}/geofence-server_upgrade.sh +%{upgrade_script_path}/500.%{name}.sh #service for systemd is not installed to support only DBus auto activation #%{_unitdir_user}/geofence-server.service diff --git a/scripts/geofence-server_upgrade.sh b/scripts/500.geofence-server.sh similarity index 100% rename from scripts/geofence-server_upgrade.sh rename to scripts/500.geofence-server.sh -- 2.7.4 From 450e23497c0a717ffc47acc84f73ed09a089d6cf Mon Sep 17 00:00:00 2001 From: jomui Date: Wed, 7 Dec 2016 14:02:26 +0900 Subject: [PATCH 05/16] set default fence state Signed-off-by: jomui Change-Id: I2b139261ba9f0b1216d62c0099ac24d2c7523f71 --- geofence-server/src/geofence_server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geofence-server/src/geofence_server.c b/geofence-server/src/geofence_server.c index 88fbf87..7f94948 100644 --- a/geofence-server/src/geofence_server.c +++ b/geofence-server/src/geofence_server.c @@ -2112,7 +2112,7 @@ static void dbus_start_geofence_cb(gint fence_id, const gchar *app_id, gpointer item_data->client_status = GEOFENCE_CLIENT_STATUS_START; if (item_data->common_info.type == GEOFENCE_TYPE_GEOPOINT) { - + status_to_be_emitted = GEOFENCE_FENCE_STATE_OUT; if (__is_support_wps() == true && __isDataConnected() == true && __isWifiOn() == true) { ret = __start_wps_positioning(geofence_server, __geofence_wps_position_changed_cb); if (ret != FENCE_ERR_NONE) { -- 2.7.4 From af4972bdf7246af7887c755c87b53cb013aff315 Mon Sep 17 00:00:00 2001 From: jomui Date: Wed, 1 Feb 2017 15:30:02 +0900 Subject: [PATCH 06/16] change tab to space Signed-off-by: jomui Change-Id: Iccea64f98112ed17607a4ea3320b456d83d9c41d --- geofence-server/src/geofence_server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geofence-server/src/geofence_server.c b/geofence-server/src/geofence_server.c index 7f94948..77eba2c 100644 --- a/geofence-server/src/geofence_server.c +++ b/geofence-server/src/geofence_server.c @@ -304,7 +304,7 @@ static int __emit_fence_inout(GeofenceServer *geofence_server, int fence_id, geo if (state == GEOFENCE_FENCE_STATE_IN) { /*LOGD_GEOFENCE("FENCE_IN to be set, current state: %d", item_data->common_info.status);*/ if (item_data->common_info.status != GEOFENCE_FENCE_STATE_IN) { - geofence_dbus_server_send_geofence_inout_changed(geofence_server->geofence_dbus_server, item_data->common_info.appid, fence_id, item_data->common_info.access_type, GEOFENCE_EMIT_STATE_IN); + geofence_dbus_server_send_geofence_inout_changed(geofence_server->geofence_dbus_server, item_data->common_info.appid, fence_id, item_data->common_info.access_type, GEOFENCE_EMIT_STATE_IN); if (item_data->client_status == GEOFENCE_CLIENT_STATUS_START) item_data->client_status = GEOFENCE_CLIENT_STATUS_RUNNING; -- 2.7.4 From e6f06724ae4778fcc2cf5250a82a9eba35b9c653 Mon Sep 17 00:00:00 2001 From: jomui Date: Fri, 17 Mar 2017 10:16:57 +0900 Subject: [PATCH 07/16] add license file in spec Signed-off-by: jomui Change-Id: I14bfcf443746d81be9a1e05676304ddb75754a59 --- packaging/geofence-server.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/packaging/geofence-server.spec b/packaging/geofence-server.spec index 302063a..781c821 100644 --- a/packaging/geofence-server.spec +++ b/packaging/geofence-server.spec @@ -75,6 +75,7 @@ rm -rf %{buildroot} %files %manifest geofence-server.manifest +%license LICENSE %defattr(-,root,root,-) /usr/bin/geofence-server /usr/share/dbus-1/services/org.tizen.lbs.Providers.GeofenceServer.service -- 2.7.4 From 55f095fd967a162f500c256eff76134a45b4cd85 Mon Sep 17 00:00:00 2001 From: jomui Date: Tue, 28 Mar 2017 09:58:11 +0900 Subject: [PATCH 08/16] add license macro Signed-off-by: jomui Change-Id: If01d516518bda50901a668a85da017bf0009e60b --- packaging/geofence-server.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/packaging/geofence-server.spec b/packaging/geofence-server.spec index 781c821..ee27058 100644 --- a/packaging/geofence-server.spec +++ b/packaging/geofence-server.spec @@ -103,4 +103,5 @@ Geofence Server for Tizen %files -n location-geofence-server %manifest location-geofence-server.manifest +%license LICENSE %{_libdir}/geofence/module/libgeofence.so* -- 2.7.4 From 786fc1bacea5591ae0a4984dfd7ce7b52016e3d5 Mon Sep 17 00:00:00 2001 From: jomui Date: Wed, 12 Apr 2017 10:08:11 +0900 Subject: [PATCH 09/16] fixed for deprecate WIFI API Signed-off-by: jomui Change-Id: I1a6a7a8d0fd69ec6f84ac85ac0c6303636f32da1 --- CMakeLists.txt | 2 +- geofence-server/src/geofence_server.c | 87 ++++++++++++++----------- geofence-server/src/geofence_server.h | 8 +-- geofence-server/src/geofence_server_bluetooth.c | 4 +- geofence-server/src/geofence_server_db.c | 6 +- geofence-server/src/geofence_server_private.h | 2 + geofence-server/src/geofence_server_wifi.c | 44 ++++++------- geofence-server/src/geofence_server_wifi.h | 6 +- geofence-server/src/server.c | 74 +++++++++++---------- geofence-server/src/server.h | 4 +- packaging/geofence-server.spec | 4 +- 11 files changed, 127 insertions(+), 114 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a416dfa..6600afd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ SET(BIN_DIR "${PREFIX}/bin") #Dependencies SET(common_dp "glib-2.0 geofence-dbus dlog gio-2.0 capi-appfw-app-manager") -SET(server_dp "${common_dp} network vconf vconf-internal-keys capi-system-info gthread-2.0 gio-unix-2.0 sqlite3 db-util alarm-service deviced capi-location-manager capi-network-bluetooth capi-network-wifi libcore-context-manager capi-system-device libtzplatform-config") +SET(server_dp "${common_dp} network vconf vconf-internal-keys capi-system-info gthread-2.0 gio-unix-2.0 sqlite3 db-util alarm-service deviced capi-location-manager capi-network-bluetooth capi-network-wifi-manager libcore-context-manager capi-system-device libtzplatform-config") SET(module_dp "${common_dp} gmodule-2.0 capi-geofence-manager") # Set required packages diff --git a/geofence-server/src/geofence_server.c b/geofence-server/src/geofence_server.c index 77eba2c..de56328 100644 --- a/geofence-server/src/geofence_server.c +++ b/geofence-server/src/geofence_server.c @@ -35,7 +35,7 @@ #include "geofence_server_alarm.h" #include "geofence_server_internal.h" #include "geofence_server_bluetooth.h" -#include +#include #include #include @@ -81,39 +81,43 @@ static bool __is_support_wps() return is_wps_supported; } -static const char *__convert_wifi_error_to_string(wifi_error_e err_type) +static const char *__convert_wifi_error_to_string(wifi_manager_error_e err_type) { switch (err_type) { - case WIFI_ERROR_NONE: + case WIFI_MANAGER_ERROR_NONE: return "NONE"; - case WIFI_ERROR_INVALID_PARAMETER: + case WIFI_MANAGER_ERROR_INVALID_PARAMETER: return "INVALID_PARAMETER"; - case WIFI_ERROR_OUT_OF_MEMORY: + case WIFI_MANAGER_ERROR_OUT_OF_MEMORY: return "OUT_OF_MEMORY"; - case WIFI_ERROR_INVALID_OPERATION: + case WIFI_MANAGER_ERROR_INVALID_OPERATION: return "INVALID_OPERATION"; - case WIFI_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED: + case WIFI_MANAGER_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED: return "ADDRESS_FAMILY_NOT_SUPPORTED"; - case WIFI_ERROR_OPERATION_FAILED: + case WIFI_MANAGER_ERROR_OPERATION_FAILED: return "OPERATION_FAILED"; - case WIFI_ERROR_NO_CONNECTION: + case WIFI_MANAGER_ERROR_NO_CONNECTION: return "NO_CONNECTION"; - case WIFI_ERROR_NOW_IN_PROGRESS: + case WIFI_MANAGER_ERROR_NOW_IN_PROGRESS: return "NOW_IN_PROGRESS"; - case WIFI_ERROR_ALREADY_EXISTS: + case WIFI_MANAGER_ERROR_ALREADY_EXISTS: return "ALREADY_EXISTS"; - case WIFI_ERROR_OPERATION_ABORTED: + case WIFI_MANAGER_ERROR_OPERATION_ABORTED: return "OPERATION_ABORTED"; - case WIFI_ERROR_DHCP_FAILED: + case WIFI_MANAGER_ERROR_DHCP_FAILED: return "DHCP_FAILED"; - case WIFI_ERROR_INVALID_KEY: + case WIFI_MANAGER_ERROR_INVALID_KEY: return "INVALID_KEY"; - case WIFI_ERROR_NO_REPLY: + case WIFI_MANAGER_ERROR_NO_REPLY: return "NO_REPLY"; - case WIFI_ERROR_SECURITY_RESTRICTED: + case WIFI_MANAGER_ERROR_SECURITY_RESTRICTED: return "SECURITY_RESTRICTED"; - case WIFI_ERROR_PERMISSION_DENIED: + case WIFI_MANAGER_ERROR_ALREADY_INITIALIZED: + return "ALREADY_INITIALIZED"; + case WIFI_MANAGER_ERROR_PERMISSION_DENIED: return "PERMISSION_DENIED"; + case WIFI_MANAGER_ERROR_NOT_SUPPORTED: + return "NOT_SUPPORTED"; default: return "NOT Defined"; } @@ -1281,7 +1285,7 @@ static void __free_geofence_list(gpointer userdata) static int __check_fence_permission(int fence_id, const char *app_id) { access_type_e access_type = ACCESS_TYPE_PUBLIC; - char *appid; + char *appid = NULL; int ret = FENCE_ERR_NONE; ret = geofence_manager_get_access_type(fence_id, -1, &access_type); if (ret != FENCE_ERR_NONE) { @@ -1295,17 +1299,19 @@ static int __check_fence_permission(int fence_id, const char *app_id) return -1; } if (g_strcmp0(appid, app_id)) { - LOGE("Not authorized to access this private fence[%d]", fence_id); + LOGE("Not authorized to access this private fence[%d]", fence_id); + g_free(appid); return 0; } } + g_free(appid); return 1; } static int __check_place_permission(int place_id, const char *app_id) { access_type_e access_type = ACCESS_TYPE_PUBLIC; - char *appid; + char *appid = NULL; int ret = FENCE_ERR_NONE; ret = geofence_manager_get_access_type(-1, place_id, &access_type); if (ret != FENCE_ERR_NONE) { @@ -1319,10 +1325,12 @@ static int __check_place_permission(int place_id, const char *app_id) return -1; } if (g_strcmp0(appid, app_id)) { - LOGE("Not authorized to access this private place[%d]", place_id); + LOGE("Not authorized to access this private place[%d]", place_id); + g_free(appid); return 0; } } + g_free(appid); return 1; } @@ -1572,7 +1580,7 @@ static int dbus_add_fence_cb(const gchar *app_id, g_strlcpy(geocoordinate_info->address, address, ADDRESS_LEN); /*Geopoint information is saved in the DB*/ - ret = geofence_manager_set_geocoordinate_info(fence_id, geocoordinate_info); + ret = geofence_manager_set_geocoordinate_info(fence_id, geocoordinate_info); if (ret != FENCE_ERR_NONE) { LOGI_GEOFENCE("Fail to set geocoordinate_info"); ret = geofence_manager_delete_fence_info(fence_id); @@ -1796,7 +1804,7 @@ static void dbus_remove_fence_cb(gint fence_id, const gchar *app_id, gpointer us g_return_if_fail(geofence_server); int ret = FENCE_ERR_NONE; int place_id = -1; - char *app_id_db; + char *app_id_db = NULL; access_type_e access_type = ACCESS_TYPE_UNKNOWN; /*//////////Required to be sent in the event callback////////////////--*/ @@ -2187,9 +2195,9 @@ static void dbus_start_geofence_cb(gint fence_id, const gchar *app_id, gpointer } } else if (item_data->common_info.type == GEOFENCE_TYPE_WIFI) { LOGI_GEOFENCE("fence_type [GEOFENCE_TYPE_WIFI]"); - wifi_error_e rv = WIFI_ERROR_NONE; + wifi_manager_error_e rv = WIFI_MANAGER_ERROR_NONE; int nWifiState; - wifi_ap_h ap_h; + wifi_manager_ap_h ap_h; char *ap_bssid = NULL; int bssidlen; bssid_info_s *wifi_info = NULL; @@ -2201,16 +2209,16 @@ static void dbus_start_geofence_cb(gint fence_id, const gchar *app_id, gpointer if (item_data->priv != NULL) wifi_info = (bssid_info_s *) item_data->priv; - rv = wifi_get_connected_ap(&ap_h); - if (rv != WIFI_ERROR_NONE) { + rv = wifi_manager_get_connected_ap(geofence_server->wifi_h, &ap_h); + if (rv != WIFI_MANAGER_ERROR_NONE) { LOGI_GEOFENCE("Fail/not connected to get the connected AP: [%s] , geofence will be added to the fence list", __convert_wifi_error_to_string(rv)); - if (rv == WIFI_ERROR_NO_CONNECTION) { + if (rv == WIFI_MANAGER_ERROR_NO_CONNECTION) { LOGI_GEOFENCE("Not connected to any AP"); status_to_be_emitted = GEOFENCE_FENCE_STATE_OUT; } } else { - rv = wifi_ap_get_bssid(ap_h, &ap_bssid); - if (rv != WIFI_ERROR_NONE) { + rv = wifi_manager_ap_get_bssid(ap_h, &ap_bssid); + if (rv != WIFI_MANAGER_ERROR_NONE) { LOGI_GEOFENCE("Fail to get the bssid: [%d]\n", __convert_wifi_error_to_string(rv)); } else { bssidlen = strlen(ap_bssid); @@ -2456,16 +2464,14 @@ static GVariant *dbus_get_geofences_cb(int place_id, const gchar *app_id, int *f if ((place_info != NULL) && (place_info->access_type == ACCESS_TYPE_PRIVATE)) { if (g_strcmp0(app_id, place_info->appid) != 0) { LOGI_GEOFENCE("Not authorized to access this private place[%d]", place_id); - if (place_info) - g_free(place_info); + g_free(place_info); /* Send ZERO data gvariant*/ *errorCode = GEOFENCE_SERVER_ERROR_PLACE_ACCESS_DENIED; *fenceCnt = fence_cnt; g_variant_builder_init(&b, G_VARIANT_TYPE("aa{sv}")); return g_variant_builder_end(&b); } - if (place_info) - g_free(place_info); + g_free(place_info); } ret = geofence_manager_get_fence_list_from_db(&count, &fence_list, place_id); } @@ -2654,6 +2660,8 @@ static void __init_geofencemanager(GeofenceServer *geofence_server) geofence_server->activity_run_h = NULL; geofence_server->activity_in_vehicle_h = NULL; + geofence_server->wifi_h = NULL; + /*Initializing the DB to store the fence informations*/ if (geofence_manager_db_init() != FENCE_ERR_NONE) LOGI_GEOFENCE("Error initalizing the DB"); @@ -2716,10 +2724,9 @@ int __copy_geofence_to_item_data(int fence_id, GeofenceItemData *item_data) if (FENCE_ERR_NONE != geofence_manager_get_enable_status(fence_id, &item_data->common_info.enable)) return FENCE_ERR_SQLITE_FAIL; - if (FENCE_ERR_NONE != geofence_manager_get_appid_from_geofence(fence_id, &app_id)) { - g_free(app_id); + if (FENCE_ERR_NONE != geofence_manager_get_appid_from_geofence(fence_id, &app_id)) return FENCE_ERR_SQLITE_FAIL; - } else { + else { g_strlcpy(item_data->common_info.appid, app_id, APP_ID_LEN); g_free(app_id); } @@ -2779,6 +2786,10 @@ static void __add_left_fences(gpointer user_data) * } */ GeofenceItemData *item_data = (GeofenceItemData *)g_malloc0(sizeof(GeofenceItemData)); + if (item_data == NULL) { + LOGI_GEOFENCE("Unable to add the fence because of malloc fail"); + return; + } if (FENCE_ERR_NONE != __copy_geofence_to_item_data(fence_id, item_data)) { g_free(item_data); return; @@ -2871,7 +2882,7 @@ int main(int argc, char **argv) LOGD_GEOFENCE("GEOFENCE_manager deamon Stop...."); /*This call goes to server.c and deregisters all the callbacks w.r.t bt and wifi*/ - _geofence_deinitialize_geofence_server(); + _geofence_deinitialize_geofence_server(geofenceserver); #ifdef TIZEN_ENGINEER_MODE _deinit_log(); diff --git a/geofence-server/src/geofence_server.h b/geofence-server/src/geofence_server.h index 0d5d635..19a3044 100644 --- a/geofence-server/src/geofence_server.h +++ b/geofence-server/src/geofence_server.h @@ -24,7 +24,7 @@ #include #include -#include +#include #include #include #include @@ -71,7 +71,7 @@ typedef void (*geofence_device_display_changed_cb)(device_callback_e type, void * @Param[in] user_data The user data to be returned * @see None. */ -typedef void (*geofence_wifi_conn_state_changed_cb)(wifi_connection_state_e state, wifi_ap_h ap, void *user_data); +typedef void (*geofence_wifi_conn_state_changed_cb)(wifi_manager_connection_state_e state, wifi_manager_ap_h ap, void *user_data); /** * @brief Wifi device status change callback @@ -80,7 +80,7 @@ typedef void (*geofence_wifi_conn_state_changed_cb)(wifi_connection_state_e stat * @Param[in] user_data The user data to be returned * @see None. */ -typedef void (*geofence_wifi_device_state_changed_cb)(wifi_device_state_e state, void *user_data); +typedef void (*geofence_wifi_device_state_changed_cb)(wifi_manager_device_state_e state, void *user_data); /** * @brief Network scan status change callback @@ -121,7 +121,7 @@ typedef void (*geofence_gps_setting_changed_cb)(location_method_e method, bool e * @see wifi_set_rssi_level_changed_cb() * @see wifi_unset_rssi_level_changed_cb() */ -typedef void(*geofence_wifi_rssi_level_changed_cb)(wifi_rssi_level_e rssi_level, void *user_data); +typedef void(*geofence_wifi_rssi_level_changed_cb)(wifi_manager_rssi_level_e rssi_level, void *user_data); /** * Geofence callback structure. diff --git a/geofence-server/src/geofence_server_bluetooth.c b/geofence-server/src/geofence_server_bluetooth.c index ccb689a..30dbf51 100644 --- a/geofence-server/src/geofence_server_bluetooth.c +++ b/geofence-server/src/geofence_server_bluetooth.c @@ -107,9 +107,7 @@ static void emit_bt_geofence_proximity_changed(GeofenceServer *geofence_server, } item_data->common_info.proximity_status = fence_proximity_status; } - - if (app_id) - free(app_id); + g_free(app_id); } diff --git a/geofence-server/src/geofence_server_db.c b/geofence-server/src/geofence_server_db.c index 26273be..8c85238 100755 --- a/geofence-server/src/geofence_server_db.c +++ b/geofence-server/src/geofence_server_db.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include #include @@ -618,8 +618,8 @@ void __geofence_manager_generate_password(char *password) if (ret != BT_ERROR_NONE) LOGD_GEOFENCE("bt address get fail %d", ret); - ret = wifi_get_mac_address(&wifi_address); - if (ret != WIFI_ERROR_NONE) + ret = wifi_manager_get_mac_address(&wifi_address); + if (ret != WIFI_MANAGER_ERROR_NONE) LOGD_GEOFENCE("wifi address get fail %d", ret); if (bt_address) { diff --git a/geofence-server/src/geofence_server_private.h b/geofence-server/src/geofence_server_private.h index 729054b..e34b023 100644 --- a/geofence-server/src/geofence_server_private.h +++ b/geofence-server/src/geofence_server_private.h @@ -181,6 +181,8 @@ typedef struct { activity_h activity_walk_h; activity_h activity_run_h; activity_h activity_in_vehicle_h; + + wifi_manager_h wifi_h; } GeofenceServer; #ifdef __cplusplus diff --git a/geofence-server/src/geofence_server_wifi.c b/geofence-server/src/geofence_server_wifi.c index 13fc92f..5001594 100644 --- a/geofence-server/src/geofence_server_wifi.c +++ b/geofence-server/src/geofence_server_wifi.c @@ -54,8 +54,7 @@ static void emit_wifi_geofence_inout_changed(GeofenceServer *geofence_server, in item_data->common_info.status = GEOFENCE_FENCE_STATE_OUT; } } - if (app_id) - free(app_id); + g_free(app_id); } static bool __check_for_match(char *str1, char *str2) @@ -132,34 +131,33 @@ static void emit_wifi_geofence_proximity_changed(GeofenceServer *geofence_server } item_data->common_info.proximity_status = fence_proximity_status; } - if (app_id) - free(app_id); + g_free(app_id); } -void wifi_rssi_level_changed(wifi_rssi_level_e rssi_level, void *user_data) +void wifi_rssi_level_changed(wifi_manager_rssi_level_e rssi_level, void *user_data) { FUNC_ENTRANCE_SERVER GeofenceServer *geofence_server = (GeofenceServer *) user_data; g_return_if_fail(geofence_server); - wifi_ap_h ap_h; + wifi_manager_ap_h ap_h; char *bssid = NULL; geofence_proximity_state_e state = GEOFENCE_PROXIMITY_UNCERTAIN; - wifi_error_e rv = WIFI_ERROR_NONE; + wifi_manager_error_e rv = WIFI_MANAGER_ERROR_NONE; LOGI_GEOFENCE("running cnt: %d, connected id: %d", geofence_server->running_wifi_cnt, geofence_server->connectedTrackingWifiFenceId); if (geofence_server->running_wifi_cnt > 0 && geofence_server->connectedTrackingWifiFenceId != -1) { - rv = wifi_get_connected_ap(&ap_h); - if (rv != WIFI_ERROR_NONE) { + rv = wifi_manager_get_connected_ap(geofence_server->wifi_h, &ap_h); + if (rv != WIFI_MANAGER_ERROR_NONE) { LOGE_GEOFENCE("Fail to get the connected AP: Error - %d", rv); return; } - rv = wifi_ap_get_bssid(ap_h, &bssid); - if (rv != WIFI_ERROR_NONE) { + rv = wifi_manager_ap_get_bssid(ap_h, &bssid); + if (rv != WIFI_MANAGER_ERROR_NONE) { LOGI_GEOFENCE("Fail to get the bssid: [%d]", rv); } else { /*Emit the proximity alert here using mConnectedFenceId*/ - if (rssi_level == WIFI_RSSI_LEVEL_4) + if (rssi_level == WIFI_MANAGER_RSSI_LEVEL_4) state = GEOFENCE_PROXIMITY_IMMEDIATE; - else if (rssi_level == WIFI_RSSI_LEVEL_3) + else if (rssi_level == WIFI_MANAGER_RSSI_LEVEL_3) state = GEOFENCE_PROXIMITY_NEAR; else state = GEOFENCE_PROXIMITY_FAR; @@ -171,7 +169,7 @@ void wifi_rssi_level_changed(wifi_rssi_level_e rssi_level, void *user_data) } } -void wifi_device_state_changed(wifi_device_state_e state, void *user_data) +void wifi_device_state_changed(wifi_manager_device_state_e state, void *user_data) { FUNC_ENTRANCE_SERVER GeofenceServer *geofence_server = (GeofenceServer *) user_data; @@ -196,7 +194,7 @@ void wifi_device_state_changed(wifi_device_state_e state, void *user_data) if (fence_type != GEOFENCE_TYPE_WIFI) continue; - if (state == WIFI_DEVICE_STATE_DEACTIVATED) { + if (state == WIFI_MANAGER_DEVICE_STATE_DEACTIVATED) { LOGD_GEOFENCE("Emitted to fence_id [%d] GEOFENCE_FENCE_STATE_OUT", fence_id); emit_wifi_geofence_inout_changed(geofence_server, fence_id, GEOFENCE_FENCE_STATE_OUT); emit_wifi_geofence_proximity_changed(geofence_server, fence_id, GEOFENCE_PROXIMITY_UNCERTAIN); @@ -206,7 +204,7 @@ void wifi_device_state_changed(wifi_device_state_e state, void *user_data) LOGD_GEOFENCE("exit"); } -void __geofence_check_wifi_matched_bssid(wifi_connection_state_e state, char *bssid, void *user_data) +void __geofence_check_wifi_matched_bssid(wifi_manager_connection_state_e state, char *bssid, void *user_data) { LOGD_GEOFENCE("Comparing the matching bssids"); GeofenceServer *geofence_server = (GeofenceServer *)user_data; @@ -230,10 +228,10 @@ void __geofence_check_wifi_matched_bssid(wifi_connection_state_e state, char *bs } if (!g_ascii_strcasecmp(bssid_info->bssid, bssid) || !g_ascii_strcasecmp(g_strdelimit(bssid_info->bssid, "-", ':'), bssid)) { LOGI_GEOFENCE("Matched wifi fence: fence_id = %d, bssid = %s", tracking_fence_id, bssid_info->bssid); - if (state == WIFI_CONNECTION_STATE_CONNECTED) { + if (state == WIFI_MANAGER_CONNECTION_STATE_CONNECTED) { emit_wifi_geofence_inout_changed(geofence_server, tracking_fence_id, GEOFENCE_FENCE_STATE_IN); geofence_server->connectedTrackingWifiFenceId = tracking_fence_id; - } else if (state == WIFI_CONNECTION_STATE_DISCONNECTED) { + } else if (state == WIFI_MANAGER_CONNECTION_STATE_DISCONNECTED) { emit_wifi_geofence_inout_changed(geofence_server, tracking_fence_id, GEOFENCE_FENCE_STATE_OUT); emit_wifi_geofence_proximity_changed(geofence_server, tracking_fence_id, GEOFENCE_PROXIMITY_UNCERTAIN); geofence_server->connectedTrackingWifiFenceId = -1; @@ -245,24 +243,24 @@ void __geofence_check_wifi_matched_bssid(wifi_connection_state_e state, char *bs } -void wifi_conn_state_changed(wifi_connection_state_e state, wifi_ap_h ap, void *user_data) +void wifi_conn_state_changed(wifi_manager_connection_state_e state, wifi_manager_ap_h ap, void *user_data) { LOGD_GEOFENCE("wifi_conn_state_changed"); GeofenceServer *geofence_server = (GeofenceServer *)user_data; char *ap_bssid = NULL; int rv = 0; g_return_if_fail(geofence_server); - rv = wifi_ap_get_bssid(ap, &ap_bssid); + rv = wifi_manager_ap_get_bssid(ap, &ap_bssid); - if (rv != WIFI_ERROR_NONE) { + if (rv != WIFI_MANAGER_ERROR_NONE) { LOGD_GEOFENCE("Failed to get the bssid"); return; } - if (state == WIFI_CONNECTION_STATE_CONNECTED) { + if (state == WIFI_MANAGER_CONNECTION_STATE_CONNECTED) { LOGD_GEOFENCE("Wifi connected to [%s].", ap_bssid); __geofence_check_wifi_matched_bssid(state, ap_bssid, user_data); - } else if (state == WIFI_CONNECTION_STATE_DISCONNECTED) { + } else if (state == WIFI_MANAGER_CONNECTION_STATE_DISCONNECTED) { LOGD_GEOFENCE("Wifi disconnected with [%s].", ap_bssid); __geofence_check_wifi_matched_bssid(state, ap_bssid, user_data); } diff --git a/geofence-server/src/geofence_server_wifi.h b/geofence-server/src/geofence_server_wifi.h index 3932ab7..3c390d8 100644 --- a/geofence-server/src/geofence_server_wifi.h +++ b/geofence-server/src/geofence_server_wifi.h @@ -54,7 +54,7 @@ gboolean geofence_get_enable_wifi_state(gpointer data); * @Param[in] user_data The user data * @see None. */ -void wifi_conn_state_changed(wifi_connection_state_e state, wifi_ap_h ap, void *user_data); +void wifi_conn_state_changed(wifi_manager_connection_state_e state, wifi_manager_ap_h ap, void *user_data); /** * @brief Wifi device status change @@ -62,7 +62,7 @@ void wifi_conn_state_changed(wifi_connection_state_e state, wifi_ap_h ap, void * * @Param[in] user_data The user data * @see None. */ -void wifi_device_state_changed(wifi_device_state_e state, void *user_data); +void wifi_device_state_changed(wifi_manager_device_state_e state, void *user_data); /** * @brief Wifi AP rssi level change @@ -70,5 +70,5 @@ void wifi_device_state_changed(wifi_device_state_e state, void *user_data); * @Param[in] user_data The user data * @see None. **/ -void wifi_rssi_level_changed(wifi_rssi_level_e rssi_level, void *user_data); +void wifi_rssi_level_changed(wifi_manager_rssi_level_e rssi_level, void *user_data); #endif /* GEOFENCE_MANAGER_WIFI_H_ */ diff --git a/geofence-server/src/server.c b/geofence-server/src/server.c index b114669..66dc4fc 100644 --- a/geofence-server/src/server.c +++ b/geofence-server/src/server.c @@ -58,7 +58,7 @@ #include "geofence_server_private.h" /* for bluetooth-geofence*/ #include -#include +#include #include #define TIZEN_ENGINEER_MODE @@ -162,7 +162,7 @@ static void __geofence_bt_adapter_device_discovery_state_changed_cb(int result, LOGD_GEOFENCE("exit"); } -static void __geofence_wifi_device_connection_state_changed_cb(wifi_connection_state_e state, wifi_ap_h ap, void *user_data) +static void __geofence_wifi_device_connection_state_changed_cb(wifi_manager_connection_state_e state, wifi_manager_ap_h ap, void *user_data) { LOGD_GEOFENCE("__geofence_wifi_device_connection_state_changed_cb()"); @@ -175,7 +175,7 @@ static void __geofence_wifi_device_connection_state_changed_cb(wifi_connection_s } } -static void __geofence_wifi_device_state_changed_cb(wifi_device_state_e state, void *user_data) +static void __geofence_wifi_device_state_changed_cb(wifi_manager_device_state_e state, void *user_data) { LOGD_GEOFENCE("__geofence_wifi_device_state_changed_cb()"); @@ -188,7 +188,7 @@ static void __geofence_wifi_device_state_changed_cb(wifi_device_state_e state, v } } -static void __geofence_wifi_rssi_level_changed_cb(wifi_rssi_level_e rssi_level, void *user_data) +static void __geofence_wifi_rssi_level_changed_cb(wifi_manager_rssi_level_e rssi_level, void *user_data) { LOGD_GEOFENCE("__geofence_wifi_rssi_level_changed_cb()"); GeofenceServer *geofence_server = (GeofenceServer *)user_data; @@ -269,9 +269,9 @@ int _geofence_initialize_geofence_server(GeofenceServer *geofence_server) if (BT_ERROR_NONE != ret) LOGE_GEOFENCE("Failed to set the callback for discovery"); - ret = wifi_initialize(); - if (WIFI_ERROR_NONE != ret) { - LOGD_GEOFENCE("wifi_initialize() failed(%d).", ret); + ret = wifi_manager_initialize(&(geofence_server->wifi_h)); + if (WIFI_MANAGER_ERROR_NONE != ret) { + LOGD_GEOFENCE("wifi_manager_initialize() failed(%d).", ret); return -1; } @@ -282,37 +282,40 @@ int _geofence_initialize_geofence_server(GeofenceServer *geofence_server) LOGD_GEOFENCE("net_register_client() succeeded"); } - ret = wifi_set_connection_state_changed_cb(__geofence_wifi_device_connection_state_changed_cb, geofence_server); - if (WIFI_ERROR_NONE != ret) { - LOGD_GEOFENCE("wifi_set_connection_state_changed_cb() failed(%d).", ret); - ret = wifi_deinitialize(); - if (ret != WIFI_ERROR_NONE) - LOGD_GEOFENCE("wifi_deinitialize() failed(%d).", ret); + ret = wifi_manager_set_connection_state_changed_cb(geofence_server->wifi_h, __geofence_wifi_device_connection_state_changed_cb, geofence_server); + if (WIFI_MANAGER_ERROR_NONE != ret) { + LOGD_GEOFENCE("wifi_manager_set_connection_state_changed_cb() failed(%d).", ret); + ret = wifi_manager_deinitialize(geofence_server->wifi_h); + if (ret != WIFI_MANAGER_ERROR_NONE) + LOGD_GEOFENCE("wifi_manager_deinitialize() failed(%d).", ret); + geofence_server->wifi_h = NULL; return -1; } else { - LOGD_GEOFENCE("wifi_set_connection_state_changed_cb() success.", ret); + LOGD_GEOFENCE("wifi_manager_set_connection_state_changed_cb() success.", ret); } - ret = wifi_set_device_state_changed_cb(__geofence_wifi_device_state_changed_cb, geofence_server); - if (WIFI_ERROR_NONE != ret) { - LOGD_GEOFENCE("wifi_set_device_state_changed_cb() failed(%d).", ret); - ret = wifi_deinitialize(); - if (ret != WIFI_ERROR_NONE) - LOGD_GEOFENCE("wifi_deinitialize() failed(%d).", ret); + ret = wifi_manager_set_device_state_changed_cb(geofence_server->wifi_h, __geofence_wifi_device_state_changed_cb, geofence_server); + if (WIFI_MANAGER_ERROR_NONE != ret) { + LOGD_GEOFENCE("wifi_manager_set_device_state_changed_cb() failed(%d).", ret); + ret = wifi_manager_deinitialize(geofence_server->wifi_h); + if (ret != WIFI_MANAGER_ERROR_NONE) + LOGD_GEOFENCE("wifi_manager_deinitialize() failed(%d).", ret); + geofence_server->wifi_h = NULL; return -1; } else { - LOGD_GEOFENCE("wifi_set_device_state_changed_cb() success.", ret); + LOGD_GEOFENCE("wifi_manager_set_device_state_changed_cb() success.", ret); } - ret = wifi_set_rssi_level_changed_cb(__geofence_wifi_rssi_level_changed_cb, geofence_server); - if (WIFI_ERROR_NONE != ret) { - LOGD_GEOFENCE("wifi_set_rssi_level_changed_cb() failed(%d).", ret); - ret = wifi_deinitialize(); - if (ret != WIFI_ERROR_NONE) - LOGD_GEOFENCE("wifi_deinitialize() failed(%d).", ret); + ret = wifi_manager_set_rssi_level_changed_cb(geofence_server->wifi_h, __geofence_wifi_rssi_level_changed_cb, geofence_server); + if (WIFI_MANAGER_ERROR_NONE != ret) { + LOGD_GEOFENCE("wifi_manager_set_rssi_level_changed_cb() failed(%d).", ret); + ret = wifi_manager_deinitialize(geofence_server->wifi_h); + if (ret != WIFI_MANAGER_ERROR_NONE) + LOGD_GEOFENCE("wifi_manager_deinitialize() failed(%d).", ret); + geofence_server->wifi_h = NULL; return -1; } else { - LOGD_GEOFENCE("wifi_set_rssi_level_changed_cb() success.", ret); + LOGD_GEOFENCE("wifi_manager_set_rssi_level_changed_cb() success.", ret); } /*Set the callback for location*/ @@ -334,7 +337,7 @@ int _geofence_initialize_geofence_server(GeofenceServer *geofence_server) return 0; } -int _geofence_deinitialize_geofence_server() +int _geofence_deinitialize_geofence_server(GeofenceServer *geofence_server) { /* to denit geofence engine staff...*/ @@ -357,15 +360,16 @@ int _geofence_deinitialize_geofence_server() LOGD_GEOFENCE("bt_deinitialize() success.\n"); /*unset the callbacks related to wifi*/ - if (wifi_unset_connection_state_changed_cb() != WIFI_ERROR_NONE) - LOGD_GEOFENCE("wifi_unset_connection_state_changed_cb() failed.\n"); + if (wifi_manager_unset_connection_state_changed_cb(geofence_server->wifi_h) != WIFI_MANAGER_ERROR_NONE) + LOGD_GEOFENCE("wifi_manager_unset_connection_state_changed_cb() failed.\n"); else - LOGD_GEOFENCE("wifi_unset_connection_state_changed_cb() success.\n"); + LOGD_GEOFENCE("wifi_manager_unset_connection_state_changed_cb() success.\n"); - if (wifi_deinitialize() != WIFI_ERROR_NONE) - LOGD_GEOFENCE("wifi_deinitialize() failed.\n"); + if (wifi_manager_deinitialize(geofence_server->wifi_h) != WIFI_MANAGER_ERROR_NONE) + LOGD_GEOFENCE("wifi_manager_deinitialize() failed.\n"); else - LOGD_GEOFENCE("wifi_deinitialize() success.\n"); + LOGD_GEOFENCE("wifi_manager_deinitialize() success.\n"); + geofence_server->wifi_h = NULL; if (location_manager_unset_setting_changed_cb(LOCATIONS_METHOD_GPS) != LOCATIONS_ERROR_NONE) LOGD_GEOFENCE("GPS unsetting failed\n"); diff --git a/geofence-server/src/server.h b/geofence-server/src/server.h index 154db89..8788c7a 100644 --- a/geofence-server/src/server.h +++ b/geofence-server/src/server.h @@ -25,7 +25,7 @@ #include "geofence_server.h" #include "geofence_server_private.h" #include -#include +#include typedef enum { GEOFENCE_STATE_AVAILABLE, @@ -47,7 +47,7 @@ int _geofence_initialize_geofence_server(GeofenceServer *geofence_server); * @retval 0 if success * @see none */ -int _geofence_deinitialize_geofence_server(); +int _geofence_deinitialize_geofence_server(GeofenceServer *geofence_server); /** * @brief Registers the update callbacks diff --git a/packaging/geofence-server.spec b/packaging/geofence-server.spec index ee27058..72309b8 100644 --- a/packaging/geofence-server.spec +++ b/packaging/geofence-server.spec @@ -1,6 +1,6 @@ Name: geofence-server Summary: Geofence Server for Tizen -Version: 0.4.5 +Version: 0.4.6 Release: 1 Group: Location/Service License: Apache-2.0 @@ -27,7 +27,7 @@ BuildRequires: pkgconfig(vconf-internal-keys) BuildRequires: pkgconfig(capi-system-info) BuildRequires: pkgconfig(capi-appfw-app-manager) BuildRequires: pkgconfig(capi-location-manager) -BuildRequires: pkgconfig(capi-network-wifi) +BuildRequires: pkgconfig(capi-network-wifi-manager) BuildRequires: pkgconfig(capi-network-bluetooth) BuildRequires: pkgconfig(libcore-context-manager) BuildRequires: pkgconfig(capi-system-device) -- 2.7.4 From 1f882d464eb8667b69ae98fde64294796c49b28d Mon Sep 17 00:00:00 2001 From: jomui Date: Wed, 19 Apr 2017 17:13:58 +0900 Subject: [PATCH 10/16] fixed SVACE issue Signed-off-by: jomui Change-Id: I33162edf1b1ebc0af25b19f47d83f7bdbaaf515c --- geofence-server/src/geofence_server.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/geofence-server/src/geofence_server.c b/geofence-server/src/geofence_server.c index de56328..68d45ea 100644 --- a/geofence-server/src/geofence_server.c +++ b/geofence-server/src/geofence_server.c @@ -243,11 +243,15 @@ void bt_le_scan_result_display_cb(int result, bt_adapter_le_device_scan_result_i } if (ble_proximity_mode == BLE_INFO_READ) { geofence_manager_get_ble_info_from_geofence(fence_id, &ble_info); - LOGI_GEOFENCE("Ble info read from DB: %s", ble_info); - if (__check_for_match(ble_info, info->remote_address)) { - LOGI_GEOFENCE("Matched for ble address: %s for the fence: %d", info->remote_address, fence_id); - emit_proximity_using_ble(geofence_server, fence_id, GEOFENCE_PROXIMITY_IMMEDIATE); + if (ble_info != NULL) { + LOGI_GEOFENCE("Ble info read from DB: %s", ble_info); + if (__check_for_match(ble_info, info->remote_address)) { + LOGI_GEOFENCE("Matched for ble address: %s for the fence: %d", info->remote_address, fence_id); + emit_proximity_using_ble(geofence_server, fence_id, GEOFENCE_PROXIMITY_IMMEDIATE); + } + g_free(ble_info); } + ble_info = NULL; } tracking_list = g_list_next(tracking_list); } -- 2.7.4 From 0ff77eaf834a7350588f9567bc85d11fd88024bd Mon Sep 17 00:00:00 2001 From: jomui Date: Tue, 30 May 2017 21:50:19 +0900 Subject: [PATCH 11/16] fix for alarm issue in GPS fence Signed-off-by: jomui Change-Id: I51cafb40141b935d00a26f546e0930279f3e7f3b --- geofence-server/config/geofence-server.conf | 1 - geofence-server/src/geofence_server.c | 2 +- packaging/geofence-server.spec | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/geofence-server/config/geofence-server.conf b/geofence-server/config/geofence-server.conf index 88b47b3..1effc5b 100644 --- a/geofence-server/config/geofence-server.conf +++ b/geofence-server/config/geofence-server.conf @@ -19,7 +19,6 @@ - diff --git a/geofence-server/src/geofence_server.c b/geofence-server/src/geofence_server.c index 68d45ea..2d17c64 100644 --- a/geofence-server/src/geofence_server.c +++ b/geofence-server/src/geofence_server.c @@ -517,7 +517,7 @@ static int __start_wps_positioning(GeofenceServer *geofence_server, location_pos return FENCE_ERR_UNKNOWN; } if (geofence_server->wps_timeout_alarm_id == -1) - geofence_server->wps_timeout_alarm_id = _geofence_add_alarm(WPS_TIMEOUT, __wps_timeout_cb, geofence_server); + geofence_server->wps_timeout_alarm_id = _geofence_add_alarm(WPS_TIMEOUT, __wps_timeout_cb, geofence_server); geofence_server->loc_wps_started = TRUE; } else { diff --git a/packaging/geofence-server.spec b/packaging/geofence-server.spec index 72309b8..be86dca 100644 --- a/packaging/geofence-server.spec +++ b/packaging/geofence-server.spec @@ -1,6 +1,6 @@ Name: geofence-server Summary: Geofence Server for Tizen -Version: 0.4.6 +Version: 0.4.7 Release: 1 Group: Location/Service License: Apache-2.0 -- 2.7.4 From df3c5ec7d555cf4eeddfcf62ee2dce09f9a245c2 Mon Sep 17 00:00:00 2001 From: Sangdok Mo Date: Mon, 24 Jul 2017 11:05:31 +0900 Subject: [PATCH 12/16] changed AUTHORS Change-Id: Ifa9f3810da91b5be9f75ac94cccb1953d7a03595 Signed-off-by: Sangdok Mo --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index ce0e4ee..3d8b966 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,5 +1,6 @@ Jongmun Woo -Young-Ae Kang Kyoungjun Sung +Seechan Kim +Young-Ae Kang Karthik Paulraj VENKATAKOTIVIJAYALAKSHMINARAYA -- 2.7.4 From 7f9fda3707c5d5f49a8d89541b251b7b0ad747bd Mon Sep 17 00:00:00 2001 From: jomui Date: Mon, 24 Jul 2017 13:54:43 +0900 Subject: [PATCH 13/16] fix for no AppId Signed-off-by: jomui Change-Id: I5edafd2e2e8a4f9d7c4d36eb24227c6f1a284801 --- geofence-server/CMakeLists.txt | 2 +- geofence-server/src/geofence_server.c | 10 +++++----- module/module_geofence_server.c | 3 ++- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/geofence-server/CMakeLists.txt b/geofence-server/CMakeLists.txt index 6d66d70..9f3786d 100644 --- a/geofence-server/CMakeLists.txt +++ b/geofence-server/CMakeLists.txt @@ -1,5 +1,5 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.0) -PROJECT(geofence-server) +PROJECT(geofence-server) SET(server_pkgs_LDFLAGS "${server_pkgs_LDFLAGS} -ldl") SET(SERVER_EXTRA_CFLAGS "${SERVER_EXTRA_CFLAGS} -D_GNU_SOURCE") diff --git a/geofence-server/src/geofence_server.c b/geofence-server/src/geofence_server.c index 2d17c64..2ecba0a 100644 --- a/geofence-server/src/geofence_server.c +++ b/geofence-server/src/geofence_server.c @@ -412,7 +412,7 @@ static void __check_inout_by_gps(double latitude, double longitude, int fence_id geofence_fence_state_e status = GEOFENCE_FENCE_STATE_OUT; geocoordinate_info_s *geocoordinate_info = (geocoordinate_info_s *)item_data->priv; /* get_current_position/ check_fence_in/out for geoPoint */ - location_manager_get_distance(latitude, longitude, geocoordinate_info->latitude, geocoordinate_info->longitude, &distance); + location_manager_get_distance(latitude, longitude, geocoordinate_info->latitude, geocoordinate_info->longitude, &distance); if (distance >= geocoordinate_info->radius) { LOGD_GEOFENCE("FENCE_OUT : based on distance. Distance[%f] for fence id: %d at (%f, %f)", distance, fence_id, latitude, longitude); @@ -2164,7 +2164,7 @@ static void dbus_start_geofence_cb(gint fence_id, const gchar *app_id, gpointer } else if (adapter_state == BT_ADAPTER_ENABLED) { bt_device_info_s *bt_device_info = NULL; if (bt_info != NULL) { - ret = bt_adapter_get_bonded_device_info(bt_info->bssid, &bt_device_info); + ret = bt_adapter_get_bonded_device_info(bt_info->bssid, &bt_device_info); if (ret != BT_ERROR_NONE) { LOGE_GEOFENCE("Fail to get the bonded device info/ Not bonded with any device. Error[%d]", ret); /*NEED TO BE DECIDED WHETHER TO REQUEST FOR A SCAN HERE OR JUST EMIT OUT AS STATUS*/ @@ -2172,7 +2172,7 @@ static void dbus_start_geofence_cb(gint fence_id, const gchar *app_id, gpointer status_to_be_emitted = GEOFENCE_FENCE_STATE_OUT; } else { if (bt_device_info == NULL) { - LOGI_GEOFENCE("bt_adapter_get_bonded_device_info [%s] failed.", bt_info->bssid); + LOGI_GEOFENCE("bt_adapter_get_bonded_device_info [%s] failed.", bt_info->bssid); status_to_be_emitted = GEOFENCE_FENCE_STATE_OUT; } else { if (bt_device_info->is_bonded == TRUE && bt_device_info->is_connected == TRUE) { @@ -2468,18 +2468,18 @@ static GVariant *dbus_get_geofences_cb(int place_id, const gchar *app_id, int *f if ((place_info != NULL) && (place_info->access_type == ACCESS_TYPE_PRIVATE)) { if (g_strcmp0(app_id, place_info->appid) != 0) { LOGI_GEOFENCE("Not authorized to access this private place[%d]", place_id); - g_free(place_info); /* Send ZERO data gvariant*/ *errorCode = GEOFENCE_SERVER_ERROR_PLACE_ACCESS_DENIED; *fenceCnt = fence_cnt; g_variant_builder_init(&b, G_VARIANT_TYPE("aa{sv}")); + g_free(place_info); return g_variant_builder_end(&b); } - g_free(place_info); } ret = geofence_manager_get_fence_list_from_db(&count, &fence_list, place_id); } LOGI_GEOFENCE("count = %d", count); + g_free(place_info); if (ret != FENCE_ERR_NONE) { LOGI_GEOFENCE("get list failed"); diff --git a/module/module_geofence_server.c b/module/module_geofence_server.c index 0a1cc92..ff80d10 100644 --- a/module/module_geofence_server.c +++ b/module/module_geofence_server.c @@ -491,7 +491,8 @@ static void __get_caller_app_id(void *handle) pid = getpid(); ret = app_manager_get_app_id(pid, &app_id); if (ret != APP_MANAGER_ERROR_NONE) { - MOD_LOGE("Fail to get app_id from module_geofence_server. Err[%d]", ret); + MOD_LOGE("No app_id. Set app_id to RequestbyFramework"); + geofence_manager->app_id = g_strdup("RequestbyFramework"); } else { MOD_LOGD("app_id: %s", app_id); geofence_manager->app_id = app_id; -- 2.7.4 From 865ec0d97dabca8dad27ce537abdc02b91d2fd84 Mon Sep 17 00:00:00 2001 From: jomui Date: Wed, 26 Jul 2017 17:29:40 +0900 Subject: [PATCH 14/16] remove unused code Signed-off-by: jomui Change-Id: Id89b89b27671e11f88a1f8ba5a90626af1571c32 --- geofence-server/src/geofence_server.c | 1 - 1 file changed, 1 deletion(-) diff --git a/geofence-server/src/geofence_server.c b/geofence-server/src/geofence_server.c index 2ecba0a..367b872 100644 --- a/geofence-server/src/geofence_server.c +++ b/geofence-server/src/geofence_server.c @@ -1122,7 +1122,6 @@ static int __gps_alarm_cb(alarm_id_t alarm_id, void *user_data) if (geofence_server->gps_alarm_id != -1) { /*LOGI_GEOFENCE("GPS interval timer removed. ID[%d]", geofence_server->gps_alarm_id);*/ geofence_server->gps_alarm_id = _geofence_remove_alarm(geofence_server->gps_alarm_id); - geofence_server->gps_alarm_id = -1; } if (geofence_server->loc_gps_started_by_wps == true) { ret = __start_gps_positioning(geofence_server, __geofence_gps_position_changed_cb); -- 2.7.4 From 80204ea329810010b54b81c66aa288897acb4f26 Mon Sep 17 00:00:00 2001 From: jomui Date: Thu, 24 Aug 2017 10:18:24 +0900 Subject: [PATCH 15/16] remove unused code about deprecated display APIs Signed-off-by: jomui Change-Id: Id4af70a4cda643579cdeb0c5232c91b997e5797a --- geofence-server/src/geofence_server.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/geofence-server/src/geofence_server.c b/geofence-server/src/geofence_server.c index 367b872..e9f60f6 100644 --- a/geofence-server/src/geofence_server.c +++ b/geofence-server/src/geofence_server.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include @@ -1149,7 +1148,6 @@ static int __wps_timeout_cb(alarm_id_t alarm_id, void *user_data) /*Stop the wps for sometime when there is no fix*/ __stop_wps_positioning(geofence_server); geofence_server->wps_alarm_id = _geofence_add_alarm(10, __wps_alarm_cb, geofence_server); - /*display_unlock_state(LCD_OFF, PM_RESET_TIMER);*/ return 0; } -- 2.7.4 From 5eac3a8c72205b0c1f9cced96559eeb3765a571c Mon Sep 17 00:00:00 2001 From: Susnata Date: Mon, 12 Mar 2018 05:13:11 -0400 Subject: [PATCH 16/16] Fixed svace issues of geofence-server db Change-Id: Ibbe226a6700c41d291b7e7d8195ca73c1e3e1137 Signed-off-by: Susnata --- geofence-server/src/geofence_server_db.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/geofence-server/src/geofence_server_db.c b/geofence-server/src/geofence_server_db.c index 8c85238..f4c4988 100755 --- a/geofence-server/src/geofence_server_db.c +++ b/geofence-server/src/geofence_server_db.c @@ -1147,6 +1147,7 @@ int geofence_manager_set_geocoordinate_info(int fence_id, geocoordinate_info_s * ret = snprintf(data_name_lon, MAX_DATA_NAME, "%lf", geocoordinate_info->longitude); if (ret < 0) { LOGD_GEOFENCE("ERROR: String will be truncated"); + sqlite3_finalize(state); return FENCE_ERR_STRING_TRUNCATED; } @@ -1157,6 +1158,7 @@ int geofence_manager_set_geocoordinate_info(int fence_id, geocoordinate_info_s * ret = snprintf(data_name_rad, MAX_DATA_NAME, "%lf", geocoordinate_info->radius); if (ret < 0) { LOGD_GEOFENCE("ERROR: String will be truncated"); + sqlite3_finalize(state); return FENCE_ERR_STRING_TRUNCATED; } @@ -1217,6 +1219,9 @@ int geofence_manager_get_geocoordinate_info(int fence_id, geocoordinate_info_s * } *geocoordinate_info = (geocoordinate_info_s *)g_malloc0(sizeof(geocoordinate_info_s)); + if (*geocoordinate_info == NULL) { + sqlite3_finalize(state); + } g_return_val_if_fail(*geocoordinate_info, FENCE_ERR_INVALID_PARAMETER); #ifdef SUPPORT_ENCRYPTION @@ -1314,6 +1319,9 @@ int geofence_manager_get_ap_info(const int fence_id, GList **ap_list) break; } wifi_info = g_slice_new0(wifi_info_s); + if (wifi_info == NULL) { + sqlite3_finalize(state); + } g_return_val_if_fail(wifi_info, -1); if (wifi_info) { bssid = (const char *) sqlite3_column_text(state, 1); @@ -1359,6 +1367,9 @@ int geofence_manager_get_place_info(int place_id, place_info_s **place_info) return FENCE_ERR_SQLITE_FAIL; } *place_info = (place_info_s *)g_malloc0(sizeof(place_info_s)); + if (*place_info == NULL) { + sqlite3_finalize(state); + } g_return_val_if_fail(*place_info, FENCE_ERR_INTERNAL); data_name = (char *)sqlite3_column_text(state, ++index); @@ -1471,6 +1482,9 @@ int geofence_manager_get_bssid_info(const int fence_id, bssid_info_s **bssid_inf break; } bssid_info_from_db = g_slice_new0(bssid_info_s); + if (bssid_info_from_db == NULL) { + sqlite3_finalize(state); + } g_return_val_if_fail(bssid_info_from_db, -1); if (bssid_info_from_db) { bssid = (const char *)sqlite3_column_text(state, 1); @@ -2411,6 +2425,7 @@ int geofence_manager_reset(void) return FENCE_ERR_SQLITE_FAIL; } sqlite3_reset(state); + sqlite3_finalize(state); sqlite3_free(query_two); char *query_three = sqlite3_mprintf("UPDATE sqlite_sequence SET seq = 0 where name = %Q;", menu_table[FENCE_MAIN_TABLE]); @@ -2527,6 +2542,7 @@ int geofence_manager_get_count_by_params(const char *app_id, geofence_type_e fen if (*count <= 0) { LOGI_GEOFENCE("ERROR: count = %d", *count); + sqlite3_finalize(state); return FENCE_ERR_COUNT; } else { LOGI_GEOFENCE("count[%d]", *count); @@ -2623,6 +2639,7 @@ int geofence_manager_get_count_of_fences(int *count) if (*count < 0) { LOGI_GEOFENCE("ERROR: count = %d", *count); + sqlite3_finalize(state); return FENCE_ERR_COUNT; } else { LOGI_GEOFENCE("count[%d]", *count); @@ -2661,6 +2678,7 @@ int geofence_manager_get_place_count_by_placeid(int place_id, int *count) if (*count < 0) { LOGI_GEOFENCE("ERROR: place count = %d", *count); + sqlite3_finalize(state); return FENCE_ERR_COUNT; } else { LOGI_GEOFENCE("place count[%d]", *count); -- 2.7.4