- php_info fun
[m6w6/ext-http] / http_headers_api.c
index 55be354afbc50feaf56817e64812647511b1b6ac..8a4ecc5591f8d9a9ee8c2b4e918a755c56facd4d 100644 (file)
@@ -152,9 +152,7 @@ PHP_HTTP_API HashTable *_http_negotiate_q(const char *header, HashTable *support
                                if (separator = strchr(Z_STRVAL_PP(entry), ';')) {
                                        const char *ptr = separator;
                                        
-                                       do {
-                                               ++ptr;
-                                       } while ((*ptr == ' ') || (*ptr == 'q') || (*ptr == '='));
+                                       while (*++ptr && !isdigit(*ptr));
                                        
                                        quality = strtod(ptr, NULL);
                                        identifier = estrndup(Z_STRVAL_PP(entry), separator - Z_STRVAL_PP(entry));
@@ -333,7 +331,8 @@ PHP_HTTP_API STATUS _http_parse_headers_ex(const char *header, HashTable *header
        size_t header_len;
        zval array;
 
-       Z_ARRVAL(array) = headers;
+       INIT_ZARR(array, headers);
+       
        if (body) {
                header_len = body - header;
        } else {
@@ -343,7 +342,7 @@ PHP_HTTP_API STATUS _http_parse_headers_ex(const char *header, HashTable *header
 
        while (header_len >= (size_t) (line - begin)) {
                int value_len = 0;
-
+               /* note: valgrind may choke on that -- should be safe though */
                switch (*line++)
                {
                        case ':':