| 211 jingle_session_accept_session(session); |
211 jingle_session_accept_session(session); |
| 212 |
212 |
| 213 for (; content; content = xmlnode_get_next_twin(content)) { |
213 for (; content; content = xmlnode_get_next_twin(content)) { |
| 214 const gchar *name = xmlnode_get_attrib(content, "name"); |
214 const gchar *name = xmlnode_get_attrib(content, "name"); |
| 215 const gchar *creator = xmlnode_get_attrib(content, "creator"); |
215 const gchar *creator = xmlnode_get_attrib(content, "creator"); |
| 216 JingleContent *content = jingle_session_find_content(session, name, creator); |
216 JingleContent *parsed_content = |
| 217 if (content == NULL) { |
217 jingle_session_find_content(session, name, creator); |
| |
218 if (parsed_content == NULL) { |
| 218 purple_debug_error("jingle", "Error parsing content\n"); |
219 purple_debug_error("jingle", "Error parsing content\n"); |
| 219 /* XXX: send error */ |
220 /* XXX: send error */ |
| 220 } else { |
221 } else { |
| 221 jingle_content_handle_action(content, jingle, |
222 jingle_content_handle_action(parsed_content, content, |
| 222 JINGLE_SESSION_ACCEPT); |
223 JINGLE_SESSION_ACCEPT); |
| 223 } |
224 } |
| 224 } |
225 } |
| 225 } |
226 } |
| 226 |
227 |
| 241 if (parsed_content == NULL) { |
242 if (parsed_content == NULL) { |
| 242 purple_debug_error("jingle", "Error parsing content\n"); |
243 purple_debug_error("jingle", "Error parsing content\n"); |
| 243 /* XXX: send error */ |
244 /* XXX: send error */ |
| 244 } else { |
245 } else { |
| 245 jingle_session_add_content(session, parsed_content); |
246 jingle_session_add_content(session, parsed_content); |
| 246 jingle_content_handle_action(parsed_content, jingle, |
247 jingle_content_handle_action(parsed_content, content, |
| 247 JINGLE_SESSION_INITIATE); |
248 JINGLE_SESSION_INITIATE); |
| 248 } |
249 } |
| 249 } |
250 } |
| 250 |
251 |
| 251 jabber_iq_send(jingle_session_create_ack(session, jingle)); |
252 jabber_iq_send(jingle_session_create_ack(session, jingle)); |
| 285 jabber_iq_send(jingle_session_create_ack(session, jingle)); |
286 jabber_iq_send(jingle_session_create_ack(session, jingle)); |
| 286 |
287 |
| 287 for (; content; content = xmlnode_get_next_twin(content)) { |
288 for (; content; content = xmlnode_get_next_twin(content)) { |
| 288 const gchar *name = xmlnode_get_attrib(content, "name"); |
289 const gchar *name = xmlnode_get_attrib(content, "name"); |
| 289 const gchar *creator = xmlnode_get_attrib(content, "creator"); |
290 const gchar *creator = xmlnode_get_attrib(content, "creator"); |
| 290 JingleContent *content = jingle_session_find_content(session, name, creator); |
291 JingleContent *parsed_content = |
| 291 if (content == NULL) { |
292 jingle_session_find_content(session, name, creator); |
| |
293 if (parsed_content == NULL) { |
| 292 purple_debug_error("jingle", "Error parsing content\n"); |
294 purple_debug_error("jingle", "Error parsing content\n"); |
| 293 /* XXX: send error */ |
295 /* XXX: send error */ |
| 294 } else { |
296 } else { |
| 295 jingle_content_handle_action(content, jingle, |
297 jingle_content_handle_action(parsed_content, content, |
| 296 JINGLE_TRANSPORT_INFO); |
298 JINGLE_TRANSPORT_INFO); |
| 297 } |
299 } |
| 298 } |
300 } |
| 299 } |
301 } |
| 300 |
302 |