Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/presence.c

    r8c1eb80 rdded27d  
    2929        char *from = xt_find_attr( node, "from" );
    3030        char *type = xt_find_attr( node, "type" );      /* NULL should mean the person is online. */
    31         struct xt_node *c, *cap;
     31        struct xt_node *c;
    3232        struct jabber_buddy *bud, *send_presence = NULL;
    3333        int is_chat = 0;
     
    7676                else
    7777                        bud->priority = 0;
    78                
    79                 if( bud && ( cap = xt_find_node( node->children, "c" ) ) &&
    80                     ( s = xt_find_attr( cap, "xmlns" ) ) && strcmp( s, XMLNS_CAPS ) == 0 )
    81                 {
    82                         /* This <presence> stanza includes an XEP-0115
    83                            capabilities part. Not too interesting, but we can
    84                            see if it has an ext= attribute. */
    85                         s = xt_find_attr( cap, "ext" );
    86                         if( s && ( strstr( s, "cstates" ) || strstr( s, "chatstate" ) ) )
    87                                 bud->flags |= JBFLAG_DOES_XEP85;
    88                        
    89                         /* This field can contain more information like xhtml
    90                            support, but we don't support that ourselves.
    91                            Officially the ext= tag was deprecated, but enough
    92                            clients do send it.
    93                            
    94                            (I'm aware that this is not the right way to use
    95                            this field.) See for an explanation of ext=:
    96                            http://www.xmpp.org/extensions/attic/xep-0115-1.3.html*/
    97                 }
    9878               
    9979                if( is_chat )
     
    206186{
    207187        struct jabber_data *jd = ic->proto_data;
    208         struct xt_node *node, *cap;
     188        struct xt_node *node;
    209189        char *show = jd->away_state->code;
    210190        char *status = jd->away_message;
     
    219199                xt_add_child( node, xt_new_node( "status", status, NULL ) );
    220200       
    221         /* This makes the packet slightly bigger, but clients interested in
    222            capabilities can now cache the discovery info. This reduces the
    223            usual post-login iq-flood. See XEP-0115. At least libpurple and
    224            Trillian seem to do this right. */
    225         cap = xt_new_node( "c", NULL, NULL );
    226         xt_add_attr( cap, "xmlns", XMLNS_CAPS );
    227         xt_add_attr( cap, "node", "http://bitlbee.org/xmpp/caps" );
    228         xt_add_attr( cap, "ver", BITLBEE_VERSION ); /* The XEP wants this hashed, but nobody's doing that. */
    229         xt_add_child( node, cap );
    230        
    231201        st = jabber_write_packet( ic, node );
    232202       
Note: See TracChangeset for help on using the changeset viewer.