Mercurial > pidgin
diff libpurple/protocols/jabber/jingle/rtp.c @ 26432:0adf41b3de79
Add a resource selector when initiating media.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Sat, 04 Apr 2009 02:26:49 +0000 |
parents | 2d332d327a0e |
children | 8399b545925c |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jingle/rtp.c Fri Apr 03 19:29:53 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/rtp.c Sat Apr 04 02:26:49 2009 +0000 @@ -834,7 +834,7 @@ JabberBuddyResource *jbr; const gchar *transport_type; - gchar *jid = NULL, *me = NULL, *sid = NULL; + gchar *resource = NULL, *me = NULL, *sid = NULL; /* construct JID to send to */ jb = jabber_buddy_find(js, who, FALSE); @@ -842,7 +842,11 @@ purple_debug_error("jingle-rtp", "Could not find Jabber buddy\n"); return FALSE; } - jbr = jabber_buddy_find_resource(jb, NULL); + + resource = jabber_get_resource(who); + jbr = jabber_buddy_find_resource(jb, resource); + g_free(resource); + if (!jbr) { purple_debug_error("jingle-rtp", "Could not find buddy's resource\n"); } @@ -857,17 +861,11 @@ return FALSE; } - if ((strchr(who, '/') == NULL) && jbr && (jbr->name != NULL)) { - jid = g_strdup_printf("%s/%s", who, jbr->name); - } else { - jid = g_strdup(who); - } - /* set ourselves as initiator */ me = g_strdup_printf("%s@%s/%s", js->user->node, js->user->domain, js->user->resource); sid = jabber_get_next_id(js); - session = jingle_session_create(js, sid, me, jid, TRUE); + session = jingle_session_create(js, sid, me, who, TRUE); g_free(sid); @@ -888,7 +886,6 @@ jingle_rtp_init_media(content); } - g_free(jid); g_free(me); if (jingle_rtp_get_media(session) == NULL) {