Fix dlog format issues
[platform/core/connectivity/bluetooth-agent.git] / map-agent / bluetooth_map_email.c
index e5210f0..09edbfb 100644 (file)
@@ -35,6 +35,9 @@
 #include <glib.h>
 #include <gio/gio.h>
 #include <stdlib.h>
+#ifdef ARCH64
+#include <stdint.h>
+#endif
 
 #define BT_MAIL_ID_MAX_LENGTH 50
 #define BT_MAP_TIMESTAMP_MAX_LEN 16
@@ -65,6 +68,7 @@
 
 extern guint64 current_push_map_id;
 
+/* LCOV_EXCL_START */
 static void __bt_map_parse_moved_mails(char *inbuf, int *from_box_id,
                                int *to_box_id, GList **mail_list)
 {
@@ -77,7 +81,7 @@ static void __bt_map_parse_moved_mails(char *inbuf, int *from_box_id,
        gchar **outer_tok;
        char delimiter[2] = { 0x01, 0x00 };
        outer_tok = g_strsplit_set(inbuf, delimiter, -1);
-       if (outer_tok == NULL ) {
+       if (outer_tok == NULL) {
                ERR("outer_tok == NULL");
                return;
        }
@@ -90,7 +94,11 @@ static void __bt_map_parse_moved_mails(char *inbuf, int *from_box_id,
                inner_tok = g_strsplit_set(outer_tok[2], ",", -1);
                if (g_strv_length(inner_tok) == 1) { // only one mail_id exists without ","
                        int mail_id = atoi(outer_tok[2]);
+#ifdef ARCH64
+                       *mail_list = g_list_append(*mail_list, (void *)(uintptr_t) mail_id);
+#else
                        *mail_list = g_list_append(*mail_list, (void *) mail_id);
+#endif
                } else {
                        int i;
                        for (i = 0; i < g_strv_length(inner_tok); ++i) {
@@ -98,7 +106,11 @@ static void __bt_map_parse_moved_mails(char *inbuf, int *from_box_id,
                                        continue;
                                else {
                                        int mail_id = atoi(inner_tok[i]);
+#ifdef ARCH64
+                                       *mail_list = g_list_prepend(*mail_list, (void *)(uintptr_t) mail_id);
+#else
                                        *mail_list = g_list_prepend(*mail_list, (void *) mail_id);
+#endif
                                }
                        }
                }
@@ -175,13 +187,14 @@ static void __bt_email_subscription_callback(GDBusConnection *connection,
                }
 
                handle = _bt_add_id(mailid, BT_MAP_ID_EMAIL);
-               if (mailbox->mailbox_type == EMAIL_MAILBOX_TYPE_INBOX) {
-                       _bt_mns_client_event_notify("NewMessage", handle,
-                                                               "TELECOM/MSG/INBOX", "",
-                                                               "EMAIL");
-               }
-               if (mailbox)
+               if (mailbox) {
+                       if (mailbox->mailbox_type == EMAIL_MAILBOX_TYPE_INBOX) {
+                               _bt_mns_client_event_notify("NewMessage", handle,
+                                               "TELECOM/MSG/INBOX", "",
+                                               "EMAIL");
+                       }
                        email_free_mailbox(&mailbox, 1);
+               }
 
        } else if (subtype == NOTI_MAIL_MOVE_FINISH) {
                /* Received values from Signal*/
@@ -229,7 +242,11 @@ static void __bt_email_subscription_callback(GDBusConnection *connection,
 
                if (mailbox_to->mailbox_type == EMAIL_MAILBOX_TYPE_TRASH) {
                        while (mail_ids) {
+#ifdef ARCH64
+                               int mailid = (int)(uintptr_t)(void*) mail_ids->data;
+#else
                                int mailid = (int) mail_ids->data;
+#endif
                                char *old_folder;
                                DBG("Mail ID[%d]", mailid);
                                if (mailid == 0)
@@ -237,7 +254,7 @@ static void __bt_email_subscription_callback(GDBusConnection *connection,
 
                                old_folder = __bt_email_get_path(mailbox_from->mailbox_type);
                                handle = _bt_add_id(mailid, BT_MAP_ID_EMAIL);
-                               DBG("[MessageDeleted] Handle:%d", handle);
+                               DBG("[MessageDeleted] Handle:%llu", handle);
                                _bt_mns_client_event_notify("MessageShift", handle,
                                                "TELECOM/MSG/DELETED", old_folder, "EMAIL");
                                g_free(old_folder);
@@ -246,13 +263,17 @@ static void __bt_email_subscription_callback(GDBusConnection *connection,
                } else if (mailbox_to->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX
                                && mailbox_from->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX) {
                        while (mail_ids) {
+#ifdef ARCH64
+                               int mailid = (int)(uintptr_t)(void*) mail_ids->data;
+#else
                                int mailid = (int) mail_ids->data;
+#endif
                                DBG("Mail ID[%d]", mailid);
                                if (mailid == 0)
                                        break;
 
                                handle = _bt_add_id(mailid, BT_MAP_ID_EMAIL);
-                               DBG("[SendingSuccess] Handle:%d", handle);
+                               DBG("[SendingSuccess] Handle:%llu", handle);
 
                                _bt_mns_client_event_notify("MessageShift", handle,
                                                "TELECOM/MSG/SENT", "TELECOM/MSG/OUTBOX", "EMAIL");
@@ -262,12 +283,12 @@ static void __bt_email_subscription_callback(GDBusConnection *connection,
                                mail_ids = g_list_next(mail_ids);
                        }
                }
-               if (mailbox_to)
-                       email_free_mailbox(&mailbox_to, 1);
-               if (mailbox_from)
-                       email_free_mailbox(&mailbox_from, 1);
+
+               email_free_mailbox(&mailbox_to, 1);
+               email_free_mailbox(&mailbox_from, 1);
        }
 }
+/* LCOV_EXCL_STOP */
 
 gboolean _bt_map_start_email_service(void)
 {
@@ -281,6 +302,7 @@ gboolean _bt_map_start_email_service(void)
                return FALSE;
        }
 
+       /* LCOV_EXCL_START */
        dbus_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
        if (error) {
                ERR("g_bus_get_sync() failed (%s)", error->message);
@@ -301,6 +323,7 @@ gboolean _bt_map_start_email_service(void)
                return FALSE;
        }
 
+       /* LCOV_EXCL_STOP */
        return TRUE;
 }
 
@@ -310,8 +333,10 @@ gboolean _bt_map_stop_email_service(void)
 
        err = email_service_end();
        if (err != EMAIL_ERROR_NONE) {
+               /* LCOV_EXCL_START */
                ERR("email_service_end fail  error = %d\n", err);
                return FALSE;
+               /* LCOV_EXCL_STOP */
        }
 
        return TRUE;
@@ -331,6 +356,7 @@ gboolean _bt_map_email_get_supported_folders(gboolean folders[FOLDER_COUNT][MSG_
        if (err != EMAIL_ERROR_NONE)
                return FALSE;
 
+       /* LCOV_EXCL_START */
        err = email_get_mailbox_list(account_id, EMAIL_MAILBOX_ALL,
                                &mailbox_list, &mailbox_count);
        if (err != EMAIL_ERROR_NONE)
@@ -373,9 +399,11 @@ gboolean _bt_map_email_get_supported_folders(gboolean folders[FOLDER_COUNT][MSG_
        if (mailbox_list != NULL)
                email_free_mailbox(&mailbox_list, mailbox_count);
 
+       /* LCOV_EXCL_STOP */
        return TRUE;
 }
 
+/* LCOV_EXCL_START */
 static message_info_t *__bt_email_info_get(email_mail_list_item_t *email_struct,
                                                        guint8 subject_len)
 {
@@ -388,8 +416,12 @@ static message_info_t *__bt_email_info_get(email_mail_list_item_t *email_struct,
        email_info = g_new0(message_info_t, 1);
 
        uid = _bt_add_id(email_struct->mail_id, BT_MAP_ID_EMAIL);
+#ifdef ARCH64
+       snprintf(email_handle, sizeof(email_handle), "%lx", uid);
+#else
        snprintf(email_handle, sizeof(email_handle), "%llx", uid);
-       DBG("******* MAP ID:%d, MailID:%d **********", uid, email_struct->mail_id);
+#endif
+       DBG("******* MAP ID:%llu, MailID:%d **********", uid, email_struct->mail_id);
        email_info->handle = g_strdup(email_handle);
 
        dptime = email_struct->date_time;
@@ -440,7 +472,10 @@ static message_info_t *__bt_email_info_get(email_mail_list_item_t *email_struct,
                email_info->recipient_name = g_strdup(mail_data->alias_recipient);
        }
 
-       email_info->recipient_addressing = g_strdup(mail_data->email_address_recipient);
+       if (mail_data->email_address_recipient) {
+               g_free(email_info->recipient_addressing);
+               email_info->recipient_addressing = g_strdup(mail_data->email_address_recipient);
+       }
 
        return email_info;
 }
@@ -464,13 +499,12 @@ static gboolean __bt_map_email_compare_folders(char *alias, char *folder)
                map_folder = "OUTBOX";
        } else if (!g_ascii_strncasecmp(alias, "[gmail]", strlen("[gmail]"))) {
                DBG("GMAIL Folders");
-               if (!g_ascii_strncasecmp(alias, "[Gmail]/Drafts", strlen("[Gmail]/Drafts"))) {
+               if (!g_ascii_strncasecmp(alias, "[Gmail]/Drafts", strlen("[Gmail]/Drafts")))
                        map_folder = "DRAFT";
-               } else if (!g_ascii_strncasecmp(alias, "[Gmail]/Sent", strlen("[Gmail]/Sent"))) {
+               else if (!g_ascii_strncasecmp(alias, "[Gmail]/Sent", strlen("[Gmail]/Sent")))
                        map_folder = "SENT";
-               } else if (!g_ascii_strncasecmp(alias, "[Gmail]/Trash", strlen("[Gmail]/Trash"))) {
+               else if (!g_ascii_strncasecmp(alias, "[Gmail]/Trash", strlen("[Gmail]/Trash")))
                        map_folder = "DELETED";
-               }
        }
 
        DBG("Equivalent MAP Folder for Alias: %s", map_folder);
@@ -597,6 +631,7 @@ gboolean _bt_map_get_email_list(char *folder, int max,
        DBG("EXIT");
        return TRUE;
 }
+/* LCOV_EXCL_STOP */
 
 gboolean _bt_map_update_mailbox(char *folder)
 {
@@ -621,10 +656,11 @@ gboolean _bt_map_set_email_read_status(int mail_id, int read_status)
 
        ret = email_get_mail_data(mail_id, &mail_data);
        if (ret != EMAIL_ERROR_NONE) {
-               ERR("email_get_mail_data failed\n");
+               ERR("email_get_mail_data failed\n"); /* LCOV_EXCL_LINE */
                return FALSE;
        }
 
+       /* LCOV_EXCL_START */
        ret = email_set_flags_field(mail_data->account_id, &mail_id, 1,
                                EMAIL_FLAGS_SEEN_FIELD, read_status, 0);
        if (ret != EMAIL_ERROR_NONE) {
@@ -633,6 +669,7 @@ gboolean _bt_map_set_email_read_status(int mail_id, int read_status)
        }
 
        email_free_mail_data(&mail_data, 1);
+       /* LCOV_EXCL_STOP */
        return TRUE;
 }
 
@@ -645,6 +682,7 @@ gboolean _bt_map_set_email_delete_status(int mail_id, int read_status)
        if (ret != EMAIL_ERROR_NONE)
                return FALSE;
 
+       /* LCOV_EXCL_START */
        ret = email_delete_mail(mail_data->mailbox_id, &mail_id, 1, 1);
        if (ret != EMAIL_ERROR_NONE) {
                email_free_mail_data(&mail_data, 1);
@@ -652,9 +690,11 @@ gboolean _bt_map_set_email_delete_status(int mail_id, int read_status)
        }
 
        email_free_mail_data(&mail_data, 1);
+       /* LCOV_EXCL_STOP */
        return TRUE;
 }
 
+/* LCOV_EXCL_START */
 static gchar *__bt_get_email_folder_name(int mailboxtype)
 {
        switch (mailboxtype) {
@@ -697,8 +737,8 @@ static char *__bt_prepare_email_bmseg(email_mail_data_t *mail_data)
        g_free(folder);
 
        /* List of recepient & sender */
-       DBG("Sender: %d", mail_data->email_address_sender);
-       DBG("Sender Alias: %d", mail_data->alias_sender);
+       DBG("Sender: %s", mail_data->email_address_sender);
+       DBG("Sender Alias: %s", mail_data->alias_sender);
        g_string_append_printf(msg, EMAIL_VCARD, mail_data->email_address_sender,
                        mail_data->email_address_sender);
 
@@ -719,15 +759,20 @@ static char *__bt_prepare_email_bmseg(email_mail_data_t *mail_data)
        if (body_file != NULL) {
                fseek(body_file, 0, SEEK_END);
                email_size = ftell(body_file);
+               if (email_size <= 0) {
+                       ERR("email_size is not a positive number");
+                       g_string_free(msg, TRUE);
+                       fclose(body_file);
+                       return NULL;
+               }
                rewind(body_file);
 
-               buf = (char *)g_malloc0(sizeof(char) * email_size);
+               buf = (char *)g_malloc0(sizeof(char) * (email_size + 1));
                read_size = fread(buf, 1, email_size, body_file);
                fclose(body_file);
                DBG("MESSAGE: [%s]", buf);
                if (read_size != email_size) {
                        ERR("Unequal Read size");
-                       email_free_mail_data(&mail_data, 1);
                        g_string_free(msg, TRUE);
                        g_free(buf);
                        return NULL;
@@ -736,9 +781,11 @@ static char *__bt_prepare_email_bmseg(email_mail_data_t *mail_data)
                DBG("BODY of the MESSAGE NOT FOUND");
                buf = (char *)g_strdup("");
        }
-
+#ifdef ARCH64
+       g_string_append_printf(msg, LENGTH, (int)(unsigned int)strlen(buf));
+#else
        g_string_append_printf(msg, LENGTH, strlen(buf));
-
+#endif
        g_string_append_printf(msg, MSG_BODY, buf);
 
 
@@ -750,6 +797,7 @@ static char *__bt_prepare_email_bmseg(email_mail_data_t *mail_data)
        FN_END;
        return g_string_free(msg, FALSE);
 }
+/* LCOV_EXCL_STOP */
 
 gboolean _bt_map_get_email_message(int mail_id, gboolean attach,
                gboolean transcode, gboolean first_request, gchar **bmseg)
@@ -763,6 +811,7 @@ gboolean _bt_map_get_email_message(int mail_id, gboolean attach,
        if (ret != EMAIL_ERROR_NONE)
                return FALSE;
 
+       /* LCOV_EXCL_START */
        ret = email_get_mail_data(mail_id, &mail_data);
        if (ret != EMAIL_ERROR_NONE)
                return FALSE;
@@ -771,9 +820,11 @@ gboolean _bt_map_get_email_message(int mail_id, gboolean attach,
 
        email_free_mail_data(&mail_data, 1);
        DBG("EXIT==>");
+       /* LCOV_EXCL_STOP */
        return TRUE;
 }
 
+/* LCOV_EXCL_START */
 static int __bt_map_save_email_to_outbox(char *subject, char *body,
                char *recepients)
 {
@@ -1070,3 +1121,5 @@ done:
 
        return TRUE;
 }
+/* LCOV_EXCL_STOP */
+