Changeset 2d317bb


Ignore:
Timestamp:
2007-04-23T05:18:47Z (17 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
6286f80
Parents:
0e7ab64
Message:

Fixes: handling of being kicked, now sending <presence/> tags to all
conferences the user's in.

Location:
protocols
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/conference.c

    r0e7ab64 r2d317bb  
    163163                if( bud == jc->me )
    164164                {
     165                        jabber_buddy_remove_bare( ic, jc->name );
     166                       
    165167                        g_free( jc->name );
    166168                        g_free( jc );
  • protocols/jabber/presence.c

    r0e7ab64 r2d317bb  
    168168        char *show = jd->away_state->code;
    169169        char *status = jd->away_message;
     170        struct groupchat *c;
    170171        int st;
    171172       
     
    179180        st = jabber_write_packet( ic, node );
    180181       
     182        /* Have to send this update to all groupchats too, the server won't
     183           do this automatically. */
     184        for( c = ic->groupchats; c && st; c = c->next )
     185        {
     186                struct jabber_chat *jc = c->data;
     187               
     188                xt_add_attr( node, "to", jc->me->full_jid );
     189                st = jabber_write_packet( ic, node );
     190        }
     191       
    181192        xt_free_node( node );
    182193        return st;
  • protocols/jabber/xmltree.c

    r0e7ab64 r2d317bb  
    188188                                               g_strcasecmp( xt->handlers[i].parent, "<root>" ) == 0 ) ) )
    189189                        {
    190 //                              xt_print( node );
     190                                xt_print( node );
    191191                               
    192192                                st = xt->handlers[i].func( node, xt->data );
  • protocols/nogaim.c

    r0e7ab64 r2d317bb  
    807807}
    808808
     809/* This function is one BIG hack... :-( EREWRITE */
    809810void imcb_chat_remove_buddy( struct groupchat *b, char *handle, char *reason )
    810811{
     
    818819        if( g_strcasecmp( handle, b->ic->acc->user ) == 0 )
    819820        {
     821                if( b->joined == 0 )
     822                        return;
     823               
    820824                u = user_find( b->ic->irc, b->ic->irc->nick );
    821825                b->joined = 0;
     
    827831        }
    828832       
    829         if( remove_chat_buddy_silent( b, handle ) )
    830                 if( ( b->joined || me ) && u )
    831                         irc_part( b->ic->irc, u, b->channel );
     833        if( me || ( remove_chat_buddy_silent( b, handle ) && b->joined && u ) )
     834                irc_part( b->ic->irc, u, b->channel );
    832835}
    833836
Note: See TracChangeset for help on using the changeset viewer.