#define EMAIL_MAIL_DATA_FMT "S(" "iiiis" "iisss" "sssss" "sssss" "isssi"\
"ccccc" "cciii" "iiiii" "isiii" "i" ")"
+#if 0
INTERNAL_FUNC char* em_convert_mail_data_to_byte_stream(email_mail_data_t *mail_data, int *stream_len)
{
EM_DEBUG_FUNC_END();
EM_DEBUG_FUNC_END();
return (char*) buf;
-#if 0
+#endif
+INTERNAL_FUNC char* em_convert_mail_data_to_byte_stream(email_mail_data_t *input_mail_data, int input_mail_data_count, int *output_stream_size)
+{
EM_DEBUG_FUNC_BEGIN("input_mail_data [%p], input_mail_data_count[%d], output_stream_size[%p]", input_mail_data, input_mail_data_count, output_stream_size);
char *result_stream = NULL;
EM_DEBUG_FUNC_END("stream_size [%d]", stream_size);
return result_stream;
-#endif
}
-
+#if 0
INTERNAL_FUNC void em_convert_byte_stream_to_mail_data(char *stream, int stream_len, email_mail_data_t *mail_data)
{
EM_NULL_CHECK_FOR_VOID(stream);
tpl_free(tn);
EM_DEBUG_FUNC_END();
-#if 0
+#endif
+INTERNAL_FUNC void em_convert_byte_stream_to_mail_data(char *input_stream, email_mail_data_t **output_mail_data, int *output_mail_data_count)
+{
EM_DEBUG_FUNC_BEGIN("input_stream [%p], output_mail_data[%p], output_mail_data_count[%p]", input_stream, output_mail_data, output_mail_data_count);
int stream_offset = 0;
}
EM_DEBUG_FUNC_END();
-#endif
}
INTERNAL_FUNC char* em_convert_attachment_data_to_byte_stream(email_attachment_data_t *attachment, int attachment_count, int* stream_len)
{
+#if 0
EM_DEBUG_FUNC_BEGIN();
EM_IF_NULL_RETURN_VALUE(stream_len, NULL);
if(!attachment) {
EM_DEBUG_FUNC_END();
return (char*) buf;
+#endif
-#if 0
- EM_DEBUG_FUNC_BEGIN("input_attachment_data [%p], input_attachment_count [%d], output_stream_size [%p]", input_attachment_data, input_attachment_count, output_stream_size);
+ EM_DEBUG_FUNC_BEGIN("attachment [%p], input_attachment_count [%d], output_stream_size [%p]", attachment, attachment_count, stream_len);
char *result_stream = NULL;
int stream_size = 0;
int i = 0;
- if(input_attachment_count > 0)
- EM_IF_NULL_RETURN_VALUE(input_attachment_data, NULL);
- EM_IF_NULL_RETURN_VALUE(output_stream_size, NULL);
+ if(attachment_count > 0)
+ EM_IF_NULL_RETURN_VALUE(attachment, NULL);
+ EM_IF_NULL_RETURN_VALUE(stream_len, NULL);
- result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&input_attachment_count, sizeof(int));
-
- for(i = 0; i < input_attachment_count; i++) {
- result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&input_attachment_data[i].attachment_id, sizeof(int));
- result_stream = append_string_to_stream(result_stream, &stream_size, input_attachment_data[i].attachment_name);
- result_stream = append_string_to_stream(result_stream, &stream_size, input_attachment_data[i].attachment_path);
- result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&input_attachment_data[i].attachment_size, sizeof(int));
- result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&input_attachment_data[i].mail_id, sizeof(int));
- result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&input_attachment_data[i].account_id, sizeof(int));
- result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&input_attachment_data[i].mailbox_id, sizeof(int));
- result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&input_attachment_data[i].save_status, sizeof(int));
- result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&input_attachment_data[i].drm_status, sizeof(int));
- result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&input_attachment_data[i].inline_content_status,sizeof(int));
+ result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&attachment_count, sizeof(int));
+
+ for(i = 0; i < attachment_count; i++) {
+ result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&attachment[i].attachment_id, sizeof(int));
+ result_stream = append_string_to_stream(result_stream, &stream_size, attachment[i].attachment_name);
+ result_stream = append_string_to_stream(result_stream, &stream_size, attachment[i].attachment_path);
+ result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&attachment[i].attachment_size, sizeof(int));
+ result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&attachment[i].mail_id, sizeof(int));
+ result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&attachment[i].account_id, sizeof(int));
+ result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&attachment[i].mailbox_id, sizeof(int));
+ result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&attachment[i].save_status, sizeof(int));
+ result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&attachment[i].drm_status, sizeof(int));
+ result_stream = append_sized_data_to_stream(result_stream, &stream_size, (char*)&attachment[i].inline_content_status,sizeof(int));
}
- *output_stream_size = stream_size;
+ *stream_len = stream_size;
EM_DEBUG_FUNC_END("stream_size [%d]", stream_size);
return result_stream;
-#endif
+
}
INTERNAL_FUNC void em_convert_byte_stream_to_attachment_data(char *stream, int stream_len, email_attachment_data_t **attachment_data, int *attachment_count)
{
+#if 0
EM_DEBUG_FUNC_BEGIN();
EM_NULL_CHECK_FOR_VOID(stream);
EM_NULL_CHECK_FOR_VOID(attachment_data);
*attachment_count = count;
*attachment_data = attached;
EM_DEBUG_FUNC_END();
-#if 0
- EM_DEBUG_FUNC_BEGIN("input_stream [%p], output_attachment_data[%p]", input_stream, output_attachment_data);
+#endif
+ EM_DEBUG_FUNC_BEGIN("stream [%p], attachment_data[%p]", stream, attachment_data);
int stream_offset = 0;
int i = 0;
- EM_NULL_CHECK_FOR_VOID(input_stream);
- EM_NULL_CHECK_FOR_VOID(output_attachment_data);
- EM_NULL_CHECK_FOR_VOID(output_attachment_count);
+ EM_NULL_CHECK_FOR_VOID(stream);
+ EM_NULL_CHECK_FOR_VOID(attachment_data);
+ EM_NULL_CHECK_FOR_VOID(attachment_count);
- fetch_sized_data_from_stream(input_stream, &stream_offset, sizeof(int), (char*)output_attachment_count);
+ fetch_sized_data_from_stream(stream, &stream_offset, sizeof(int), (char*)attachment_count);
- EM_DEBUG_LOG("*output_attachment_count [%d]", *output_attachment_count);
+ EM_DEBUG_LOG("*attachment_count [%d]", *attachment_count);
- if(output_attachment_count <= 0) {
+ if(attachment_count <= 0) {
EM_DEBUG_EXCEPTION("no attachment data.");
return;
}
- *output_attachment_data = (email_attachment_data_t*)em_malloc(sizeof(email_attachment_data_t) * (*output_attachment_count));
+ *attachment_data = (email_attachment_data_t*)em_malloc(sizeof(email_attachment_data_t) * (*attachment_count));
- if(!*output_attachment_data) {
+ if(!*attachment_data) {
EM_DEBUG_EXCEPTION("em_malloc failed");
return;
}
- for(i = 0; i < *output_attachment_count; i++) {
- fetch_sized_data_from_stream(input_stream, &stream_offset, sizeof(int), (char*)&((*output_attachment_data)[i].attachment_id));
- fetch_string_from_stream(input_stream, &stream_offset, &(*output_attachment_data)[i].attachment_name);
- fetch_string_from_stream(input_stream, &stream_offset, &(*output_attachment_data)[i].attachment_path);
- fetch_sized_data_from_stream(input_stream, &stream_offset, sizeof(int), (char*)&((*output_attachment_data)[i].attachment_size));
- fetch_sized_data_from_stream(input_stream, &stream_offset, sizeof(int), (char*)&((*output_attachment_data)[i].mail_id));
- fetch_sized_data_from_stream(input_stream, &stream_offset, sizeof(int), (char*)&((*output_attachment_data)[i].account_id));
- fetch_sized_data_from_stream(input_stream, &stream_offset, sizeof(int), (char*)&((*output_attachment_data)[i].mailbox_id));
- fetch_sized_data_from_stream(input_stream, &stream_offset, sizeof(int), (char*)&((*output_attachment_data)[i].save_status));
- fetch_sized_data_from_stream(input_stream, &stream_offset, sizeof(int), (char*)&((*output_attachment_data)[i].drm_status));
- fetch_sized_data_from_stream(input_stream, &stream_offset, sizeof(int), (char*)&((*output_attachment_data)[i].inline_content_status));
+ for(i = 0; i < *attachment_count; i++) {
+ fetch_sized_data_from_stream(stream, &stream_offset, sizeof(int), (char*)&((*attachment_data)[i].attachment_id));
+ fetch_string_from_stream(stream, &stream_offset, &(*attachment_data)[i].attachment_name);
+ fetch_string_from_stream(stream, &stream_offset, &(*attachment_data)[i].attachment_path);
+ fetch_sized_data_from_stream(stream, &stream_offset, sizeof(int), (char*)&((*attachment_data)[i].attachment_size));
+ fetch_sized_data_from_stream(stream, &stream_offset, sizeof(int), (char*)&((*attachment_data)[i].mail_id));
+ fetch_sized_data_from_stream(stream, &stream_offset, sizeof(int), (char*)&((*attachment_data)[i].account_id));
+ fetch_sized_data_from_stream(stream, &stream_offset, sizeof(int), (char*)&((*attachment_data)[i].mailbox_id));
+ fetch_sized_data_from_stream(stream, &stream_offset, sizeof(int), (char*)&((*attachment_data)[i].save_status));
+ fetch_sized_data_from_stream(stream, &stream_offset, sizeof(int), (char*)&((*attachment_data)[i].drm_status));
+ fetch_sized_data_from_stream(stream, &stream_offset, sizeof(int), (char*)&((*attachment_data)[i].inline_content_status));
}
EM_DEBUG_FUNC_END();
-#endif
}
int result_attachment_data_count = 0;
int param_index = 0;
int sync_server = 0;
+ int mail_count = 0;
int err = EMAIL_ERROR_NONE;
- email_mail_data_t result_mail_data = {0};
+ email_mail_data_t *result_mail_data = NULL;
email_attachment_data_t *result_attachment_data = NULL;
email_meeting_request_t result_meeting_request = {0};
/* mail_data */
if(buffer_size > 0) {
char *stream = (char*) emipc_get_nth_parameter_data(a_hAPI, ePARAMETER_IN, param_index++);
- em_convert_byte_stream_to_mail_data(stream, buffer_size, &result_mail_data);
+ em_convert_byte_stream_to_mail_data(stream, &result_mail_data, &mail_count);
}
/* attachment */
/* meeting request */
EM_DEBUG_LOG("email_meeting_request_t");
- if ( result_mail_data.meeting_request_status == EMAIL_MAIL_TYPE_MEETING_REQUEST
- || result_mail_data.meeting_request_status == EMAIL_MAIL_TYPE_MEETING_RESPONSE
- || result_mail_data.meeting_request_status == EMAIL_MAIL_TYPE_MEETING_ORIGINATINGREQUEST) {
+ if ( result_mail_data->meeting_request_status == EMAIL_MAIL_TYPE_MEETING_REQUEST
+ || result_mail_data->meeting_request_status == EMAIL_MAIL_TYPE_MEETING_RESPONSE
+ || result_mail_data->meeting_request_status == EMAIL_MAIL_TYPE_MEETING_ORIGINATINGREQUEST) {
buffer_size = emipc_get_nth_parameter_length(a_hAPI, ePARAMETER_IN, param_index);
if(buffer_size > 0) {
EM_DEBUG_LOG("sync_server");
emipc_get_parameter(a_hAPI, ePARAMETER_IN, param_index++, sizeof(int), &sync_server);
- if( (err = emdaemon_add_mail(&result_mail_data, result_attachment_data, result_attachment_data_count, &result_meeting_request, sync_server)) != EMAIL_ERROR_NONE) {
+ if( (err = emdaemon_add_mail(result_mail_data, result_attachment_data, result_attachment_data_count, &result_meeting_request, sync_server)) != EMAIL_ERROR_NONE) {
EM_DEBUG_EXCEPTION("emdaemon_add_mail failed [%d]", err);
goto FINISH_OFF;
}
local_result = 1;
if(!emipc_add_parameter(a_hAPI, ePARAMETER_OUT, &err, sizeof(int)))
EM_DEBUG_EXCEPTION("emipc_add_parameter failed");
- if(!emipc_add_parameter(a_hAPI, ePARAMETER_OUT, &result_mail_data.mail_id, sizeof(int)))
+ if(!emipc_add_parameter(a_hAPI, ePARAMETER_OUT, &(result_mail_data->mail_id), sizeof(int)))
EM_DEBUG_EXCEPTION("emipc_add_parameter failed");
- if(!emipc_add_parameter(a_hAPI, ePARAMETER_OUT, &result_mail_data.thread_id, sizeof(int)))
+ if(!emipc_add_parameter(a_hAPI, ePARAMETER_OUT, &(result_mail_data->thread_id), sizeof(int)))
EM_DEBUG_EXCEPTION("emipc_add_parameter failed");
if (!emipc_execute_stub_api(a_hAPI))
EM_DEBUG_EXCEPTION("emipc_execute_stub_api failed");
EM_DEBUG_EXCEPTION("emipc_execute_stub_api failed");
}
- emcore_free_mail_data(&result_mail_data);
+ emcore_free_mail_data(result_mail_data);
if(result_attachment_data)
emcore_free_attachment_data(&result_attachment_data, result_attachment_data_count, NULL);
int result_attachment_data_count = 0;
int param_index = 0;
int sync_server = 0;
+ int mail_count = 0;
int *temp_buffer = NULL;
int err = EMAIL_ERROR_NONE;
- email_mail_data_t result_mail_data = {0};
+ email_mail_data_t *result_mail_data = NULL;
email_attachment_data_t *result_attachment_data = NULL;
email_meeting_request_t result_meeting_request = {0};
if(buffer_size > 0) {
char* stream = (char*) emipc_get_nth_parameter_data(a_hAPI, ePARAMETER_IN, param_index++);
- em_convert_byte_stream_to_mail_data(stream, buffer_size, &result_mail_data);
+ em_convert_byte_stream_to_mail_data(stream, &result_mail_data, &mail_count);
}
buffer_size = emipc_get_nth_parameter_length(a_hAPI, ePARAMETER_IN, param_index);
EM_DEBUG_LOG("email_meeting_request_t");
- if ( result_mail_data.meeting_request_status == EMAIL_MAIL_TYPE_MEETING_REQUEST
- || result_mail_data.meeting_request_status == EMAIL_MAIL_TYPE_MEETING_RESPONSE
- || result_mail_data.meeting_request_status == EMAIL_MAIL_TYPE_MEETING_ORIGINATINGREQUEST) {
+ if ( result_mail_data->meeting_request_status == EMAIL_MAIL_TYPE_MEETING_REQUEST
+ || result_mail_data->meeting_request_status == EMAIL_MAIL_TYPE_MEETING_RESPONSE
+ || result_mail_data->meeting_request_status == EMAIL_MAIL_TYPE_MEETING_ORIGINATINGREQUEST) {
buffer_size = emipc_get_nth_parameter_length(a_hAPI, ePARAMETER_IN, param_index);
if(buffer_size > 0) {
sync_server = *temp_buffer;
- if( (err = emdaemon_update_mail(&result_mail_data, result_attachment_data,
+ if( (err = emdaemon_update_mail(result_mail_data, result_attachment_data,
result_attachment_data_count, &result_meeting_request, sync_server)) != EMAIL_ERROR_NONE) {
EM_DEBUG_EXCEPTION("emdaemon_update_mail failed [%d]", err);
goto FINISH_OFF;
local_result = 1;
if(!emipc_add_parameter(a_hAPI, ePARAMETER_OUT, &err, sizeof(int)))
EM_DEBUG_EXCEPTION("emipc_add_parameter failed");
- if(!emipc_add_parameter(a_hAPI, ePARAMETER_OUT, &result_mail_data.mail_id, sizeof(int)))
+ if(!emipc_add_parameter(a_hAPI, ePARAMETER_OUT, &(result_mail_data->mail_id), sizeof(int)))
EM_DEBUG_EXCEPTION("emipc_add_parameter failed");
- if(!emipc_add_parameter(a_hAPI, ePARAMETER_OUT, &result_mail_data.thread_id, sizeof(int)))
+ if(!emipc_add_parameter(a_hAPI, ePARAMETER_OUT, &(result_mail_data->thread_id), sizeof(int)))
EM_DEBUG_EXCEPTION("emipc_add_parameter failed");
if (!emipc_execute_stub_api(a_hAPI))
EM_DEBUG_EXCEPTION("emipc_execute_stub_api failed");
EM_DEBUG_EXCEPTION("emipc_execute_stub_api failed");
}
- emcore_free_mail_data(&result_mail_data);
+ emcore_free_mail_data(result_mail_data);
if(result_attachment_data)
emcore_free_attachment_data(&result_attachment_data, result_attachment_data_count, NULL);