Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/msn/msn.c

    re3413cc r9bf2481  
    3131GSList *msn_switchboards;
    3232
    33 static char *set_eval_display_name( set_t *set, char *value );
     33static char *msn_set_display_name( set_t *set, char *value );
    3434
    3535static void msn_init( account_t *acc )
    3636{
    37         set_add( &acc->set, "display_name", NULL, set_eval_display_name, acc );
    38         set_add( &acc->set, "local_display_name", "false", set_eval_bool, acc );
    39         set_add( &acc->set, "mail_notifications", "false", set_eval_bool, acc );
     37        set_t *s;
     38       
     39        s = set_add( &acc->set, "display_name", NULL, msn_set_display_name, acc );
     40        s->flags |= ACC_SET_NOSAVE | ACC_SET_ONLINE_ONLY;
     41
     42        s = set_add( &acc->set, "mail_notifications", "false", set_eval_bool, acc );
     43       
     44        s = set_add( &acc->set, "switchboard_keepalives", "false", set_eval_bool, acc );
    4045}
    4146
     
    164169static void msn_set_my_name( struct im_connection *ic, char *info )
    165170{
    166         msn_set_display_name( ic, info );
     171        msn_set_display_name( set_find( &ic->acc->set, "display_name" ), info );
    167172}
    168173
     
    280285}
    281286
    282 static char *set_eval_display_name( set_t *set, char *value )
     287static char *msn_set_display_name( set_t *set, char *value )
    283288{
    284289        account_t *acc = set->data;
    285290        struct im_connection *ic = acc->ic;
    286        
    287         /* Allow any name if we're offline. */
     291        struct msn_data *md;
     292        char buf[1024], *fn;
     293       
     294        /* Double-check. */
    288295        if( ic == NULL )
    289                 return value;
     296                return NULL;
     297       
     298        md = ic->proto_data;
    290299       
    291300        if( strlen( value ) > 129 )
     
    294303                return NULL;
    295304        }
     305       
     306        fn = msn_http_encode( value );
     307       
     308        g_snprintf( buf, sizeof( buf ), "REA %d %s %s\r\n", ++md->trId, ic->acc->user, fn );
     309        msn_write( ic, buf, strlen( buf ) );
     310        g_free( fn );
    296311       
    297312        /* Returning NULL would be better, because the server still has to
    298313           confirm the name change. However, it looks a bit confusing to the
    299314           user. */
    300         return msn_set_display_name( ic, value ) ? value : NULL;
     315        return value;
    301316}
    302317
Note: See TracChangeset for help on using the changeset viewer.