diff options
Diffstat (limited to 'protocols/jabber/jabber.c')
-rw-r--r-- | protocols/jabber/jabber.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/protocols/jabber/jabber.c b/protocols/jabber/jabber.c index 2ef76444..a60cd4aa 100644 --- a/protocols/jabber/jabber.c +++ b/protocols/jabber/jabber.c @@ -216,12 +216,12 @@ static int jabber_send_im( struct gaim_connection *gc, char *who, char *message, struct xt_node *node; int st; - bud = jabber_buddy_by_jid( gc, who ); + bud = jabber_buddy_by_jid( gc, who, 0 ); node = xt_new_node( "body", message, NULL ); node = jabber_make_packet( "message", "chat", bud ? bud->full_jid : who, node ); - if( ( jd->flags & JFLAG_WANT_TYPING ) && bud && + if( bud && ( jd->flags & JFLAG_WANT_TYPING ) && ( ( bud->flags & JBFLAG_DOES_XEP85 ) || !( bud->flags & JBFLAG_PROBED_XEP85 ) ) ) { @@ -265,20 +265,24 @@ static void jabber_get_info( struct gaim_connection *gc, char *who ) struct jabber_buddy *bud; if( strchr( who, '/' ) ) - bud = jabber_buddy_by_jid( gc, who ); + bud = jabber_buddy_by_jid( gc, who, 0 ); else - bud = g_hash_table_lookup( jd->buddies, who ); + { + char *s = jabber_normalize( who ); + bud = g_hash_table_lookup( jd->buddies, s ); + g_free( s ); + } while( bud ) { - serv_got_crap( gc, "Buddy %s/%s (%d) information:\nAway state: %s\nAway message: %s", - bud->handle, bud->resource, bud->priority, + serv_got_crap( gc, "Buddy %s (%d) information:\nAway state: %s\nAway message: %s", + bud->full_jid, bud->priority, bud->away_state ? bud->away_state->full_name : "(none)", bud->away_message ? : "(none)" ); bud = bud->next; } - jabber_get_vcard( gc, bud ? bud->handle : who ); + jabber_get_vcard( gc, bud ? bud->full_jid : who ); } static void jabber_set_away( struct gaim_connection *gc, char *state_txt, char *message ) @@ -328,7 +332,7 @@ static int jabber_send_typing( struct gaim_connection *gc, char *who, int typing /* Enable typing notification related code from now. */ jd->flags |= JFLAG_WANT_TYPING; - if( ( bud = jabber_buddy_by_jid( gc, who ) ) == NULL ) + if( ( bud = jabber_buddy_by_jid( gc, who, 0 ) ) == NULL ) { /* Sending typing notifications to unknown buddies is unsupported for now. Shouldn't be a problem, I think. */ |