]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
mod_rayo: forgot to return error if unknown destination for stanza
authorChris Rienzo <chris.rienzo@grasshopper.com>
Tue, 25 Jun 2013 01:14:27 +0000 (21:14 -0400)
committerChris Rienzo <chris.rienzo@grasshopper.com>
Tue, 25 Jun 2013 02:19:53 +0000 (22:19 -0400)
src/mod/event_handlers/mod_rayo/mod_rayo.c

index 93f36b9e12878ff4df04be0dc9da20adc94ddf47..54d15960f4f74a1bb7ca9f2d47a9cc6ba9072c24 100644 (file)
@@ -598,12 +598,16 @@ static void *SWITCH_THREAD_FUNC deliver_message_thread(switch_thread_t *thread,
                if (switch_queue_pop(globals.msg_queue, (void *)&msg) == SWITCH_STATUS_SUCCESS) {
                        struct rayo_actor *actor = RAYO_LOCATE(msg->to_jid);
                        if (actor) {
+                               /* deliver to actor */
                                switch_mutex_lock(actor->mutex);
                                actor->send_fn(actor, msg);
                                switch_mutex_unlock(actor->mutex);
                                RAYO_UNLOCK(actor);
-                               rayo_message_destroy(msg);
+                       } else {
+                               /* unknown actor */
+                               RAYO_SEND_REPLY(globals.server, msg->from_jid, iks_new_error(msg->payload, STANZA_ERROR_ITEM_NOT_FOUND));
                        }
+                       rayo_message_destroy(msg);
                }
        }