fixed bug for multi-user 90/38590/3 accepted/tizen/mobile/20150504.055815 accepted/tizen/tv/20150504.083719 submit/tizen/20150428.011324 submit/tizen_mobile/20150504.021716 submit/tizen_moblie/20150430.063639 submit/tizen_tv/20150504.061605 submit/tizen_tv/20150504.062656
authorJeesun Kim <iamjs.kim@samsung.com>
Wed, 22 Apr 2015 10:25:07 +0000 (19:25 +0900)
committerJeesun Kim <iamjs.kim@samsung.com>
Thu, 23 Apr 2015 07:18:29 +0000 (16:18 +0900)
Change-Id: Ia13483defe9a95d79dcb08890767ce151e919b16

client/cal_client_ipc.c
common/cal_typedef.h
native/cal_access_control.c
native/cal_db.h
native/cal_db_util.c
native/cal_db_util.h
packaging/calendar-service.spec
server/cal_server.c
server/cal_server_alarm.c
server/cal_server_schema.c
server/cal_server_update.c

index 4657241..c82accb 100644 (file)
 #include "cal_record.h"
 #include "cal_list.h"
 #include "cal_mutex.h"
-
 #include "cal_ipc.h"
 #include "cal_ipc_marshal.h"
-
 #include "cal_client_ipc.h"
 #include "cal_client_reminder.h"
 
