Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/msn/msn.c

    r9e9140b r080c43a  
    22  * BitlBee -- An IRC to other IM-networks gateway                     *
    33  *                                                                    *
    4   * Copyright 2002-2010 Wilmer van der Gaast and others                *
     4  * Copyright 2002-2012 Wilmer van der Gaast and others                *
    55  \********************************************************************/
    66
     
    9898                g_free( md->lock_key );
    9999                g_free( md->pp_policy );
     100                g_free( md->uuid );
    100101               
    101102                while( md->groups )
     
    190191                md->away_state = msn_away_state_list + 1;
    191192       
    192         if( !msn_ns_write( ic, -1, "CHG %d %s\r\n", ++md->trId, md->away_state->code ) )
     193        if( !msn_ns_write( ic, -1, "CHG %d %s %d:%02d\r\n", ++md->trId, md->away_state->code, MSN_CAP1, MSN_CAP2 ) )
    193194                return;
    194195       
    195         uux = g_markup_printf_escaped( "<Data><PSM>%s</PSM><CurrentMedia></CurrentMedia>"
    196                                        "</Data>", message ? message : "" );
     196        uux = g_markup_printf_escaped( "<EndpointData><Capabilities>%d:%02d"
     197                                       "</Capabilities></EndpointData>",
     198                                       MSN_CAP1, MSN_CAP2 );
     199        msn_ns_write( ic, -1, "UUX %d %zd\r\n%s", ++md->trId, strlen( uux ), uux );
     200        g_free( uux );
     201       
     202        uux = g_markup_printf_escaped( "<PrivateEndpointData><EpName>%s</EpName>"
     203                                       "<Idle>%s</Idle><ClientType>%d</ClientType>"
     204                                       "<State>%s</State></PrivateEndpointData>",
     205                                       md->uuid,
     206                                       strcmp( md->away_state->code, "IDL" ) ? "false" : "true",
     207                                       1, /* ? */
     208                                       md->away_state->code );
     209        msn_ns_write( ic, -1, "UUX %d %zd\r\n%s", ++md->trId, strlen( uux ), uux );
     210        g_free( uux );
     211       
     212        uux = g_markup_printf_escaped( "<Data><DDP></DDP><PSM>%s</PSM>"
     213                                       "<CurrentMedia></CurrentMedia>"
     214                                       "<MachineGuid>%s</MachineGuid></Data>",
     215                                       message ? message : "", md->uuid );
    197216        msn_ns_write( ic, -1, "UUX %d %zd\r\n%s", ++md->trId, strlen( uux ), uux );
    198217        g_free( uux );
     
    232251{
    233252        struct msn_switchboard *sb = msn_sb_by_chat( c );
    234         char buf[1024];
    235253       
    236254        if( sb )
    237         {
    238                 g_snprintf( buf, sizeof( buf ), "CAL %d %s\r\n", ++sb->trId, who );
    239                 msn_sb_write( sb, buf, strlen( buf ) );
    240         }
     255                msn_sb_write( sb, "CAL %d %s\r\n", ++sb->trId, who );
    241256}
    242257
     
    246261       
    247262        if( sb )
    248                 msn_sb_write( sb, "OUT\r\n", 5 );
     263                msn_sb_write( sb, "OUT\r\n" );
    249264}
    250265
Note: See TracChangeset for help on using the changeset viewer.