X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_headers_api.c;h=5e984e4a2ba52e5f320633ccc94c8fa12b84e124;hb=438d27e988e114136d931c6e3586ce3ee38e2ad2;hp=70f36ce285052578b8df7acc1c4914d1054007f9;hpb=687515f3fa8863f97fd281152a80171ad438532d;p=m6w6%2Fext-http diff --git a/http_headers_api.c b/http_headers_api.c index 70f36ce..5e984e4 100644 --- a/http_headers_api.c +++ b/http_headers_api.c @@ -143,7 +143,7 @@ PHP_HTTP_API HashTable *_http_negotiate_q(const char *header, HashTable *support if ((separator = strchr(Z_STRVAL_PP(entry), ';'))) { const char *ptr = separator; - while (*++ptr && !isdigit(*ptr) && '.' != *ptr); + while (*++ptr && !HTTP_IS_CTYPE(digit, *ptr) && '.' != *ptr); quality = atof(ptr); identifier = estrndup(Z_STRVAL_PP(entry), ident_len = separator - Z_STRVAL_PP(entry)); @@ -153,11 +153,11 @@ PHP_HTTP_API HashTable *_http_negotiate_q(const char *header, HashTable *support } freeme = identifier; - while (isspace(*identifier)) { + while (HTTP_IS_CTYPE(space, *identifier)) { ++identifier; --ident_len; } - while (ident_len && isspace(identifier[ident_len - 1])) { + while (ident_len && HTTP_IS_CTYPE(space, identifier[ident_len - 1])) { identifier[--ident_len] = '\0'; } @@ -200,14 +200,13 @@ PHP_HTTP_API http_range_status _http_get_request_ranges(HashTable *ranges, size_ range += sizeof("bytes=") - 1; do { - switch (c = *(range++)) - { + switch (c = *(range++)) { case '0': /* allow 000... - shall we? */ if (*ptr != -10) { *ptr *= 10; } - break; + break; case '1': case '2': case '3': case '4': case '5': case '6': @@ -229,23 +228,21 @@ PHP_HTTP_API http_range_status _http_get_request_ranges(HashTable *ranges, size_ } else { *ptr = c - '0'; } - break; + break; case '-': ptr = &end; - break; + break; case ' ': - /* IE - ignore for now */ - break; + break; case 0: case ',': if (length) { /* validate ranges */ - switch (begin) - { + switch (begin) { /* "0-12345" */ case -10: /* "0-" */ @@ -257,7 +254,7 @@ PHP_HTTP_API http_range_status _http_get_request_ranges(HashTable *ranges, size_ return RANGE_ERR; } begin = 0; - break; + break; /* "-12345" */ case -1: @@ -267,16 +264,14 @@ PHP_HTTP_API http_range_status _http_get_request_ranges(HashTable *ranges, size_ } begin = length - end; end = length - 1; - break; + break; /* "12345-(xxx)" */ default: - switch (end) - { + switch (end) { /* "12345-0" */ case -10: return RANGE_ERR; - break; /* "12345-" */ case -1: @@ -284,7 +279,7 @@ PHP_HTTP_API http_range_status _http_get_request_ranges(HashTable *ranges, size_ return RANGE_ERR; } end = length - 1; - break; + break; /* "12345-67890" */ default: @@ -293,9 +288,9 @@ PHP_HTTP_API http_range_status _http_get_request_ranges(HashTable *ranges, size_ (end < begin)) { return RANGE_ERR; } - break; + break; } - break; + break; } } { @@ -310,11 +305,10 @@ PHP_HTTP_API http_range_status _http_get_request_ranges(HashTable *ranges, size_ end = -1; ptr = &begin; } - break; + break; default: return RANGE_NO; - break; } } while (c != 0); @@ -332,20 +326,19 @@ PHP_HTTP_API STATUS _http_parse_headers_ex(const char *header, HashTable *header INIT_ZARR(array, headers); /* skip leading ws */ - while (isspace(*header)) ++header; + while (HTTP_IS_CTYPE(space, *header)) ++header; line = header; #define MORE_HEADERS (*(line-1) && !(*(line-1) == '\n' && (*line == '\n' || *line == '\r'))) do { int value_len = 0; - switch (*line++) - { + switch (*line++) { case ':': if (!colon) { colon = line - 1; } - break; + break; case 0: --value_len; /* we don't have CR so value length is one char less */ @@ -365,9 +358,9 @@ PHP_HTTP_API STATUS _http_parse_headers_ex(const char *header, HashTable *header const char *key = header; /* skip leading ws */ - while (keylen && isspace(*key)) --keylen && ++key; + while (keylen && HTTP_IS_CTYPE(space, *key)) --keylen && ++key; /* skip trailing ws */ - while (keylen && isspace(key[keylen - 1])) --keylen; + while (keylen && HTTP_IS_CTYPE(space, key[keylen - 1])) --keylen; if (keylen > 0) { zval **previous = NULL; @@ -381,9 +374,9 @@ PHP_HTTP_API STATUS _http_parse_headers_ex(const char *header, HashTable *header value_len += line - colon - 1; /* skip leading ws */ - while (isspace(*(++colon))) --value_len; + while (HTTP_IS_CTYPE(space, *(++colon))) --value_len; /* skip trailing ws */ - while (isspace(colon[value_len - 1])) --value_len; + while (HTTP_IS_CTYPE(space, colon[value_len - 1])) --value_len; if (value_len > 0) { value = estrndup(colon, value_len); @@ -419,7 +412,7 @@ PHP_HTTP_API STATUS _http_parse_headers_ex(const char *header, HashTable *header value_len = 0; header += line - header; } - break; + break; } } while (MORE_HEADERS);