Changeset 1385 for trunk/src


Ignore:
Timestamp:
Apr 6, 2009, 10:26:05 AM (16 years ago)
Author:
gah
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/core/RpEncode.cc

    r1384 r1385  
    136136
    137137bool
    138 Rappture::encoding::encode(Rappture::Outcome &err, Rappture::Buffer& buf,
     138Rappture::encoding::encode(Rappture::Outcome &status, Rappture::Buffer& buf,
    139139                           unsigned int flags)
    140140{
     
    151151    }
    152152    if (outData.append(buf.bytes(), buf.size()) != (int)size) {
    153         err.addError("can't append %lu bytes", size);
    154         return false;
    155     }
    156     if (!outData.encode(err, flags)) {
     153        status.addError("can't append %lu bytes", size);
     154        return false;
     155    }
     156    if (!outData.encode(status, flags)) {
    157157        return false;
    158158    }
     
    174174    }
    175175    if (buf.append(outData.bytes(),outData.size()) != (int)outData.size()) {
    176         err.addError("can't append %d bytes", outData.size());
     176        status.addError("can't append %d bytes", outData.size());
    177177        return false;
    178178    }
     
    189189 *
    190190 * Full function call:
    191  * Rappture::encoding::decode (buf,flags)
     191 * Rappture::encoding::decode(context, buf,flags)
    192192 *
    193193 * The check header flag is confusing here.
     
    195195
    196196bool
    197 Rappture::encoding::decode(Rappture::Outcome &err, Rappture::Buffer& buf,
    198                 unsigned int flags)
     197Rappture::encoding::decode(Rappture::Outcome &status, Rappture::Buffer& buf,
     198                           unsigned int flags)
    199199{
    200200    Rappture::Buffer outData;
     
    204204    size_t size;
    205205    size = buf.size();
    206     if (size <= 0) {
     206    if (size == 0) {
    207207        return true;            // Nothing to decode.
    208208    }
    209209    bytes = buf.bytes();
    210210    if ((flags & RPENC_RAW) == 0) {
    211         if (strncmp(bytes, "@@RP-ENC:z\n", 11) == 0) {
     211        if ((size > 11) && (strncmp(bytes, "@@RP-ENC:z\n", 11) == 0)) {
    212212            bytes += 11;
    213213            size -= 11;
    214214            flags &= ~RPENC_B64;
    215215            flags |= RPENC_Z;
    216         } else if (strncmp(bytes, "@@RP-ENC:b64\n", 13) == 0) {
     216        } else if ((size > 13) && (strncmp(bytes, "@@RP-ENC:b64\n", 13) == 0)){
    217217            bytes += 13;
    218218            size -= 13;
    219219            flags &= ~RPENC_Z;
    220220            flags |= RPENC_B64;
    221         } else if (strncmp(bytes, "@@RP-ENC:zb64\n", 14) == 0) {
     221        } else if ((size > 14) && (strncmp(bytes, "@@RP-ENC:zb64\n", 14) == 0)){
    222222            bytes += 14;
    223223            size -= 14;
     
    229229    }
    230230    if (outData.append(bytes, size) != (int)size) {
    231         err.addError("can't append %d bytes to buffer", size);
    232         return false;
    233     }
    234     if (!outData.decode(err, flags)) {
     231        status.addError("can't append %d bytes to buffer", size);
     232        return false;
     233    }
     234    if (!outData.decode(status, flags)) {
    235235        return false;
    236236    }
Note: See TracChangeset for help on using the changeset viewer.