aboutsummaryrefslogtreecommitdiffstats
path: root/protocols
diff options
context:
space:
mode:
Diffstat (limited to 'protocols')
-rw-r--r--protocols/msn/sb.c10
-rw-r--r--protocols/msn/tables.c2
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 },