Ignore:
Timestamp:
Nov 2, 2009, 1:31:19 AM (14 years ago)
Author:
mies
Message:

Changed Data to Message conversion constructor in Message to explicit
Fixed some general bugs in Data: operator<<
Fixed bug in DHTMessage: allow unspecified key/values
Added local DHT message delivery
Adapted sources to work with gcc 4.4.1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/overlay/messages/DHTMessage.h

    r6266 r6786  
    6262        X && ttl;
    6363
     64//      std::cout << "1" << std::endl;
     65
    6466        // key serialization
    65         uint16_t key_length = key.getLength();
     67        uint16_t key_length = key.isUnspecified() ? 0 : key.getLength();
    6668        X && key_length;
    6769        if (X.isDeserializer()) key.setLength( key_length );
    68         X && key;
     70
     71//      std::cout << "2 - " << key_length << std::endl;
     72        X && this->key;
     73//      std::cout << "2b" << std::endl;
    6974
    7075        // store number of values
     
    7277        X && num_values;
    7378
     79//      std::cout << "3" << std::endl;
     80
    7481        // value serialization
    7582        for (size_t i=0; i<num_values; i++) {
    76                 Data value = values[i];
    77                 uint16_t value_length = value.getLength();
     83//              std::cout << "4" << std::endl;
     84                Data value;
     85                if (X.isSerializer()) value = values[i];
     86                uint16_t value_length = value.isUnspecified() ? 0 : value.getLength();
    7887                X && value_length;
     88//              std::cout << "5" << std::endl;
    7989                if (X.isDeserializer()) value.setLength( value_length );
    8090                X && value;
     91//              std::cout << "6" << std::endl;
    8192                if (X.isDeserializer()) values.push_back(value);
    8293        }
Note: See TracChangeset for help on using the changeset viewer.