summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkj7.sung <kj7.sung@samsung.com>2017-07-19 11:18:49 +0900
committerkj7.sung <kj7.sung@samsung.com>2017-07-19 11:18:49 +0900
commit869ddf5ab1c959d800fac466e573f33d653411c7 (patch)
treebf016a5c8f4a3015bf7f6d3f2b868de7601964a9
parentbca79ecf5b34b7bda8b690e512f8b26958c94ee9 (diff)
downloadlbs-server-869ddf5ab1c959d800fac466e573f33d653411c7.tar.gz
lbs-server-869ddf5ab1c959d800fac466e573f33d653411c7.tar.bz2
lbs-server-869ddf5ab1c959d800fac466e573f33d653411c7.zip
Change gps plugin loadingsubmit/tizen/20170719.103732
Change-Id: I036e3dcf38db6604e8e2bf634275520535931574 Signed-off-by: kj7.sung <kj7.sung@samsung.com>
-rw-r--r--lbs-server/include/nps_plugin_intf.h2
-rw-r--r--lbs-server/src/fused.c1
-rw-r--r--lbs-server/src/gps_plugin_module.c33
-rw-r--r--lbs-server/src/gps_plugin_module.h3
-rw-r--r--lbs-server/src/lbs_server.c1
-rw-r--r--lbs-server/src/nps_plugin_module.c7
-rw-r--r--lbs-server/src/server.c104
-rw-r--r--packaging/lbs-server.spec2
8 files changed, 31 insertions, 122 deletions
diff --git a/lbs-server/include/nps_plugin_intf.h b/lbs-server/include/nps_plugin_intf.h
index 3e392f6..8dd29b2 100644
--- a/lbs-server/include/nps_plugin_intf.h
+++ b/lbs-server/include/nps_plugin_intf.h
@@ -24,7 +24,7 @@
#define _NPS_PLUGIN_INTF_H_
#define NPS_UNIQUE_ID_LEN (20)
-#define NPS_PLUGIN_PATH "/usr/lib/libSLP-nps-plugin.so"
+#define NPS_PLUGIN_PATH LIB_DIR"/libSLP-nps-plugin.so"
typedef struct {
double latitude; /* decimal degree (WGS84) */
diff --git a/lbs-server/src/fused.c b/lbs-server/src/fused.c
index c583bac..c08ec02 100644
--- a/lbs-server/src/fused.c
+++ b/lbs-server/src/fused.c
@@ -70,7 +70,6 @@ static fl_sensory_flags sensor_func_detect()
if (sensor_get_default_sensor(SENSOR_GYROSCOPE, &fused.sensor[GYROSCOPE].handle) == SENSOR_ERROR_NONE)
active_sensors |= GYROSCOPE_FLAG;
- LOG_FUSED(LOG_DEBUG, "active_sensors : 0x%X", active_sensors);
return active_sensors;
}
diff --git a/lbs-server/src/gps_plugin_module.c b/lbs-server/src/gps_plugin_module.c
index e3821a2..38d85f2 100644
--- a/lbs-server/src/gps_plugin_module.c
+++ b/lbs-server/src/gps_plugin_module.c
@@ -29,33 +29,20 @@
#include "setting.h"
#include "debug_util.h"
-#define SPECIFIC_PLUGIN_PATH_PREFIX LIB_DIR"/liblbs-server-plugin-"
-#define SPECIFIC_PLUGIN_PATH_POSTFIX ".so"
+#define REPLAY_PLUGIN_PATH LIB_DIR"/libSLP-lbs-plugin-replay.so"
-static const gps_plugin_interface *g_plugin = NULL;
+static const gps_plugin_interface *g_plugin_interface = NULL;
-int load_plugin_module(char *specific_name, void **plugin_handle)
+int load_plugin_module(gboolean replay_enabled, void **plugin_handle)
{
char plugin_path[256];
- if (specific_name[0] == '\0') {
+ if (replay_enabled)
+ strncpy(plugin_path, REPLAY_PLUGIN_PATH, sizeof(plugin_path));
+ else
strncpy(plugin_path, GPS_PLUGIN_PATH, sizeof(plugin_path));
- } else {
- snprintf(plugin_path, sizeof(plugin_path),
- SPECIFIC_PLUGIN_PATH_PREFIX"%s"
- SPECIFIC_PLUGIN_PATH_POSTFIX,
- specific_name);
-
- struct stat st = {0};
-
- if (stat(plugin_path, &st) != 0) {
- strncpy(plugin_path, GPS_PLUGIN_PATH, sizeof(plugin_path));
-
- /* Comment out to support real GPS when GPS plugin is installed*/
- /* setting_set_int(VCONFKEY_LOCATION_REPLAY_ENABLED, 1); */
- }
- }
+ LOG_GPS(DBG_ERR, "Load plugin module : %s", replay_enabled ? "REPLAY" : "GPS");
*plugin_handle = dlopen(plugin_path, RTLD_NOW);
if (!*plugin_handle) {
LOG_GPS(DBG_ERR, "Failed to load plugin module: %s", plugin_path);
@@ -71,9 +58,9 @@ int load_plugin_module(char *specific_name, void **plugin_handle)
return FALSE;
}
- g_plugin = get_gps_plugin_interface();
+ g_plugin_interface = get_gps_plugin_interface();
- if (!g_plugin) {
+ if (!g_plugin_interface) {
LOG_GPS(DBG_ERR, "Failed to find load symbol in plugin module.");
dlclose(*plugin_handle);
return FALSE;
@@ -97,5 +84,5 @@ int unload_plugin_module(void *plugin_handle)
const gps_plugin_interface *get_plugin_module(void)
{
- return g_plugin;
+ return g_plugin_interface;
}
diff --git a/lbs-server/src/gps_plugin_module.h b/lbs-server/src/gps_plugin_module.h
index 62a675c..95547b0 100644
--- a/lbs-server/src/gps_plugin_module.h
+++ b/lbs-server/src/gps_plugin_module.h
@@ -22,9 +22,10 @@
#ifndef _GPS_PLUGIN_MODULE_H_
#define _GPS_PLUGIN_MODULE_H_
+#include <glib.h>
#include "gps_plugin_intf.h"
-int load_plugin_module(char *specific_name, void **plugin_handle);
+int load_plugin_module(gboolean replay_enabled, void **plugin_handle);
int unload_plugin_module(void *plugin_handle);
const gps_plugin_interface *get_plugin_module(void);
diff --git a/lbs-server/src/lbs_server.c b/lbs-server/src/lbs_server.c
index 89c33d0..c36b98c 100644
--- a/lbs-server/src/lbs_server.c
+++ b/lbs-server/src/lbs_server.c
@@ -858,6 +858,7 @@ static gboolean update_pos_tracking_interval(lbs_server_interval_manipulation_ty
LOG_GPS(DBG_LOW, "ADD, interval[%u], client[%s], interval_table(%p)", interval, client, interval_table);
if (interval_table) {
__add_interval_table(interval_table, interval);
+ g_free(client_cpy);
} else {
LOG_GPS(DBG_LOW, "create gps hash_table to add first key[%s]", client);
interval_table = g_hash_table_new(g_direct_hash, g_direct_equal);
diff --git a/lbs-server/src/nps_plugin_module.c b/lbs-server/src/nps_plugin_module.c
index 5fa7ed3..e9d6920 100644
--- a/lbs-server/src/nps_plugin_module.c
+++ b/lbs-server/src/nps_plugin_module.c
@@ -59,15 +59,14 @@ int nps_is_dummy_plugin_module()
int nps_load_plugin_module(void **plugin_handle)
{
- LOG_NPS(DBG_LOW, "Begin to load plugin module");
+ LOG_NPS(DBG_LOW, "Begin to load NPS plugin module");
char plugin_path[256] = {0};
strncpy(plugin_path, NPS_PLUGIN_PATH, sizeof(plugin_path));
if (access(plugin_path, R_OK) != 0) {
- LOG_NPS(DBG_ERR, "Failed to access plugin module. [%s]", plugin_path);
- LOG_NPS(DBG_LOW, "load dummy");
+ LOG_NPS(DBG_ERR, "Failed to access NPS plugin[%s]. Dummy loading", plugin_path);
g_plugin = &g_dummy;
g_is_nps_dummy_module = TRUE;
return TRUE;
@@ -76,7 +75,7 @@ int nps_load_plugin_module(void **plugin_handle)
*plugin_handle = dlopen(plugin_path, RTLD_NOW);
if (!*plugin_handle) {
LOG_NPS(DBG_ERR, "Failed to load plugin module. [%s]", plugin_path);
- /* LOG_NPS(DBG_ERR, "%s", dlerror()); */
+ LOG_NPS(DBG_ERR, "%s", dlerror());
return FALSE;
}
diff --git a/lbs-server/src/server.c b/lbs-server/src/server.c
index dc19c24..1387782 100644
--- a/lbs-server/src/server.c
+++ b/lbs-server/src/server.c
@@ -61,24 +61,6 @@
#include <glib/gthread.h>
#endif
-#define REPLAY_MODULE "replay"
-
-#define PLATFORM_PATH "/sys/devices/platform"
-#define BRCM4752_PATH PLATFORM_PATH"/bcm4752"
-#define BRCM47520_PATH PLATFORM_PATH"/bcm47520"
-#define BRCM47511_PATH PLATFORM_PATH"/bcm47511"
-#define BRCM47522_PATH PLATFORM_PATH"/bcm47522"
-#define BRCM4774_PATH PLATFORM_PATH"/bcm4774"
-#define BRCM477_PATH PLATFORM_PATH"/gps"
-#define CSR_PATH PLATFORM_PATH"/gsd4t"
-#define QCOM8210_PATH PLATFORM_PATH"/msm8210_gps"
-#define QCOM8x30_PATH PLATFORM_PATH"/msm8x30_gps"
-#define QCOM9x15_PATH PLATFORM_PATH"/msm9x15_gps"
-#define QCOM8974_PATH PLATFORM_PATH"/msm8974_gps"
-#define QCOM8226_PATH PLATFORM_PATH"/msm8226_gps"
-#define QCOM8916_PATH PLATFORM_PATH"/msm8916_gps"
-#define USB_PLUGIN_PATH "/etc/lbs-server/replay/nmea_usb.log"
-
#define MPS_TO_KMPH 3.6 /* 1 m/s = 3.6 km/h */
struct gps_callbacks g_update_cb;
@@ -154,25 +136,19 @@ static gboolean get_replay_enabled()
static void reload_plugin_module(gps_server_t *server)
{
- char *module_name;
gps_failure_reason_t ReasonCode = GPS_FAILURE_CAUSE_NORMAL;
- if (server->replay_enabled == TRUE)
- module_name = REPLAY_MODULE;
- else
- module_name = server->gps_plugin.name;
-
- LOG_GPS(DBG_LOW, "replay_enabled:%d, Loading plugin.name: %s", server->replay_enabled, module_name);
+ LOG_GPS(DBG_LOW, "reload_plugin_module : replay enabled: %d", server->replay_enabled);
if (!get_plugin_module()->deinit(&ReasonCode)) {
LOG_GPS(DBG_ERR, "Fail to GPS plugin deinit");
} else {
unload_plugin_module(&server->gps_plugin.handle);
- if (!load_plugin_module(module_name, &server->gps_plugin.handle)) {
- LOG_GPS(DBG_ERR, "Fail to load %s plugin", module_name);
+ if (!load_plugin_module(server->replay_enabled, &server->gps_plugin.handle)) {
+ LOG_GPS(DBG_ERR, "Fail to load plugin module");
} else {
if (!get_plugin_module()->init(_gps_server_gps_event_cb, (void *)server)) {
- LOG_GPS(DBG_ERR, "Fail to %s plugin init", module_name);
+ LOG_GPS(DBG_ERR, "Fail to plugin init");
return;
}
}
@@ -283,7 +259,7 @@ int request_start_session(int interval)
int request_stop_session()
{
gboolean status = TRUE;
- gboolean cur_replay_enabled = FALSE;
+ gboolean is_replay_enabled = FALSE;
gps_failure_reason_t reason_code = GPS_FAILURE_CAUSE_NORMAL;
gps_server_t *server = g_gps_server;
@@ -293,9 +269,9 @@ int request_stop_session()
if (status) {
server->session_state = GPS_SESSION_STOPPING;
LOG_GPS(DBG_LOW, "==GPSSessionState[%d]", server->session_state);
- cur_replay_enabled = get_replay_enabled();
- if (server->replay_enabled != cur_replay_enabled) {
- server->replay_enabled = cur_replay_enabled;
+ is_replay_enabled = get_replay_enabled();
+ if (server->replay_enabled != is_replay_enabled) {
+ server->replay_enabled = is_replay_enabled;
reload_plugin_module(server);
}
setting_notify_key_changed(VCONFKEY_LOCATION_REPLAY_ENABLED, _gps_replay_changed_cb, (void *)server);
@@ -345,7 +321,7 @@ int request_start_batch_session(int batch_interval, int batch_period)
int request_stop_batch_session(int batch_interval, int batch_period, int session_status)
{
gboolean status = TRUE;
- gboolean cur_replay_enabled = FALSE;
+ gboolean is_replay_enabled = FALSE;
gps_failure_reason_t reason_code = GPS_FAILURE_CAUSE_NORMAL;
gps_server_t *server = g_gps_server;
gps_action_start_data_t gps_start_data;
@@ -360,9 +336,9 @@ int request_stop_batch_session(int batch_interval, int batch_period, int session
if (status == TRUE && session_status == 0) {
server->session_state = GPS_SESSION_STOPPING;
LOG_GPS(DBG_LOW, "==GPSSessionState[%d]", server->session_state);
- cur_replay_enabled = get_replay_enabled();
- if (server->replay_enabled != cur_replay_enabled) {
- server->replay_enabled = cur_replay_enabled;
+ is_replay_enabled = get_replay_enabled();
+ if (server->replay_enabled != is_replay_enabled) {
+ server->replay_enabled = is_replay_enabled;
reload_plugin_module(server);
}
setting_notify_key_changed(VCONFKEY_LOCATION_REPLAY_ENABLED, _gps_replay_changed_cb, (void *)server);
@@ -468,31 +444,10 @@ int get_nmea_from_server(int *timestamp, char **nmea_data)
return TRUE;
}
-static gboolean _gps_plugin_handler_init(gps_server_t *server, char *module_name)
-{
- if (module_name == NULL) {
- LOG_GPS(DBG_ERR, "Fail : module_name is NULL");
- return FALSE;
- }
-
- server->gps_plugin.handle = NULL;
- server->gps_plugin.name = (char *)malloc(strlen(module_name) + 1);
- g_return_val_if_fail(server->gps_plugin.name, FALSE);
-
- g_strlcpy(server->gps_plugin.name, module_name, strlen(module_name) + 1);
-
- return TRUE;
-}
-
static void _gps_plugin_handler_deinit(gps_server_t *server)
{
if (server->gps_plugin.handle != NULL)
server->gps_plugin.handle = NULL;
-
- if (server->gps_plugin.name != NULL) {
- free(server->gps_plugin.name);
- server->gps_plugin.name = NULL;
- }
}
static void _gps_get_nmea_replay_mode(gps_server_t *server)
@@ -1084,32 +1039,6 @@ static void *_gps_register_msgfwcb(void *data)
}
#endif
-void check_plugin_module(char *module_name)
-{
- if (get_replay_enabled() == TRUE) {
- g_strlcpy(module_name, "replay", strlen("replay") + 1);
- LOG_GPS(DBG_LOW, "REPLAY_ENABELD is TRUE");
- } else if (access(USB_PLUGIN_PATH, F_OK) == 0) {
- g_strlcpy(module_name, "usb", strlen("usb") + 1);
- } else if (access(BRCM4752_PATH, F_OK) == 0 || access(BRCM47520_PATH, F_OK) == 0 ||
- access(BRCM47522_PATH, F_OK) == 0 || access(BRCM477_PATH, F_OK) == 0 || access(BRCM4774_PATH, F_OK) == 0) {
- g_strlcpy(module_name, "brcm", strlen("brcm") + 1);
- } else if (access(BRCM47511_PATH, F_OK) == 0) {
- g_strlcpy(module_name, "brcm-legacy", strlen("brcm-legacy") + 1);
- } else if (access(CSR_PATH, F_OK) == 0) {
- g_strlcpy(module_name, "csr", strlen("csr") + 1);
- } else if (access(QCOM8x30_PATH, F_OK) == 0 || access(QCOM9x15_PATH, F_OK) == 0 ||
- access(QCOM8974_PATH, F_OK) == 0 || access(QCOM8210_PATH, F_OK) == 0 ||
- access(QCOM8226_PATH, F_OK) == 0 || access(QCOM8916_PATH, F_OK) == 0) {
- g_strlcpy(module_name, "qcom", strlen("qcom") + 1);
- } else {
- g_strlcpy(module_name, "replay", strlen("replay") + 1);
- LOG_GPS(DBG_LOW, "There is no gps module");
- }
-
- LOG_GPS(DBG_LOW, ">> module name : %s", module_name);
-}
-
static gps_server_t *_initialize_gps_data(void)
{
g_gps_server = (gps_server_t *) malloc(sizeof(gps_server_t));
@@ -1210,22 +1139,15 @@ int initialize_server(int argc, char **argv)
LOG_FUNC;
gps_server_t *server;
- char module_name[16];
server = _initialize_gps_data();
if (server == NULL)
return -1;
- check_plugin_module(module_name);
- if (!_gps_plugin_handler_init(server, module_name)) {
- LOG_GPS(DBG_ERR, "Fail to init plugin handle");
- return -1;
- }
-
_gps_get_nmea_replay_mode(server);
_gps_notify_params(server);
- if (!load_plugin_module(server->gps_plugin.name, &server->gps_plugin.handle)) {
+ if (!load_plugin_module(server->replay_enabled, &server->gps_plugin.handle)) {
LOG_GPS(DBG_ERR, "Fail to load plugin module.");
return -1;
}
diff --git a/packaging/lbs-server.spec b/packaging/lbs-server.spec
index 7cc5a30..c9fa15a 100644
--- a/packaging/lbs-server.spec
+++ b/packaging/lbs-server.spec
@@ -1,6 +1,6 @@
Name: lbs-server
Summary: LBS Server for Tizen
-Version: 1.2.0
+Version: 1.2.1
Release: 1
Group: Location/Service
License: Apache-2.0