Changeset be7a180 for protocols/msn/ns.c


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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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] ) )
Note: See TracChangeset for help on using the changeset viewer.