117 // request malformed, we reply with a bad-request |
117 // request malformed, we reply with a bad-request |
118 jingle_send_iq_error(message, "cancel", "bad-request", NULL); |
118 jingle_send_iq_error(message, "cancel", "bad-request", NULL); |
119 scr_log_print(LPRINT_DEBUG, |
119 scr_log_print(LPRINT_DEBUG, |
120 "jingle: %s", error->message); |
120 "jingle: %s", error->message); |
121 } |
121 } |
122 g_clear_error(&error); |
122 g_error_free(error); |
|
123 jingle_free_jinglenode(jn); |
123 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
124 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
124 } |
125 } |
125 |
126 |
126 scr_log_print(LPRINT_DEBUG, "jingle: Received a valid jingle IQ"); |
127 scr_log_print(LPRINT_DEBUG, "jingle: Received a valid jingle IQ"); |
127 |
128 |
128 if (jingle_action_list[jn->action].handler == NULL) { |
129 if (jingle_action_list[jn->action].handler == NULL) { |
129 jingle_send_iq_error(message, "cancel", "feature-not-implemented", NULL); |
130 jingle_send_iq_error(message, "cancel", "feature-not-implemented", NULL); |
|
131 jingle_free_jinglenode(jn); |
130 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
132 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
131 } |
133 } |
132 |
134 |
133 jingle_action_list[jn->action].handler(jn); |
135 jingle_action_list[jn->action].handler(jn); |
134 |
136 jingle_free_jinglenode(jn); |
135 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
137 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
136 } |
138 } |
137 |
139 |
138 /** |
140 /** |
139 * Handle incoming ack iq (type result or error). |
141 * Handle incoming ack iq (type result or error). |