summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSung-jae Park <nicesj.park@samsung.com>2013-01-04 21:34:06 +0900
committerSung-jae Park <nicesj.park@samsung.com>2013-01-07 15:42:31 +0900
commit51a5b15e09255d6c9bc4bd4a209b498a14f7b507 (patch)
treef15f4e63caf871a64a191f55f69ccacb500e105e
parent73dcdc56b0384aa8e0e4471e40ecd83f203d8eb0 (diff)
downloaddata-provider-master-51a5b15e09255d6c9bc4bd4a209b498a14f7b507.tar.gz
data-provider-master-51a5b15e09255d6c9bc4bd4a209b498a14f7b507.tar.bz2
data-provider-master-51a5b15e09255d6c9bc4bd4a209b498a14f7b507.zip
Revise the spec file
Change the package name of the web livebox provider. (From org.tizen.data-provider-webapp-slave to livebox.web-provider) Clear the files in the shared folder first before initiate the master. Add reader & always folder parse code from conf file. Change-Id: I10415faadda3dd267d728ce71b029abdb770964e
-rw-r--r--data/abi.ini2
-rw-r--r--data/conf.ini4
-rwxr-xr-xdata/data-provider-master3
-rw-r--r--include/conf.h4
-rw-r--r--include/util.h1
-rw-r--r--packaging/org.tizen.data-provider-master.spec7
-rw-r--r--src/conf.c26
-rw-r--r--src/main.c9
-rw-r--r--src/util.c51
9 files changed, 101 insertions, 6 deletions
diff --git a/data/abi.ini b/data/abi.ini
index a2ef140..8822699 100644
--- a/data/abi.ini
+++ b/data/abi.ini
@@ -5,7 +5,7 @@ package=org.tizen.data-provider-slave
package=org.tizen.data-provider-slave
[html]
-package=org.tizen.data-provider-webapp-slave
+package=livebox.web-provider
[osp]
package=gi2qxenosh.osp-livebox-service
diff --git a/data/conf.ini b/data/conf.ini
index 2a10f07..b9ad80a 100644
--- a/data/conf.ini
+++ b/data/conf.ini
@@ -14,8 +14,10 @@ max_log_line=1000
max_log_file=3
sqilte_flush_max=1048576
db_path=/opt/dbspace/.livebox.db
-log_path=/opt/usr/share/live_magazine/log
share_path=/opt/usr/share/live_magazine/
+log_path=/opt/usr/share/live_magazine/log
+always_path=/opt/usr/share/live_magazine/always
+reader_path=/opt/usr/share/live_magazine/reader
script_port_path=/opt/usr/live/script_port/
ping_interval=240.0
slave_max_load=30
diff --git a/data/data-provider-master b/data/data-provider-master
index 2e6ce3c..9e2132a 100755
--- a/data/data-provider-master
+++ b/data/data-provider-master
@@ -34,9 +34,6 @@ launch_provider()
start ()
{
- rm /opt/usr/share/live_magazine/*
- rm /opt/usr/share/live_magazine/reader/*
- rm /opt/usr/share/live_magazine/log/*
rm /tmp/.stop.provider
launch_provider &
}
diff --git a/include/conf.h b/include/conf.h
index 52f0a76..adf0cf5 100644
--- a/include/conf.h
+++ b/include/conf.h
@@ -61,6 +61,8 @@ struct conf {
char *root;
char *script_port;
char *slave_log;
+ char *reader;
+ char *always;
char *db;
} path;
@@ -120,6 +122,8 @@ extern int conf_loader(void);
#define CONF_PATH g_conf.path.conf
#define ROOT_PATH g_conf.path.root
#define SLAVE_LOG_PATH g_conf.path.slave_log
+#define READER_PATH g_conf.path.reader
+#define ALWAYS_PATH g_conf.path.always
#define REPLACE_TAG_APPID g_conf.replace_tag
#define SLAVE_TTL g_conf.slave_ttl
diff --git a/include/util.h b/include/util.h
index 8bc9c72..1411f4f 100644
--- a/include/util.h
+++ b/include/util.h
@@ -19,6 +19,7 @@ extern double util_timestamp(void);
extern int util_check_ext(const char *filename, const char *check_ptr);
extern int util_validate_livebox_package(const char *pkgname);
extern int util_unlink(const char *filename);
+extern int util_unlink_files(const char *folder);
extern char *util_slavename(void);
extern const char *util_basename(const char *name);
extern unsigned long util_free_space(const char *path);
diff --git a/packaging/org.tizen.data-provider-master.spec b/packaging/org.tizen.data-provider-master.spec
index 1498d4a..df10c41 100644
--- a/packaging/org.tizen.data-provider-master.spec
+++ b/packaging/org.tizen.data-provider-master.spec
@@ -1,6 +1,6 @@
Name: org.tizen.data-provider-master
Summary: Master data provider
-Version: 0.13.29
+Version: 0.13.30
Release: 1
Group: main/app
License: Flora License
@@ -73,6 +73,9 @@ chown 5000:5000 /opt/usr/share/live_magazine/log
mkdir -p /opt/usr/share/live_magazine/reader
chown 5000:5000 /opt/usr/share/live_magazine/reader
+mkdir -p /opt/usr/share/live_magazine/always
+chown 5000:5000 /opt/usr/share/live_magazine/always
+
# End of a list of affected folder by the transmute attribute
if [ ! -f "/opt/dbspace/livebox.db" ]; then
@@ -125,3 +128,5 @@ echo "%{_sysconfdir}/init.d/data-provider-master start"
%{_datarootdir}/data-provider-master/*
%{_libdir}/systemd/user/data-provider-master.service
%{_datarootdir}/license/*
+
+# End of a file
diff --git a/src/conf.c b/src/conf.c
index a86747c..f7e3cf7 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -64,6 +64,8 @@ HAPI struct conf g_conf = {
.conf = "/opt/usr/live/%s/etc/%s.conf",
.image = "/opt/usr/share/live_magazine/",
.slave_log = "/opt/usr/share/live_magazine/log",
+ .reader = "/opt/usr/share/live_magazine/reader",
+ .always = "/opt/usr/share/live_magazine/always",
.script = "/opt/usr/live/%s/res/script/%s.edj",
.root = "/opt/usr/live/",
.script_port = "/opt/usr/live/script_port/",
@@ -245,6 +247,22 @@ static void db_path_handler(char *buffer)
DbgPrint("DB Path: %s\n", g_conf.path.db);
}
+static void reader_path_handler(char *buffer)
+{
+ g_conf.path.reader = strdup(buffer);
+ if (!g_conf.path.reader)
+ ErrPrint("Heap: %s\n", strerror(errno));
+ DbgPrint("Reader Path: %s\n", g_conf.path.reader);
+}
+
+static void always_path_handler(char *buffer)
+{
+ g_conf.path.always = strdup(buffer);
+ if (!g_conf.path.always)
+ ErrPrint("Heap: %s\n", strerror(errno));
+ DbgPrint("Always Path: %s\n", g_conf.path.always);
+}
+
static void log_path_handler(char *buffer)
{
g_conf.path.slave_log = strdup(buffer);
@@ -379,6 +397,14 @@ HAPI int conf_loader(void)
.handler = log_path_handler,
},
{
+ .name = "reader_path",
+ .handler = reader_path_handler,
+ },
+ {
+ .name = "always_path",
+ .handler = always_path_handler,
+ },
+ {
.name = "share_path",
.handler = share_path_handler,
},
diff --git a/src/main.c b/src/main.c
index 7e8efd2..32538bd 100644
--- a/src/main.c
+++ b/src/main.c
@@ -226,6 +226,15 @@ int main(int argc, char *argv[])
conf_loader();
+ /*!
+ * \note
+ * Clear old contents files before start the master provider.
+ */
+ (void)util_unlink_files(ALWAYS_PATH);
+ (void)util_unlink_files(READER_PATH);
+ (void)util_unlink_files(IMAGE_PATH);
+ (void)util_unlink_files(SLAVE_LOG_PATH);
+
script_init();
app_create();
diff --git a/src/util.c b/src/util.c
index 48129b1..13c5ca9 100644
--- a/src/util.c
+++ b/src/util.c
@@ -21,6 +21,8 @@
#include <unistd.h>
#include <stdlib.h>
#include <sys/statvfs.h>
+#include <sys/types.h>
+#include <dirent.h>
#include <dlog.h>
#include <Eina.h>
@@ -411,4 +413,53 @@ HAPI char *util_get_file_kept_in_safe(const char *id)
return new_path;
}
+HAPI int util_unlink_files(const char *folder)
+{
+ struct stat info;
+ DIR *handle;
+ struct dirent *entry;
+ char *abspath;
+ int len;
+
+ if (lstat(folder, &info) < 0) {
+ ErrPrint("Error: %s\n", strerror(errno));
+ return -EIO;
+ }
+
+ if (!S_ISDIR(info.st_mode)) {
+ ErrPrint("Error: %s is not a folder", folder);
+ return -EINVAL;
+ }
+
+ handle = opendir(folder);
+ if (!handle) {
+ ErrPrint("Error: %s\n", strerror(errno));
+ return -EIO;
+ }
+
+ while ((entry = readdir(handle))) {
+ if (!strcmp(entry->d_name, "."))
+ continue;
+
+ if (!strcmp(entry->d_name, ".."))
+ continue;
+
+ len = strlen(folder) + strlen(entry->d_name) + 3;
+ abspath = calloc(1, len);
+ if (!abspath) {
+ ErrPrint("Heap: %s\n", strerror(errno));
+ continue;
+ }
+ snprintf(abspath, len - 1, "%s/%s", folder, entry->d_name);
+
+ if (unlink(abspath) < 0)
+ DbgPrint("unlink: %s - %s\n", abspath, strerror(errno));
+
+ free(abspath);
+ }
+
+ closedir(handle);
+ return 0;
+}
+
/* End of a file */