Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/msn/msn.c

    re3413cc r17a6ee9  
    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 );
    4043}
    4144
     
    7881        if( md )
    7982        {
     83                /** Disabling MSN ft support for now.
     84                while( md->filetransfers ) {
     85                        imcb_file_canceled( md->filetransfers->data, "Closing connection" );
     86                }
     87                */
     88               
    8089                if( md->fd >= 0 )
    8190                        closesocket( md->fd );
     
    164173static void msn_set_my_name( struct im_connection *ic, char *info )
    165174{
    166         msn_set_display_name( ic, info );
     175        msn_set_display_name( set_find( &ic->acc->set, "display_name" ), info );
    167176}
    168177
     
    280289}
    281290
    282 static char *set_eval_display_name( set_t *set, char *value )
     291static char *msn_set_display_name( set_t *set, char *value )
    283292{
    284293        account_t *acc = set->data;
    285294        struct im_connection *ic = acc->ic;
    286        
    287         /* Allow any name if we're offline. */
     295        struct msn_data *md;
     296        char buf[1024], *fn;
     297       
     298        /* Double-check. */
    288299        if( ic == NULL )
    289                 return value;
     300                return NULL;
     301       
     302        md = ic->proto_data;
    290303       
    291304        if( strlen( value ) > 129 )
     
    294307                return NULL;
    295308        }
     309       
     310        fn = msn_http_encode( value );
     311       
     312        g_snprintf( buf, sizeof( buf ), "REA %d %s %s\r\n", ++md->trId, ic->acc->user, fn );
     313        msn_write( ic, buf, strlen( buf ) );
     314        g_free( fn );
    296315       
    297316        /* Returning NULL would be better, because the server still has to
    298317           confirm the name change. However, it looks a bit confusing to the
    299318           user. */
    300         return msn_set_display_name( ic, value ) ? value : NULL;
     319        return value;
    301320}
    302321
     
    327346        ret->send_typing = msn_send_typing;
    328347        ret->handle_cmp = g_strcasecmp;
     348        //ret->transfer_request = msn_ftp_transfer_request;
    329349
    330350        register_protocol(ret);
Note: See TracChangeset for help on using the changeset viewer.