Changeset 3b9390b for protocols/msn/sb.c


Ignore:
Timestamp:
2005-12-18T10:39:13Z (16 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
578d627
Parents:
43f205b
Message:

When trying to talk to MSN people who are offline, the switchboard gets reset to a spare correctly.
This fixes a problem with messages to MSN people not arriving sometimes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/msn/sb.c

    r43f205b r3b9390b  
    522522                        return( 0 );
    523523                }
    524                 else if( err->flags & STATUS_FATAL )
     524                if( err->flags & STATUS_FATAL )
    525525                {
    526526                        signoff( gc );
    527527                        return( 0 );
     528                }
     529                if( err->flags & STATUS_SB_IM_SPARE )
     530                {
     531                        if( sb->who )
     532                        {
     533                                struct msn_message *m;
     534                                GSList *l;
     535                               
     536                                /* Apparently some invitation failed. We might want to use this
     537                                   board later, so keep it as a spare. */
     538                                g_free( sb->who );
     539                                sb->who = NULL;
     540                               
     541                                /* Also clear the msgq, otherwise someone else might get them. */
     542                                for( l = sb->msgq; l; l = l->next )
     543                                {
     544                                        m = l->data;
     545                                        g_free( m->who );
     546                                        g_free( m->text );
     547                                        g_free( m );
     548                                }
     549                                g_slist_free( sb->msgq );
     550                                sb->msgq = NULL;
     551                        }
    528552                }
    529553        }
Note: See TracChangeset for help on using the changeset viewer.