Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/iq.c

    r8fb1263 r74349eb  
    298298{
    299299        struct jabber_data *jd = ic->proto_data;
    300         struct xt_node *c, *reply = NULL;
     300        struct xt_node *c;
    301301        char *s;
    302302       
    303         if( node && ( c = xt_find_node( node->children, "bind" ) ) )
     303        if( ( c = xt_find_node( node->children, "bind" ) ) )
    304304        {
    305305                c = xt_find_node( c->children, "jid" );
     
    308308                        imcb_log( ic, "Server changed session resource string to `%s'", s + 1 );
    309309               
    310                 jd->flags &= ~JFLAG_WANT_BIND;
    311         }
    312         else if( node && ( c = xt_find_node( node->children, "session" ) ) )
    313         {
    314                 jd->flags &= ~JFLAG_WANT_SESSION;
    315         }
    316        
    317         if( jd->flags & JFLAG_WANT_BIND )
    318         {
    319                 reply = xt_new_node( "bind", NULL, xt_new_node( "resource", set_getstr( &ic->acc->set, "resource" ), NULL ) );
    320                 xt_add_attr( reply, "xmlns", XMLNS_BIND );
    321         }
    322         else if( jd->flags & JFLAG_WANT_SESSION )
    323         {
    324                 reply = xt_new_node( "session", NULL, NULL );
    325                 xt_add_attr( reply, "xmlns", XMLNS_SESSION );
    326         }
    327        
    328         if( reply != NULL )
    329         {
    330                 reply = jabber_make_packet( "iq", "set", NULL, reply );
    331                 jabber_cache_add( ic, reply, jabber_pkt_bind_sess );
    332                
    333                 if( !jabber_write_packet( ic, reply ) )
    334                         return XT_ABORT;
    335         }
    336         else if( ( jd->flags & ( JFLAG_WANT_BIND | JFLAG_WANT_SESSION ) ) == 0 )
     310                jd->flags &= ~JFLAG_WAIT_BIND;
     311        }
     312        else
     313        {
     314                jd->flags &= ~JFLAG_WAIT_SESSION;
     315        }
     316       
     317        if( ( jd->flags & ( JFLAG_WAIT_BIND | JFLAG_WAIT_SESSION ) ) == 0 )
    337318        {
    338319                if( !jabber_get_roster( ic ) )
Note: See TracChangeset for help on using the changeset viewer.