#include <errno.h>
#include <string.h>
#include <stdlib.h>
+#include <pthread.h>
#include <dlog.h>
#include <glib.h>
#include <com-core.h>
#include <com-core_packet.h>
#include <livebox-errno.h>
+#include <secure_socket.h>
#include "debug.h"
#include "client.h"
#include "master_rpc.h"
#include "conf.h"
#include "critical_log.h"
+#include "file_service.h"
+
+int errno;
static struct info {
int fd;
/*!
* \note
*
- * "if (handler->id == NULL)"
+ * "if (handler->id == NULL) {"
*
* The instance is not created yet.
* But the master forcely destroy it and send destroyed event to this
* before creating an instance successfully.
*/
if (handler->created_cb == handler->deleted_cb) {
- if (handler->created_cbdata != handler->deleted_cbdata)
+ if (handler->created_cbdata != handler->deleted_cbdata) {
DbgPrint("cb is same but cbdata is different (%s - %s)\n", pkgname, id);
+ }
handler->deleted_cb = NULL;
handler->deleted_cbdata = NULL;
lb_set_lb_fb(handler, fbfile);
ret = fb_sync(lb_get_lb_fb(handler));
- if (ret != LB_STATUS_SUCCESS)
+ if (ret != LB_STATUS_SUCCESS) {
ErrPrint("Failed to do sync FB (%s - %s) (%d)\n", pkgname, fbfile, ret);
- else
+ } else {
lb_invoke_event_handler(handler, LB_EVENT_LB_UPDATE_BEGIN);
+ }
} else {
ErrPrint("Invalid request[%s], %s\n", id, fbfile);
}
lb_set_lb_fb(handler, fbfile);
ret = fb_sync(lb_get_lb_fb(handler));
- if (ret != LB_STATUS_SUCCESS)
+ if (ret != LB_STATUS_SUCCESS) {
ErrPrint("Failed to do sync FB (%s - %s) (%d)\n", pkgname, fbfile, ret);
- else
+ } else {
lb_invoke_event_handler(handler, LB_EVENT_PD_UPDATE_BEGIN);
+ }
} else {
ErrPrint("Invalid request[%s], %s\n", id, fbfile);
}
const char *fbfile;
const char *content;
const char *title;
+ const char *safe_file;
struct livebox *handler;
int lb_w;
int lb_h;
double priority;
int ret;
- ret = packet_get(packet, "sssiidss",
+ ret = packet_get(packet, "sssiidsss",
&pkgname, &id,
&fbfile, &lb_w, &lb_h,
- &priority, &content, &title);
- if (ret != 8) {
+ &priority, &content, &title,
+ &safe_file);
+ if (ret != 9) {
ErrPrint("Invalid argument\n");
goto out;
}
lb_set_content(handler, content);
lb_set_title(handler, title);
lb_set_size(handler, lb_w, lb_h);
+ lb_set_filename(handler, safe_file);
if (lb_text_lb(handler)) {
(void)parse_desc(handler, livebox_filename(handler), 0);
} else if (lb_get_lb_fb(handler)) {
lb_set_lb_fb(handler, fbfile);
ret = fb_sync(lb_get_lb_fb(handler));
- if (ret != LB_STATUS_SUCCESS)
+ if (ret != LB_STATUS_SUCCESS) {
ErrPrint("Failed to do sync FB (%s - %s) (%d)\n", pkgname, util_basename(util_uri_to_path(id)), ret);
+ }
} else {
ret = LB_STATUS_SUCCESS;
}
- if (ret == LB_STATUS_SUCCESS)
+ if (ret == LB_STATUS_SUCCESS) {
lb_invoke_event_handler(handler, LB_EVENT_LB_UPDATED);
+ }
out:
return NULL;
} else {
(void)lb_set_pd_fb(handler, buf_id);
ret = fb_sync(lb_get_pd_fb(handler));
- if (ret < 0)
+ if (ret < 0) {
ErrPrint("Failed to do sync FB (%s - %s)\n", pkgname, util_basename(util_uri_to_path(id)));
+ }
}
handler->is_pd_created = (status == 0);
(void)lb_set_pd_fb(handler, fbfile);
ret = fb_sync(lb_get_pd_fb(handler));
- if (ret < 0)
+ if (ret < 0) {
ErrPrint("Failed to do sync FB (%s - %s), %d\n", pkgname, util_basename(util_uri_to_path(id)), ret);
- else
+ } else {
lb_invoke_event_handler(handler, LB_EVENT_PD_UPDATED);
+ }
}
out:
goto out;
}
- if (status == LB_STATUS_SUCCESS)
+ if (status == LB_STATUS_SUCCESS) {
lb_set_update_mode(handler, active_mode);
+ }
if (handler->update_mode_cb) {
ret_cb_t cb;
lb_set_lb_fb(handler, fbfile);
ret = fb_sync(lb_get_lb_fb(handler));
- if (ret < 0)
+ if (ret < 0) {
ErrPrint("Failed to do sync FB (%s - %s)\n", pkgname, util_basename(util_uri_to_path(id)));
+ }
/* Just update the size info only. */
}
goto out;
}
- if (status == 0)
+ if (status == 0) {
lb_set_period(handler, period);
+ }
if (handler->period_changed_cb) {
ret_cb_t cb;
goto out;
}
- if (status == 0)
+ if (status == 0) {
(void)lb_set_group(handler, cluster, category);
+ }
if (handler->group_changed_cb) {
ret_cb_t cb;
break;
case _LB_TYPE_SCRIPT:
case _LB_TYPE_BUFFER:
- if (!strlen(lb_fname))
+ if (!strlen(lb_fname)) {
break;
+ }
lb_set_lb_fb(handler, lb_fname);
ret = fb_sync(lb_get_lb_fb(handler));
- if (ret < 0)
+ if (ret < 0) {
ErrPrint("Failed to do sync FB (%s - %s)\n", pkgname, util_basename(util_uri_to_path(id)));
+ }
break;
case _LB_TYPE_TEXT:
lb_set_text_lb(handler);
switch (pd_type) {
case _PD_TYPE_SCRIPT:
case _PD_TYPE_BUFFER:
- if (!strlen(pd_fname))
+ if (!strlen(pd_fname)) {
break;
+ }
lb_set_pd_fb(handler, pd_fname);
ret = fb_sync(lb_get_pd_fb(handler));
- if (ret < 0)
+ if (ret < 0) {
ErrPrint("Failed to do sync FB (%s - %s)\n", pkgname, util_basename(util_uri_to_path(id)));
+ }
break;
case _PD_TYPE_TEXT:
lb_set_text_pd(handler);
} else {
int ret;
- if (packet_get(result, "i", &ret) != 1)
+ if (packet_get(result, "i", &ret) != 1) {
ErrPrint("Invalid argument\n");
- else
+ } else {
DbgPrint("Acquire returns: %d\n", ret);
+ }
}
return;
{
int state = 0;
- if (vconf_get_bool(VCONFKEY_MASTER_STARTED, &state) < 0)
+ if (vconf_get_bool(VCONFKEY_MASTER_STARTED, &state) < 0) {
ErrPrint("Unable to get [%s]\n", VCONFKEY_MASTER_STARTED);
+ }
DbgPrint("Master state: %d\n", state);
if (state == 1 && make_connection() == LB_STATUS_SUCCESS) {
static gboolean timeout_cb(gpointer data)
{
- if (vconf_notify_key_changed(VCONFKEY_MASTER_STARTED, master_started_cb, NULL) < 0)
+ if (vconf_notify_key_changed(VCONFKEY_MASTER_STARTED, master_started_cb, NULL) < 0) {
ErrPrint("Failed to add vconf for monitoring service state\n");
- else
+ } else {
DbgPrint("vconf event callback is registered\n");
+ }
master_started_cb(NULL, NULL);
}
}
+ (void)file_service_init();
+
DbgPrint("Server Address: %s\n", s_info.client_addr);
com_core_add_event_callback(CONNECTOR_DISCONNECTED, disconnected_cb, NULL);
com_core_add_event_callback(CONNECTOR_CONNECTED, connected_cb, NULL);
- if (vconf_notify_key_changed(VCONFKEY_MASTER_STARTED, master_started_cb, NULL) < 0)
+ if (vconf_notify_key_changed(VCONFKEY_MASTER_STARTED, master_started_cb, NULL) < 0) {
ErrPrint("Failed to add vconf for service state\n");
- else
+ } else {
DbgPrint("vconf event callback is registered\n");
+ }
master_started_cb(NULL, NULL);
return 0;
int client_fini(void)
{
int ret;
+
+ (void)file_service_fini();
+
ret = vconf_ignore_key_changed(VCONFKEY_MASTER_STARTED, master_started_cb);
- if (ret < 0)
+ if (ret < 0) {
DbgPrint("Ignore vconf key: %d\n", ret);
+ }
+
com_core_del_event_callback(CONNECTOR_DISCONNECTED, disconnected_cb, NULL);
com_core_del_event_callback(CONNECTOR_CONNECTED, connected_cb, NULL);
com_core_packet_client_fini(s_info.fd);
s_info.fd = -1;
+ free(s_info.client_addr);
+ s_info.client_addr = NULL;
return LB_STATUS_SUCCESS;
}