} else {
qual = 1000.0 - i++;
}
+ /* TODO: support primaries only, too */
FOREACH_HASH_VAL((HashTable *)supported, zsupp) {
if (!strcasecmp(Z_STRVAL_PP(zsupp), Z_STRVAL_PP(zentry))) {
add_assoc_double(&zentries, Z_STRVAL_PP(zsupp), qual);
range = Z_STRVAL_P(zrange);
if (strncmp(range, "bytes=", sizeof("bytes=") - 1)) {
+ /* should we really issue a notice for a client misbehaviour?
http_error(E_NOTICE, HTTP_E_HEADER, "Range header misses bytes=");
+ */
return RANGE_NO;
}
return RANGE_NO;
}
/* "0-0" or overflow */
- if (end == -10 || length <= end) {
+ if (end == -10 || length <= (size_t) end) {
return RANGE_ERR;
}
begin = 0;
/* "-12345" */
case -1:
/* "-", "-0" or overflow */
- if (end == -1 || end == -10 || length <= end) {
+ if (end == -1 || end == -10 || length <= (size_t) end) {
return RANGE_ERR;
}
begin = length - end;
/* "12345-" */
case -1:
- if (length <= begin) {
+ if (length <= (size_t) begin) {
return RANGE_ERR;
}
end = length - 1;
/* "12345-67890" */
default:
- if ( (length <= begin) ||
- (length <= end) ||
+ if ( (length <= (size_t) begin) ||
+ (length <= (size_t) end) ||
(end < begin)) {
return RANGE_ERR;
}
line = header;
- while (header_len >= (line - begin)) {
+ while (header_len >= (size_t) (line - begin)) {
int value_len = 0;
switch (*line++)