Changeset d88c92a for protocols/jabber/iq.c
- Timestamp:
- 2010-12-06T00:03:49Z (13 years ago)
- Branches:
- master
- Children:
- d76e12f
- Parents:
- a429907
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/jabber/iq.c
ra429907 rd88c92a 794 794 return XT_HANDLED; 795 795 } 796 797 static xt_status jabber_iq_version_response( struct im_connection *ic, 798 struct xt_node *node, struct xt_node *orig ); 799 800 void jabber_iq_version_send( struct im_connection *ic, struct jabber_buddy *bud, void *data ) 801 { 802 struct xt_node *node, *query; 803 804 node = xt_new_node( "query", NULL, NULL ); 805 xt_add_attr( node, "xmlns", XMLNS_VERSION ); 806 query = jabber_make_packet( "iq", "get", bud->full_jid, node ); 807 jabber_cache_add( ic, query, jabber_iq_version_response ); 808 809 jabber_write_packet( ic, query ); 810 } 811 812 static xt_status jabber_iq_version_response( struct im_connection *ic, 813 struct xt_node *node, struct xt_node *orig ) 814 { 815 struct xt_node *query; 816 GString *rets; 817 char *s; 818 char *ret[2] = {}; 819 bee_user_t *bu; 820 struct jabber_buddy *bud = NULL; 821 822 if( ( s = xt_find_attr( node, "from" ) ) && 823 ( bud = jabber_buddy_by_jid( ic, s, 0 ) ) && 824 ( query = xt_find_node( node->children, "query" ) ) && 825 ( bu = bee_user_by_handle( ic->bee, ic, bud->bare_jid ) ) ) 826 { 827 rets = g_string_new( "Resource " ); 828 g_string_append( rets, bud->resource ); 829 } 830 else 831 return XT_HANDLED; 832 833 for( query = query->children; query; query = query->next ) 834 if( query->text_len > 0 ) 835 g_string_append_printf( rets, " %s: %s,", query->name, query->text ); 836 837 g_string_truncate( rets, rets->len - 1 ); 838 ret[0] = rets->str; 839 imcb_buddy_action_response( bu, "VERSION", ret, NULL ); 840 g_string_free( rets, TRUE ); 841 842 return XT_HANDLED; 843 }
Note: See TracChangeset
for help on using the changeset viewer.