X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=httpinput.cpp;h=3bee5d675fde7385fc61307ac1ad14d8648f9edc;hp=c346a1423ebbe938e4ee3bb7f6dfe49011bb005a;hb=4a33511c426ae90abb261f09fda1e31e0c30ca16;hpb=8b466d2b206f26aedf802b06fe93ba1b67960c93 diff --git a/httpinput.cpp b/httpinput.cpp index c346a14..3bee5d6 100644 --- a/httpinput.cpp +++ b/httpinput.cpp @@ -352,7 +352,7 @@ void HTTPInput::do_work() char *ptr = static_cast( 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()); } @@ -458,8 +458,8 @@ void HTTPInput::process_data(char *ptr, size_t bytes) 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); } @@ -475,9 +475,15 @@ void HTTPInput::process_data(char *ptr, size_t bytes) 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); } }