summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKyeonghun Lee <kh9090.lee@samsung.com>2017-03-14 15:40:24 +0900
committerKyeonghun Lee <kh9090.lee@samsung.com>2017-03-14 15:43:04 +0900
commit7f54cb4da5abe7703cd01e1c4c73536ac29f1437 (patch)
tree474fb038864c84d74032ff1e5453923957603c9d /src
parent91f6470da0a606545c7c366857b1fafae45614c3 (diff)
downloadmessages-7f54cb4da5abe7703cd01e1c4c73536ac29f1437.tar.gz
messages-7f54cb4da5abe7703cd01e1c4c73536ac29f1437.tar.bz2
messages-7f54cb4da5abe7703cd01e1c4c73536ac29f1437.zip
fix messages_set_message_incoming_cb() issue
Change-Id: Iba203fd190e8fb8590ddffc1d020019ddd31cde5 Signed-off-by: Kyeonghun Lee <kh9090.lee@samsung.com>
Diffstat (limited to 'src')
-rw-r--r--src/messages.c43
1 files changed, 22 insertions, 21 deletions
diff --git a/src/messages.c b/src/messages.c
index 3832426..ee16cac 100644
--- a/src/messages.c
+++ b/src/messages.c
@@ -40,6 +40,8 @@ int _messages_load_mms_data(messages_message_s * msg, msg_handle_t handle);
int _messages_save_textfile(const char *text, char **filepath);
int _messages_load_textfile(const char *filepath, char **text);
void _messages_sent_mediator_cb(msg_handle_t handle, msg_struct_t pStatus, void *user_param);
+void _messages_incoming_mediator_cb(msg_handle_t handle, msg_struct_t msg, void *user_param);
+void _messages_incoming_cb_mediator_cb(msg_handle_t handle, msg_struct_t msg, void *user_param);
int _messages_check_feature(char *feature_name);
int messages_open_service(messages_service_h * svc)
@@ -74,6 +76,26 @@ int messages_open_service(messages_service_h * svc)
return ERROR_CONVERT(ret);
}
+ ret = msg_reg_sms_message_callback(_svc->service_h, &_messages_incoming_mediator_cb, 0, (void *)_svc);
+ if (MSG_SUCCESS != ret) {
+ free(_svc);
+ return ERROR_CONVERT(ret);
+ }
+
+ ret = msg_reg_cb_message_callback(_svc->service_h, &_messages_incoming_cb_mediator_cb, true, (void *)_svc);
+ if (MSG_SUCCESS != ret) {
+ free(_svc);
+ return ERROR_CONVERT(ret);
+ }
+
+ if (MESSAGES_ERROR_NONE == _messages_check_feature(MESSAGES_TELEPHONY_MMS_FEATURE)) {
+ ret = msg_reg_mms_conf_message_callback(_svc->service_h, &_messages_incoming_mediator_cb, NULL, (void *)_svc);
+ if (MSG_SUCCESS != ret) {
+ free(_svc);
+ return ERROR_CONVERT(ret);
+ }
+ }
+
*svc = (messages_service_h) _svc;
return MESSAGES_ERROR_NONE;
@@ -836,32 +858,11 @@ int messages_set_message_incoming_cb(messages_service_h svc, messages_incoming_c
{
CHECK_MESSAGES_SUPPORTED(MESSAGES_TELEPHONY_SMS_FEATURE);
- int ret;
-
messages_service_s *_svc = (messages_service_s *) svc;
CHECK_NULL(_svc);
CHECK_NULL(callback);
- if (NULL == _svc->incoming_cb) {
- ret = ERROR_CONVERT(msg_reg_sms_message_callback(_svc->service_h, &_messages_incoming_mediator_cb, 0, (void *)_svc)
- );
- if (MESSAGES_ERROR_NONE != ret)
- return ret;
-
- ret = ERROR_CONVERT(msg_reg_cb_message_callback(_svc->service_h, &_messages_incoming_cb_mediator_cb, true, (void *)_svc)
- );
- if (MESSAGES_ERROR_NONE != ret)
- return ret;
-
- if (MESSAGES_ERROR_NONE == _messages_check_feature(MESSAGES_TELEPHONY_MMS_FEATURE)) {
- ret = ERROR_CONVERT(msg_reg_mms_conf_message_callback(_svc->service_h, &_messages_incoming_mediator_cb, NULL, (void *)_svc)
- );
- if (MESSAGES_ERROR_NONE != ret)
- return ret;
- }
- }
-
_svc->incoming_cb = (void *)callback;
_svc->incoming_cb_user_data = (void *)user_data;
_svc->incoming_cb_enabled = true;