aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--protocols/msn/msn.c15
-rw-r--r--protocols/msn/msn.h2
-rw-r--r--protocols/msn/msn_util.c16
-rw-r--r--protocols/msn/ns.c20
-rw-r--r--protocols/msn/soap.c7
5 files changed, 30 insertions, 30 deletions
diff --git a/protocols/msn/msn.c b/protocols/msn/msn.c
index 00c01dc3..873a51ad 100644
--- a/protocols/msn/msn.c
+++ b/protocols/msn/msn.c
@@ -336,9 +336,6 @@ static char *set_eval_display_name( set_t *set, char *value )
{
account_t *acc = set->data;
struct im_connection *ic = acc->ic;
- struct msn_data *md = ic->proto_data;
- char buf[512];
- char *fn;
if( strlen( value ) > 129 )
{
@@ -347,17 +344,7 @@ static char *set_eval_display_name( set_t *set, char *value )
}
msn_soap_addressbook_set_display_name( ic, value );
-
- fn = g_malloc( strlen( value ) * 3 + 1 );
- strcpy( fn, value );
- http_encode( fn );
- g_snprintf( buf, sizeof( buf ), "PRP %d MFN %s\r\n",
- ++md->trId, fn );
- g_free( fn );
-
- /* Note: We don't actually know if the server accepted the new name,
- and won't give proper feedback yet if it doesn't. */
- return msn_write( ic, buf, strlen( buf ) ) ? value : NULL;
+ return msn_ns_set_display_name( ic, value ) ? value : NULL;
}
static void msn_buddy_data_add( bee_user_t *bu )
diff --git a/protocols/msn/msn.h b/protocols/msn/msn.h
index ae4ea42b..3ea8c503 100644
--- a/protocols/msn/msn.h
+++ b/protocols/msn/msn.h
@@ -216,11 +216,11 @@ char *msn_findheader( char *text, char *header, int len );
char **msn_linesplit( char *line );
int msn_handler( struct msn_handler_data *h );
void msn_msgq_purge( struct im_connection *ic, GSList **list );
-gboolean msn_set_display_name( struct im_connection *ic, const char *rawname );
char *msn_p11_challenge( char *challenge );
gint msn_domaintree_cmp( gconstpointer a_, gconstpointer b_ );
struct msn_group *msn_group_by_name( struct im_connection *ic, const char *name );
struct msn_group *msn_group_by_id( struct im_connection *ic, const char *id );
+int msn_ns_set_display_name( struct im_connection *ic, const char *value );
/* tables.c */
const struct msn_away_state *msn_away_state_by_number( int number );
diff --git a/protocols/msn/msn_util.c b/protocols/msn/msn_util.c
index cf8ab4db..78f81a41 100644
--- a/protocols/msn/msn_util.c
+++ b/protocols/msn/msn_util.c
@@ -597,3 +597,19 @@ struct msn_group *msn_group_by_id( struct im_connection *ic, const char *id )
return NULL;
}
+
+int msn_ns_set_display_name( struct im_connection *ic, const char *value )
+{
+ struct msn_data *md = ic->proto_data;
+ char fn[strlen(value)*3+1];
+ char buf[512];
+
+ strcpy( fn, value );
+ http_encode( fn );
+ g_snprintf( buf, sizeof( buf ), "PRP %d MFN %s\r\n",
+ ++md->trId, fn );
+
+ /* Note: We don't actually know if the server accepted the new name,
+ and won't give proper feedback yet if it doesn't. */
+ return msn_write( ic, buf, strlen( buf ) );
+}
diff --git a/protocols/msn/ns.c b/protocols/msn/ns.c
index 2449c8d5..c9b01ef2 100644
--- a/protocols/msn/ns.c
+++ b/protocols/msn/ns.c
@@ -258,6 +258,9 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts )
else if( strcmp( cmd[0], "BLP" ) == 0 )
{
msn_ns_send_adl_start( ic );
+
+ if( md->adl_todo < 0 && !( ic->flags & OPT_LOGGED_IN ) )
+ return msn_ns_set_display_name( ic, set_getstr( &ic->acc->set, "display_name" ) );
}
else if( strcmp( cmd[0], "ADL" ) == 0 )
{
@@ -267,21 +270,10 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts )
if( md->adl_todo < 0 && !( ic->flags & OPT_LOGGED_IN ) )
{
- char buf[1024];
- char *fn_raw;
- char *fn;
-
- if( ( fn_raw = set_getstr( &ic->acc->set, "display_name" ) ) == NULL )
- fn_raw = ic->acc->user;
- fn = g_malloc( strlen( fn_raw ) * 3 + 1 );
- strcpy( fn, fn_raw );
- http_encode( fn );
-
- g_snprintf( buf, sizeof( buf ), "PRP %d MFN %s\r\n",
- ++md->trId, fn );
- g_free( fn );
+ msn_ns_send_adl( ic );
- msn_write( ic, buf, strlen( buf ) );
+ if( md->adl_todo < 0 && !( ic->flags & OPT_LOGGED_IN ) )
+ return msn_ns_set_display_name( ic, set_getstr( &ic->acc->set, "display_name" ) );
}
}
else if( num_parts >= 3 )
diff --git a/protocols/msn/soap.c b/protocols/msn/soap.c
index 91f93afd..b717343f 100644
--- a/protocols/msn/soap.c
+++ b/protocols/msn/soap.c
@@ -686,6 +686,7 @@ static xt_status msn_soap_addressbook_contact( struct xt_node *node, gpointer da
*display_name = NULL, *group_id = NULL;
struct msn_soap_req_data *soap_req = data;
struct im_connection *ic = soap_req->ic;
+ struct msn_data *md = soap_req->ic->proto_data;
struct msn_group *group;
if( ( p = xt_find_path( node, "../contactId" ) ) )
@@ -703,6 +704,10 @@ static xt_status msn_soap_addressbook_contact( struct xt_node *node, gpointer da
if( type && g_strcasecmp( type, "me" ) == 0 )
{
+#if 0
+ g_free( md->myid );
+ md->myid = g_strdup( id );
+#endif
set_t *set = set_find( &ic->acc->set, "display_name" );
g_free( set->value );
set->value = g_strdup( display_name );
@@ -765,7 +770,7 @@ static int msn_soap_ab_namechange_build_request( struct msn_soap_req_data *soap_
soap_req->url = g_strdup( SOAP_ADDRESSBOOK_URL );
soap_req->action = g_strdup( SOAP_AB_NAMECHANGE_ACTION );
soap_req->payload = msn_soap_abservice_build( SOAP_AB_NAMECHANGE_PAYLOAD,
- "Initial", md->tokens[1], (char *) soap_req->data );
+ "Timer", md->tokens[1], (char *) soap_req->data );
return 1;
}