Changeset b46769d


Ignore:
Timestamp:
2010-08-12T22:44:56Z (9 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
91d6e91
Parents:
be7a180
Message:

Some syntax checking fixups; don't make the same mistake of failing just if
the MSN server is sending a little bit *more* info.
And adding xt_insert_node() used in the ADL generation code.

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • lib/xmltree.c

    rbe7a180 rb46769d  
    550550}
    551551
     552/* Same, but at the beginning. */
     553void xt_insert_child( struct xt_node *parent, struct xt_node *child )
     554{
     555        struct xt_node *node, *last;
     556       
     557        for( node = child; node; node = node->next )
     558        {
     559                if( node->parent != NULL )
     560                {
     561                        /* ERROR CONDITION: They seem to have a parent already??? */
     562                }
     563               
     564                node->parent = parent;
     565                last = node;
     566        }
     567       
     568        last->next = parent->children;
     569        parent->children = child;
     570}
     571
    552572void xt_add_attr( struct xt_node *node, const char *key, const char *value )
    553573{
  • lib/xmltree.h

    rbe7a180 rb46769d  
    9292struct xt_node *xt_new_node( char *name, const char *text, struct xt_node *children );
    9393void xt_add_child( struct xt_node *parent, struct xt_node *child );
     94void xt_insert_child( struct xt_node *parent, struct xt_node *child );
    9495void xt_add_attr( struct xt_node *node, const char *key, const char *value );
    9596int xt_remove_attr( struct xt_node *node, const char *key );
  • protocols/msn/ns.c

    rbe7a180 rb46769d  
    228228                else if( strcmp( cmd[2], "OK" ) == 0 )
    229229                {
    230                         if( num_parts == 7 )
    231                                 msn_ns_got_display_name( ic, cmd[4] );
    232                         else
    233                                 imcb_log( ic, "Warning: Friendly name in server response was corrupted" );
    234                        
    235230                        imcb_log( ic, "Authenticated, getting buddy list" );
    236                        
    237231                        msn_soap_memlist_request( ic );
    238232                }
     
    246240        else if( strcmp( cmd[0], "MSG" ) == 0 )
    247241        {
    248                 if( num_parts != 4 )
     242                if( num_parts < 4 )
    249243                {
    250244                        imcb_error( ic, "Syntax error" );
     
    348342                const struct msn_away_state *st;
    349343               
    350                 if( num_parts != 5 )
     344                if( num_parts < 5 )
    351345                {
    352346                        imcb_error( ic, "Syntax error" );
     
    377371                int session, port;
    378372               
    379                 if( num_parts != 7 )
     373                if( num_parts < 7 )
    380374                {
    381375                        imcb_error( ic, "Syntax error" );
     
    421415        else if( strcmp( cmd[0], "ADD" ) == 0 )
    422416        {
    423                 if( num_parts == 6 && strcmp( cmd[2], "RL" ) == 0 )
     417                if( num_parts >= 6 && strcmp( cmd[2], "RL" ) == 0 )
    424418                {
    425419                        GSList *l;
     
    485479        else if( strcmp( cmd[0], "REA" ) == 0 )
    486480        {
    487                 if( num_parts != 5 )
     481                if( num_parts < 5 )
    488482                {
    489483                        imcb_error( ic, "Syntax error" );
  • protocols/msn/sb.c

    rbe7a180 rb46769d  
    414414        else if( strcmp( cmd[0], "USR" ) == 0 )
    415415        {
    416                 if( num_parts != 5 )
     416                if( num_parts < 5 )
    417417                {
    418418                        msn_sb_destroy( sb );
     
    440440                int num, tot;
    441441               
    442                 if( num_parts != 6 )
     442                if( num_parts < 6 )
    443443                {
    444444                        msn_sb_destroy( sb );
     
    477477        else if( strcmp( cmd[0], "ANS" ) == 0 )
    478478        {
    479                 if( num_parts != 3 )
     479                if( num_parts < 3 )
    480480                {
    481481                        msn_sb_destroy( sb );
     
    496496        else if( strcmp( cmd[0], "CAL" ) == 0 )
    497497        {
    498                 if( num_parts != 4 || !isdigit( cmd[3][0] ) )
     498                if( num_parts < 4 || !isdigit( cmd[3][0] ) )
    499499                {
    500500                        msn_sb_destroy( sb );
     
    506506        else if( strcmp( cmd[0], "JOI" ) == 0 )
    507507        {
    508                 if( num_parts != 3 )
     508                if( num_parts < 3 )
    509509                {
    510510                        msn_sb_destroy( sb );
     
    567567        else if( strcmp( cmd[0], "MSG" ) == 0 )
    568568        {
    569                 if( num_parts != 4 )
     569                if( num_parts < 4 )
    570570                {
    571571                        msn_sb_destroy( sb );
Note: See TracChangeset for help on using the changeset viewer.