Changeset be7a180


Ignore:
Timestamp:
2010-08-12T22:38:30Z (14 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
b46769d
Parents:
ca7de3a
Message:

Proper responses to CHL challenges. Clean up bee_users before calling
prpl->logout() since the buddy_data functions would like some structs to
still exist.

Location:
protocols
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • protocols/msn/msn.h

    rca7de3a rbe7a180  
    3939#endif
    4040
    41 #define QRY_NAME "msmsgs@msnmsgr.com"
    42 #define QRY_CODE "Q1P7W2E4J9R8U3S5"
    43 
    44 /* This should be MSN Messenger 7.0.0813 */
    45 //#define MSNP11_PROD_KEY "CFHUR$52U_{VIX5T"
    46 //#define MSNP11_PROD_ID  "PROD0101{0RM?UBW"
    47 
     41/* This should be MSN Messenger 7.0.0813
     42#define MSNP11_PROD_KEY "CFHUR$52U_{VIX5T"
     43#define MSNP11_PROD_ID  "PROD0101{0RM?UBW"
     44*/
     45
     46/* Some other version.
    4847#define MSNP11_PROD_KEY "O4BG@C7BWLYQX?5G"
    4948#define MSNP11_PROD_ID  "PROD01065C%ZFN6F"
     49*/
     50
     51#define MSNP11_PROD_KEY "RG@XY*28Q5QHS%Q5"
     52#define MSNP11_PROD_ID  "PROD0113H11T8$X_"
    5053
    5154#define MSN_SB_NEW         -24062002
  • protocols/msn/ns.c

    rca7de3a rbe7a180  
    293293        else if( strcmp( cmd[0], "CHL" ) == 0 )
    294294        {
    295                 md5_state_t state;
    296                 md5_byte_t digest[16];
    297                 int i;
    298                
    299                 if( num_parts != 3 )
    300                 {
    301                         imcb_error( ic, "Syntax error" );
    302                         imc_logout( ic, TRUE );
    303                         return( 0 );
    304                 }
    305                
    306                 md5_init( &state );
    307                 md5_append( &state, (const md5_byte_t *) cmd[2], strlen( cmd[2] ) );
    308                 md5_append( &state, (const md5_byte_t *) QRY_CODE, strlen( QRY_CODE ) );
    309                 md5_finish( &state, digest );
    310                
    311                 g_snprintf( buf, sizeof( buf ), "QRY %d %s %d\r\n", ++md->trId, QRY_NAME, 32 );
    312                 for( i = 0; i < 16; i ++ )
    313                         g_snprintf( buf + strlen( buf ), 3, "%02x", digest[i] );
     295                char *resp;
     296               
     297                if( num_parts < 3 )
     298                {
     299                        imcb_error( ic, "Syntax error" );
     300                        imc_logout( ic, TRUE );
     301                        return( 0 );
     302                }
     303               
     304                resp = msn_p11_challenge( cmd[2] );
     305                g_snprintf( buf, sizeof( buf ), "QRY %d %s %zd\r\n%s",
     306                            ++md->trId, MSNP11_PROD_ID,
     307                            strlen( resp ), resp );
     308                g_free( resp );
    314309               
    315310                return( msn_write( ic, buf, strlen( buf ) ) );
     
    581576                   censore. Meh. */
    582577                md->handler->msglen = atoi( cmd[2] );
     578        }
     579        else if( strcmp( cmd[0], "UBX" ) == 0 )
     580        {
     581                /* Status message. Parser coming soon. */
     582                if( num_parts >= 4 )
     583                        md->handler->msglen = atoi( cmd[3] );
    583584        }
    584585        else if( isdigit( cmd[0][0] ) )
  • protocols/nogaim.c

    rca7de3a rbe7a180  
    326326        imcb_log( ic, "Signing off.." );
    327327       
    328         b_event_remove( ic->keepalive );
    329         ic->keepalive = 0;
    330         ic->acc->prpl->logout( ic );
    331         b_event_remove( ic->inpa );
    332        
    333         g_free( ic->away );
    334         ic->away = NULL;
    335        
    336328        for( l = bee->users; l; )
    337329        {
     
    344336                l = next;
    345337        }
     338       
     339        b_event_remove( ic->keepalive );
     340        ic->keepalive = 0;
     341        ic->acc->prpl->logout( ic );
     342        b_event_remove( ic->inpa );
     343       
     344        g_free( ic->away );
     345        ic->away = NULL;
    346346       
    347347        query_del_by_conn( (irc_t*) ic->bee->ui_data, ic );
Note: See TracChangeset for help on using the changeset viewer.