@@ -62,7 +60,9 @@ API int calendar_connect(void)
        _cal_mutex_lock(CAL_MUTEX_CONNECTION);
        // ipc create
        if (calendar_ipc == NULL) {
-               ipc_handle = pims_ipc_create(CAL_IPC_SOCKET_PATH);
+               char sock_file[CAL_PATH_MAX_LEN] = {0};
+               snprintf(sock_file, sizeof(sock_file), CAL_SOCK_PATH"/.%s", getuid(), CAL_IPC_SERVICE);
+               ipc_handle = pims_ipc_create(sock_file);
                if (ipc_handle == NULL) {
                        if (errno == EACCES) {
                                ERR("pims_ipc_create() Failed : Permission denied");
@@ -210,7 +210,9 @@ API int calendar_connect_on_thread(void)
 
        // ipc create
        if (calendar_ipc_thread == NULL) {
-               calendar_ipc_thread = pims_ipc_create(CAL_IPC_SOCKET_PATH);
+               char sock_file[CAL_PATH_MAX_LEN] = {0};
+               snprintf(sock_file, sizeof(sock_file), CAL_SOCK_PATH"/.%s", getuid(), CAL_IPC_SERVICE);
+               calendar_ipc_thread = pims_ipc_create(sock_file);
                if (calendar_ipc_thread == NULL) {
                        if (errno == EACCES) {
                                ERR("pims_ipc_create() Failed(%d)", CALENDAR_ERROR_PERMISSION_DENIED);
index eb5591e..a64c0f5 100755 (executable)
 #include <tzplatform_config.h>
 
 #define CAL_TZID_GMT "Etc/GMT"
+#define CAL_SOCK_PATH "/run/user/%d"
 #define CAL_NOTI_EVENT_CHANGED tzplatform_mkpath(TZ_USER_DATA,"calendar-svc/.CALENDAR_SVC_EVENT_CHANGED")
 #define CAL_NOTI_TODO_CHANGED tzplatform_mkpath(TZ_USER_DATA,"calendar-svc/.CALENDAR_SVC_TODO_CHANGED")
 #define CAL_NOTI_CALENDAR_CHANGED tzplatform_mkpath(TZ_USER_DATA,"calendar-svc/.CALENDAR_SVC_CALENDAR_CHANGED")
 #define CAL_NOTI_REMINDER_CAHNGED "reminder"
 #define CAL_FORMAT_LOCAL_DATETIME "%04d-%02d-%02dT%02d:%02d:%02d"
+#define CAL_PATH_MAX_LEN 1024
 
 /**
  * @enum cal_priority_e
index e2df78c..130208c 100644 (file)
@@ -114,7 +114,7 @@ static void __cal_access_control_set_permission_info(calendar_permission_info_s
        while (CAL_DB_ROW == _cal_db_util_stmt_step(stmt)) {
                int id = sqlite3_column_int(stmt, 0);
                int mode = sqlite3_column_int(stmt, 1);
-               char temp = (char *)sqlite3_column_text(stmt, 2);
+               char *temp = (char *)sqlite3_column_text(stmt, 2);
 
                if (!smack_enabled) // smack disabled
                        info->write_list[write_index++] = id;
index 010ac4b..83c1d87 100644 (file)
 #include "calendar_view.h"
 #include "calendar_list.h"
 
-#define CAL_DB_PATH tzplatform_mkpath(TZ_USER_DB, ".calendar-svc.db")
-#define CAL_DB_JOURNAL_PATH tzplatform_mkpath(TZ_USER_DB, ".calendar-svc.db-journal")
+#define CALS_DB_NAME ".calendar-svc.db"
+#define CALS_JN_NAME ".calendar-svc.db-journal"
+#define DB_PATH tzplatform_getenv(TZ_USER_DB)
+#define DATA_PATH tzplatform_getenv(TZ_USER_DATA)
+#define CAL_DB_FILE tzplatform_mkpath(TZ_USER_DB, ".calendar-svc.db")
+#define CAL_JN_FILE tzplatform_mkpath(TZ_USER_DB, ".calendar-svc.db-journal")
+#define CAL_DATA_PATH tzplatform_mkpath(TZ_USER_DATA,"calendar-svc")
 
 // For Security
 #define CAL_SECURITY_FILE_GROUP 5000
index 1ef5f35..79aefd2 100644 (file)
 #include "cal_internal.h"
 #include "cal_typedef.h"
 #include "cal_db.h"
-
 #include "cal_db_util.h"
 
-#define DB_PATH tzplatform_getenv(TZ_USER_DB)
-#define DATA_PATH tzplatform_getenv(TZ_USER_DATA)
-#define CAL_DATA_PATH tzplatform_mkpath(TZ_USER_DATA,"calendar-svc")
 // For Security
 #define CALS_SECURITY_FILE_GROUP 6003
-#define CALS_SECURITY_DEFAULT_PERMISSION 0660
 
 static TLS sqlite3 *calendar_db_handle;
 static TLS int transaction_cnt = 0;
@@ -47,7 +42,7 @@ static TLS bool calendar_change=false;
 static inline int create_noti_file(const char* noti_file)
 {
        int fd, ret;
-       fd = creat(noti_file, CALS_SECURITY_DEFAULT_PERMISSION);
+       fd = creat(noti_file, CAL_SECURITY_DEFAULT_PERMISSION);
        if (-1 == fd)
        {
                printf("open Failed\n");
@@ -171,11 +166,11 @@ int _cal_db_util_open(void)
                {
                        mkdir(DB_PATH, 755);
                }
-               if (-1 == access (CAL_DB_PATH, F_OK))
+               if (-1 == access (CAL_DB_FILE, F_OK))
                {
                        mkdir(DB_PATH, 755);
                }
-               ret = db_util_open(CAL_DB_PATH, &calendar_db_handle, 0);
+               ret = db_util_open(CAL_DB_FILE, &calendar_db_handle, 0);
                retvm_if(SQLITE_OK != ret, CALENDAR_ERROR_DB_FAILED,
                                "db_util_open() Failed(%d).", ret);
        }
index 2eaaa4a..33679a2 100644 (file)
@@ -53,11 +53,8 @@ static inline int _cal_db_util_stmt_bind_text(sqlite3_stmt *stmt, int pos, const
 
 int _cal_db_util_begin_trans(void);
 int _cal_db_util_end_trans(bool is_success);
-
 int _cal_db_util_get_next_ver(void);
-
 int _cal_db_util_get_transaction_ver(void);
-
 void cal_db_util_set_permission(int fd);
 
 #endif  //__CALENDAR_SVC_DB_UTIL_H__
index 24c80fd..a917ff1 100644 (file)
@@ -11,7 +11,6 @@ Requires(post): /sbin/ldconfig
 Requires(post): /usr/bin/sqlite3, /bin/chown
 Requires(post): contacts-service2
 Requires(postun): /sbin/ldconfig
-Requires: sys-assert
 
 BuildRequires: cmake
 BuildRequires: pkgconfig(db-util)
index f358164..7f4a0c8 100644 (file)
@@ -169,7 +169,9 @@ static int __server_main(void)
        int try_count = 0;
        g_type_init();
 
-       pims_ipc_svc_init(CAL_IPC_SOCKET_PATH,CAL_SECURITY_FILE_GROUP, 0777);
+       char sock_file[CAL_PATH_MAX_LEN] = {0};
+       snprintf(sock_file, sizeof(sock_file), CAL_SOCK_PATH"/.%s", getuid(), CAL_IPC_SERVICE);
+       pims_ipc_svc_init(sock_file,CAL_SECURITY_FILE_GROUP, 0777);
 
        if (pims_ipc_svc_register(CAL_IPC_MODULE, CAL_IPC_SERVER_CONNECT, _cal_server_ipc_connect, NULL) != 0)
        {
@@ -294,7 +296,7 @@ static int __server_main(void)
        //loop = g_main_loop_new(NULL, FALSE);
 
        //calendar_alarm_init();
-
+/*
        ret = contacts_connect();
        if (CONTACTS_ERROR_NONE != ret)
        {
@@ -306,7 +308,7 @@ static int __server_main(void)
                DBG("contacts connected");
                on_contact = 1;
        }
-
+*/
        ret = calendar_connect();
        if (CALENDAR_ERROR_NONE != ret)
        {
@@ -318,7 +320,7 @@ static int __server_main(void)
 
        if (on_contact)
        {
-               ret = _cal_server_contacts();
+/*             ret = _cal_server_contacts();
                if (CALENDAR_ERROR_NONE != ret)
                {
                        contacts_disconnect();
@@ -327,7 +329,7 @@ static int __server_main(void)
                }
 
                _cal_server_contacts_sync_start();
-       }
+*/     }
 
        // access_control
        _cal_access_control_set_client_info(NULL, NULL);
@@ -348,10 +350,10 @@ static int __server_main(void)
        {
                if (on_contact)
                {
-                       contacts_disconnect();
+//                     contacts_disconnect();
                }
                ERR("_cal_server_alarm() failed");
-               return -1;
+//             return -1;
        }
 
        _cal_server_calendar_delete_start();
@@ -371,7 +373,7 @@ static int __server_main(void)
        _cal_inotify_finalize();
        calendar_disconnect();
 
-       contacts_disconnect();
+//     contacts_disconnect();
        on_contact = 0;
 
        if (cal_account_h)
index e3853b6..24467d7 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <sys/time.h>
 #include <unistd.h>
-
 #include <alarm.h>
 #include <vconf.h>
 #include <app.h>
index fd65fb4..77db017 100644 (file)
 #include <db-util.h>
 
 #include "cal_internal.h"
+#include "cal_typedef.h"
+#include "cal_db.h"
 #include "schema.h"
 
-#define CALS_DB_NAME ".calendar-svc.db"
-#define CALS_DB_JOURNAL_NAME ".calendar-svc.db-journal"
-#define CALS_DB_PATH "/opt/usr/dbspace/"CALS_DB_NAME
-#define CALS_DB_JOURNAL_PATH "/opt/usr/dbspace/"CALS_DB_JOURNAL_NAME
-
-// For Security
-#define CALS_SECURITY_FILE_GROUP 5000
-#define CALS_SECURITY_DEFAULT_PERMISSION 0660
-#define CALS_SECURITY_DIR_DEFAULT_PERMISSION 0770
-
 static inline int __remake_db_file(char* db_path)
 {
        int ret, fd;
        char *errmsg;
        sqlite3 *db;
-       char db_file[256]={0,};
-       char db_journal_file[256]={0,};
+       char db_file[CAL_PATH_MAX_LEN]={0};
+       char jn_file[CAL_PATH_MAX_LEN]={0};
 
-       if(db_path == NULL)
-       {
-               snprintf(db_file,sizeof(db_file),CALS_DB_PATH);
-               snprintf(db_journal_file,sizeof(db_journal_file),CALS_DB_JOURNAL_PATH);
-       }
-       else
-       {
-               snprintf(db_file,sizeof(db_file),"%s%s",db_path, CALS_DB_NAME);
-               snprintf(db_journal_file,sizeof(db_journal_file),"%s%s", db_path, CALS_DB_JOURNAL_NAME);
-       }
+       snprintf(db_file, sizeof(db_file), "%s/%s", db_path ? db_path : DB_PATH, CALS_DB_NAME);
 
        ret = db_util_open(db_file, &db, 0);
-
-       if (SQLITE_OK != ret)
-       {
+       if (SQLITE_OK != ret) {
                ERR("db_util_open() Failed(%d) ", ret);
                return -1;
        }
@@ -69,42 +50,39 @@ static inline int __remake_db_file(char* db_path)
                ERR("remake calendar DB file is Failed : %s ", errmsg);
                sqlite3_free(errmsg);
        }
-
        db_util_close(db);
 
        fd = open(db_file, O_CREAT | O_RDWR, 0660);
-       if (-1 == fd)
-       {
+       if (-1 == fd) {
                ERR("open Failed ");
                return -1;
        }
 
-       ret = fchown(fd, getuid(), CALS_SECURITY_FILE_GROUP);
-       if (-1 == ret)
-       {
+       ret = fchown(fd, getuid(), CAL_SECURITY_FILE_GROUP);
+       if (-1 == ret) {
                ERR("Failed to fchown ");
                close(fd);
                return -1;
        }
-       fchmod(fd, CALS_SECURITY_DEFAULT_PERMISSION);
+       fchmod(fd, CAL_SECURITY_DEFAULT_PERMISSION);
        close(fd);
 
-       fd = open(db_journal_file, O_CREAT | O_RDWR, 0660);
+       snprintf(jn_file, sizeof(jn_file), "%s/%s", db_path ? db_path : DB_PATH, CALS_JN_NAME);
+       DBG("[%s]", jn_file);
 
-       if (-1 == fd)
-       {
+       fd = open(jn_file, O_CREAT | O_RDWR, 0660);
+       if (-1 == fd) {
                ERR("open Failed ");
                return -1;
        }
 
-       ret = fchown(fd, getuid(), CALS_SECURITY_FILE_GROUP);
-       if (-1 == ret)
-       {
+       ret = fchown(fd, getuid(), CAL_SECURITY_FILE_GROUP);
+       if (-1 == ret) {
                ERR("Failed to fchown ");
                close(fd);
                return -1;
        }
-       fchmod(fd, CALS_SECURITY_DEFAULT_PERMISSION);
+       fchmod(fd, CAL_SECURITY_DEFAULT_PERMISSION);
        close(fd);
 
        return 0;
@@ -113,20 +91,12 @@ static inline int __remake_db_file(char* db_path)
 static inline int __check_db_file(char* db_path)
 {
        int fd = -1;
-
-       char db_file[256]={0,};
-       if(db_path == NULL)
-       {
-               snprintf(db_file,sizeof(db_file),CALS_DB_PATH);
-       }
-       else
-       {
-               snprintf(db_file,sizeof(db_file),"%s%s",db_path, CALS_DB_NAME);
-       }
+       char db_file[CAL_PATH_MAX_LEN]={0,};
+       snprintf(db_file, sizeof(db_file), "%s/%s", db_path ? db_path : DB_PATH, CALS_DB_NAME);
+       DBG("[%s]", db_file);
 
        fd = open(db_file, O_RDONLY);
-       if (fd < 0)
-       {
+       if (fd < 0) {
                ERR("DB file(%s) is not exist(err:%d) ", db_file, fd);
                return -1;
        }
index 32990e2..dcc990e 100644 (file)
@@ -47,7 +47,8 @@ static int __cal_server_update_get_db_version(sqlite3 *db, int *version)
                sqlite3_finalize(stmt);
                return CALENDAR_ERROR_DB_FAILED;
        }
-       if (version) *version = (int)sqlite3_column_int(stmt, 0);
+       if (version)
+               *version = (int)sqlite3_column_int(stmt, 0);
        sqlite3_finalize(stmt);
        return CALENDAR_ERROR_NONE;
 }
@@ -62,14 +63,15 @@ int _cal_server_update(void)
        sqlite3 *__db;
        char query[CAL_DB_SQL_MAX_LEN] = {0};
 
-       ret = db_util_open(CAL_DB_PATH, &__db, 0);
-       if (SQLITE_OK != ret)
-       {
-               ERR("db_util_open() failed");
+       char db_file[256] = {0};
+       snprintf(db_file, sizeof(db_file), "%s/%s", DB_PATH, CALS_DB_NAME);
+       ret = db_util_open(db_file, &__db, 0);
+       if (SQLITE_OK != ret) {
+               ERR("db_util_open() fail(%d):[%s]", ret, db_file);
                return CALENDAR_ERROR_DB_FAILED;
        }
        __cal_server_update_get_db_version(__db, &old_version);
-       DBG("old version(%d)", old_version);
+       DBG("[%s] old version(%d)", db_file, old_version);
 
        if (old_version < 100)
        {