diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-03-29 21:30:19 -0400 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-03-29 21:30:19 -0400 |
commit | e3413cc741d2b0a82183f859d7470922bc581efa (patch) | |
tree | 257d8ddb43c3f874e6fb3cf818dbac2648cb11f7 /protocols/msn/msn_util.c | |
parent | c4bc92a42001a05a36678ae14f610ff3857be465 (diff) |
Added local_display_name setting for MSN accounts and some hopefully clever
enough handling for it. Should solve problems with MSN servers forgetting/
overriding display names set by the user.
Diffstat (limited to 'protocols/msn/msn_util.c')
-rw-r--r-- | protocols/msn/msn_util.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/protocols/msn/msn_util.c b/protocols/msn/msn_util.c index 668a8b8a..9c9d2720 100644 --- a/protocols/msn/msn_util.c +++ b/protocols/msn/msn_util.c @@ -37,10 +37,10 @@ int msn_write( struct im_connection *ic, char *s, int len ) { imcb_error( ic, "Short write() to main server" ); imc_logout( ic, TRUE ); - return( 0 ); + return 0; } - return( 1 ); + return 1; } int msn_logged_in( struct im_connection *ic ) @@ -376,3 +376,15 @@ void msn_msgq_purge( struct im_connection *ic, GSList **list ) imcb_log( ic, "%s", ret->str ); g_string_free( ret, TRUE ); } + +gboolean msn_set_display_name( struct im_connection *ic, const char *rawname ) +{ + char *fn = msn_http_encode( rawname ); + struct msn_data *md = ic->proto_data; + char buf[1024]; + + g_snprintf( buf, sizeof( buf ), "REA %d %s %s\r\n", ++md->trId, ic->acc->user, fn ); + g_free( fn ); + + return msn_write( ic, buf, strlen( buf ) ) != 0; +} |