]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
use write_uint64 and read_uint64 in file measurements
authorAndreas Steffen <andreas.steffen@strongswan.org>
Thu, 27 Oct 2011 04:29:19 +0000 (06:29 +0200)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Mon, 28 Nov 2011 13:39:52 +0000 (14:39 +0100)
src/libpts/tcg/tcg_pts_attr_file_meas.c

index fe559d0040bfd212f2f654ba59ae951c59b1c835..3269bceede67afc650cc7d510a1e74d0b973f25d 100644 (file)
@@ -133,11 +133,9 @@ METHOD(pa_tnc_attr_t, build, void,
        
        number_of_files = this->measurements->get_file_count(this->measurements);
        request_id = this->measurements->get_request_id(this->measurements);
-       writer = bio_writer_create(PTS_FILE_MEAS_SIZE);
 
-       /* Write the 64 bit integer as two 32 bit parts */
-       writer->write_uint32(writer, number_of_files >> 32);
-       writer->write_uint32(writer, number_of_files & 0xffffffff);
+       writer = bio_writer_create(PTS_FILE_MEAS_SIZE);
+       writer->write_uint64(writer, number_of_files);
        writer->write_uint16(writer, request_id);
 
        enumerator = this->measurements->create_enumerator(this->measurements);
@@ -168,8 +166,7 @@ METHOD(pa_tnc_attr_t, process, status_t,
        private_tcg_pts_attr_file_meas_t *this, u_int32_t *offset)
 {
        bio_reader_t *reader;
-       int count;
-       u_int32_t number_of_files;
+       u_int64_t number_of_files;
        u_int16_t request_id, meas_len, filename_len;
        size_t len;
        chunk_t measurement, filename;
@@ -182,18 +179,15 @@ METHOD(pa_tnc_attr_t, process, status_t,
                *offset = 0;
                return FAILED;
        }
-       reader = bio_reader_create(this->value);
 
-       reader->read_uint32(reader, &number_of_files);
-       count = (sizeof(count) > 4) ? number_of_files << 32 : 0;
-       reader->read_uint32(reader, &number_of_files);
-       count += number_of_files;
+       reader = bio_reader_create(this->value);
+       reader->read_uint64(reader, &number_of_files);
        reader->read_uint16(reader, &request_id);
        reader->read_uint16(reader, &meas_len);
        
        this->measurements = pts_file_meas_create(request_id);
        
-       while (count--)
+       while (number_of_files--)
        {
                if (!reader->read_data(reader, meas_len, &measurement))
                {