char *ptr = static_cast<char *>(
memmem(response.data(), response.size(), "\r\n\r\n", 4));
assert(ptr != NULL);
- extra_data = string(ptr, &response[0] + response.size());
+ extra_data = string(ptr + 4, &response[0] + response.size());
response.resize(ptr - response.data());
}
uint32_t size = ntohl(hdr->size);
uint32_t flags = ntohl(hdr->flags);
- if (size > 65535) {
- log(WARNING, "[%s] Metacube block of %x bytes (flags=%x); corrupted header?",
+ if (size > 262144) {
+ log(WARNING, "[%s] Metacube block of %d bytes (flags=%x); corrupted header?",
url.c_str(), size, flags);
}
for (size_t i = 0; i < stream_indices.size(); ++i) {
servers->set_header(stream_indices[i], http_header, header);
}
- } else {
+ } else {
+ StreamStartSuitability suitable_for_stream_start;
+ if (flags & METACUBE_FLAGS_NOT_SUITABLE_FOR_STREAM_START) {
+ suitable_for_stream_start = NOT_SUITABLE_FOR_STREAM_START;
+ } else {
+ suitable_for_stream_start = SUITABLE_FOR_STREAM_START;
+ }
for (size_t i = 0; i < stream_indices.size(); ++i) {
- servers->add_data(stream_indices[i], inner_data, size);
+ servers->add_data(stream_indices[i], inner_data, size, suitable_for_stream_start);
}
}