diff options
Diffstat (limited to 'protocols/msn')
| -rw-r--r-- | protocols/msn/sb.c | 10 | ||||
| -rw-r--r-- | protocols/msn/tables.c | 2 | 
2 files changed, 7 insertions, 5 deletions
| diff --git a/protocols/msn/sb.c b/protocols/msn/sb.c index 234be1d6..34b0a30a 100644 --- a/protocols/msn/sb.c +++ b/protocols/msn/sb.c @@ -522,14 +522,14 @@ static int msn_sb_command( gpointer data, char **cmd, int num_parts )  		if( err->flags & STATUS_SB_FATAL )  		{  			msn_sb_destroy( sb ); -			return( 0 ); +			return 0;  		} -		if( err->flags & STATUS_FATAL ) +		else if( err->flags & STATUS_FATAL )  		{  			signoff( gc ); -			return( 0 ); +			return 0;  		} -		if( err->flags & STATUS_SB_IM_SPARE ) +		else if( err->flags & STATUS_SB_IM_SPARE )  		{  			if( sb->who )  			{ @@ -552,6 +552,8 @@ static int msn_sb_command( gpointer data, char **cmd, int num_parts )  				g_slist_free( sb->msgq );  				sb->msgq = NULL;  			} +			 +			/* Do NOT return 0 here, we want to keep this sb. */  		}  	}  	else diff --git a/protocols/msn/tables.c b/protocols/msn/tables.c index f8e98350..5ba9ea73 100644 --- a/protocols/msn/tables.c +++ b/protocols/msn/tables.c @@ -126,7 +126,7 @@ const struct msn_status_code msn_status_code_list[] =  	{ 800, "Changing too rapidly",                                  0 },  	{ 910, "Server is busy",                                        STATUS_FATAL }, -	{ 911, "Authentication failed",                                 STATUS_FATAL }, +	{ 911, "Authentication failed",                                 STATUS_SB_FATAL | STATUS_FATAL },  	{ 912, "Server is busy",                                        STATUS_FATAL },  	{ 913, "Not allowed when hiding",                               0 },  	{ 914, "Server is unavailable",                                 STATUS_FATAL }, | 
