aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/msn
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/msn')
-rw-r--r--protocols/msn/msn.c4
-rw-r--r--protocols/msn/msn.h6
-rw-r--r--protocols/msn/ns.c25
3 files changed, 23 insertions, 12 deletions
diff --git a/protocols/msn/msn.c b/protocols/msn/msn.c
index e12fb3a9..8930847d 100644
--- a/protocols/msn/msn.c
+++ b/protocols/msn/msn.c
@@ -26,6 +26,10 @@
#include "nogaim.h"
#include "msn.h"
+int msn_chat_id;
+GSList *msn_connections;
+GSList *msn_switchboards;
+
static char *msn_set_display_name( set_t *set, char *value );
static void msn_init( account_t *acc )
diff --git a/protocols/msn/msn.h b/protocols/msn/msn.h
index 333ae7f0..84914bc3 100644
--- a/protocols/msn/msn.h
+++ b/protocols/msn/msn.h
@@ -134,7 +134,7 @@ struct msn_handler_data
#define STATUS_SB_IM_SPARE 4 /* Make one-to-one conversation switchboard available again, invite failed. */
#define STATUS_SB_CHAT_SPARE 8 /* Same, but also for groupchats (not used yet). */
-int msn_chat_id;
+extern int msn_chat_id;
extern const struct msn_away_state msn_away_state_list[];
extern const struct msn_status_code msn_status_code_list[];
@@ -143,8 +143,8 @@ extern const struct msn_status_code msn_status_code_list[];
is down already (for example, when an impatient user disabled the
connection), the callback should check whether it's still listed here
before doing *anything* else. */
-GSList *msn_connections;
-GSList *msn_switchboards;
+extern GSList *msn_connections;
+extern GSList *msn_switchboards;
/* ns.c */
gboolean msn_ns_connected( gpointer data, gint source, b_input_condition cond );
diff --git a/protocols/msn/ns.c b/protocols/msn/ns.c
index d05d8e0d..d78d753a 100644
--- a/protocols/msn/ns.c
+++ b/protocols/msn/ns.c
@@ -228,19 +228,26 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts )
return( 0 );
}
}
- else if( num_parts == 7 && strcmp( cmd[2], "OK" ) == 0 )
+ else if( num_parts >= 7 && strcmp( cmd[2], "OK" ) == 0 )
{
set_t *s;
- http_decode( cmd[4] );
-
- strncpy( ic->displayname, cmd[4], sizeof( ic->displayname ) );
- ic->displayname[sizeof(ic->displayname)-1] = 0;
-
- if( ( s = set_find( &ic->acc->set, "display_name" ) ) )
+ if( num_parts == 7 )
{
- g_free( s->value );
- s->value = g_strdup( cmd[4] );
+ http_decode( cmd[4] );
+
+ strncpy( ic->displayname, cmd[4], sizeof( ic->displayname ) );
+ ic->displayname[sizeof(ic->displayname)-1] = 0;
+
+ if( ( s = set_find( &ic->acc->set, "display_name" ) ) )
+ {
+ g_free( s->value );
+ s->value = g_strdup( cmd[4] );
+ }
+ }
+ else
+ {
+ imcb_log( ic, "Warning: Friendly name in server response was corrupted" );
}
imcb_log( ic, "Authenticated, getting buddy list" );