aboutsummaryrefslogtreecommitdiff
path: root/src/chat/messenger.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/chat/messenger.c')
-rw-r--r--src/chat/messenger.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/src/chat/messenger.c b/src/chat/messenger.c
index 4f242af..3107277 100644
--- a/src/chat/messenger.c
+++ b/src/chat/messenger.c
@@ -79,6 +79,18 @@ _chat_messenger_message(void *cls,
79 // Locking the mutex for synchronization 79 // Locking the mutex for synchronization
80 pthread_mutex_lock(&(app->chat.mutex)); 80 pthread_mutex_lock(&(app->chat.mutex));
81 81
82 if (GNUNET_YES == GNUNET_CHAT_message_is_deleted(message))
83 {
84 application_call_message_event(
85 app,
86 event_delete_message,
87 context,
88 message
89 );
90
91 goto skip_message_handling;
92 }
93
82 // Handle each kind of message as proper event regarding context 94 // Handle each kind of message as proper event regarding context
83 switch (GNUNET_CHAT_message_get_kind(message)) 95 switch (GNUNET_CHAT_message_get_kind(message))
84 { 96 {
@@ -162,12 +174,16 @@ _chat_messenger_message(void *cls,
162 } 174 }
163 case GNUNET_CHAT_KIND_DELETION: 175 case GNUNET_CHAT_KIND_DELETION:
164 { 176 {
165 application_call_message_event( 177 const struct GNUNET_CHAT_Message *target;
166 app, 178 target = GNUNET_CHAT_message_get_target(message);
167 event_delete_message, 179
168 context, 180 if (target)
169 message 181 application_call_message_event(
170 ); 182 app,
183 event_delete_message,
184 context,
185 target
186 );
171 break; 187 break;
172 } 188 }
173 case GNUNET_CHAT_KIND_TAG: 189 case GNUNET_CHAT_KIND_TAG:
@@ -184,6 +200,7 @@ _chat_messenger_message(void *cls,
184 break; 200 break;
185 } 201 }
186 202
203skip_message_handling:
187 pthread_mutex_unlock(&(app->chat.mutex)); 204 pthread_mutex_unlock(&(app->chat.mutex));
188 return GNUNET_YES; 205 return GNUNET_YES;
189} 206}