* @file main.cpp
* @author Yunchan Cho (yunchan.cho@samsung.com)
*/
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/capability.h>
-#include <Elementary.h>
#include <aul.h>
#include <app.h>
+#include <Elementary.h>
#include <Core/Util/Log.h>
#include "BoxDaemon.h"
-static bool appCreateCallback(void *data)
+static bool app_create(void *data)
{
LogD("app create");
elm_config_preferred_engine_set("software_x11");
return true;
}
-static void appTerminateCallback(void *data)
-{
- BoxDaemon *daemon = static_cast<BoxDaemon *>(data);
- daemon->stop();
-}
-
-static void appPauseCallback(void *data)
+static void app_reset(service_h service, void *data)
{
- LogD("app pasue");
-}
-
-static void appResumeCallback(void *data)
-{
- LogD("app resume");
-}
-
-static void appServiceCallback(service_h service, void *data)
-{
- LogD("app service");
+ LogD("app reset");
int ret;
char* name;
daemon->handleAppService(service);
}
-static bool grantProcessCapability()
+static void app_pause(void *data)
{
- cap_user_header_t header;
- cap_user_data_t data;
-
- header = static_cast<cap_user_header_t>(malloc(sizeof(*header)));
- data = static_cast<cap_user_data_t>(calloc(sizeof(*data), _LINUX_CAPABILITY_U32S_3));
-
- header->pid = getpid();
- header->version = _LINUX_CAPABILITY_VERSION_3;
-
- // read already granted capabilities of this process
- if (capget(header, data) < 0) {
- LogD("capget error");
- delete [] header;
- delete [] data;
- return false;
- }
-
- // set only inheritable bit for CAP_MAC_ADMIN to '1'
- data[CAP_TO_INDEX(CAP_MAC_ADMIN)].inheritable |= CAP_TO_MASK(CAP_MAC_ADMIN);
-
- // remove capabilities not needed any more
- data[CAP_TO_INDEX(CAP_MAC_ADMIN)].permitted &= ~CAP_TO_MASK(CAP_MAC_ADMIN);
- data[CAP_TO_INDEX(CAP_MAC_ADMIN)].effective &= ~CAP_TO_MASK(CAP_MAC_ADMIN);
- data[CAP_TO_INDEX(CAP_SETPCAP)].permitted &= ~CAP_TO_MASK(CAP_SETPCAP);
- data[CAP_TO_INDEX(CAP_SETPCAP)].effective &= ~CAP_TO_MASK(CAP_SETPCAP);
-
- bool ret = true;
- if (capset(header, data) < 0) {
- LogD("capset error");
- ret = false;
- }
+}
- delete [] header;
- delete [] data;
+static void app_resume(void *data)
+{
+}
- return ret;
+static void app_terminate(void *data)
+{
+ BoxDaemon *daemon = static_cast<BoxDaemon *>(data);
+ daemon->stop();
}
int main (int argc, char *argv[])
{
- // set inheritable bit for CAP_MAC_ADMIN
- // so that WebProcess will have CAP_MAC_ADMIN capability
- if (!grantProcessCapability()) {
- return -1;
- }
+ int ret;
- // set the appcore callbacks
app_event_callback_s ops;
memset(&ops, 0x00, sizeof(app_event_callback_s));
BoxDaemon daemon;
- ops.create = appCreateCallback;
- ops.terminate = appTerminateCallback;
- ops.pause = appPauseCallback;
- ops.resume = appResumeCallback;
- ops.service = appServiceCallback;
+ ops.create = app_create;
+ ops.terminate = app_terminate;
+ ops.pause = app_pause;
+ ops.resume = app_resume;
+ ops.service = app_reset;
+
+#if !defined(TIZEN_PUBLIC)
+ setenv("COREGL_FASTPATH", "1", 1);
+#endif
+ setenv("CAIRO_GL_COMPOSITOR", "msaa", 1);
+ setenv("CAIRO_GL_LAZY_FLUSHING", "yes", 1);
+ setenv("ELM_IMAGE_CACHE", "0", 1);
- // start appcore
- int ret = app_efl_main(&argc, &argv, &ops, &daemon);
+ ret = app_efl_main(&argc, &argv, &ops, &daemon);
return ret;
}