Changeset 5342

Show
Ignore:
Timestamp:
03/01/08 14:20:04 (8 months ago)
Author:
morris
Message:

Fix problem with sending zero-sized fields

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • libwired/trunk/libwired/p7/wi-p7-message.c

    r5326 r5342  
    561561        uint32_t                field_size, new_size; 
    562562         
    563         if(length > 0) 
     563        new_size = sizeof(field_id); 
     564        field_size = wi_p7_spec_field_size(p7_message->spec, field_id); 
     565         
     566        if(field_size == 0) { 
    564567                field_size = length; 
    565         else 
    566                 field_size = wi_p7_spec_field_size(p7_message->spec, field_id); 
     568                new_size += sizeof(uint32_t); 
     569        } 
     570         
     571        new_size += field_size; 
    567572         
    568573        if(_wi_p7_message_get_binary_buffer_for_reading_for_id(p7_message, field_id, NULL, NULL)) 
    569574                return false; 
    570575         
    571         new_size = sizeof(field_id) + field_size; 
    572          
    573         if(length > 0) 
    574                 new_size += sizeof(length); 
    575  
    576576        if(p7_message->binary_size + new_size > p7_message->binary_capacity) { 
    577577                p7_message->binary_capacity     *= 2;