X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_headers_api.c;h=96a8b66fb5ea573ec370f49d8cd704cfc0124767;hp=81181e5711e6141b9cf4c653c72506b8fd2e721f;hb=e32f6fed32939bba9839c0e4f7cdaec02d8828dd;hpb=6bd8a9818c329bb7526f3db8b8d8ef36a95f303f diff --git a/http_headers_api.c b/http_headers_api.c index 81181e5..96a8b66 100644 --- a/http_headers_api.c +++ b/http_headers_api.c @@ -366,78 +366,6 @@ PHP_HTTP_API void _http_parse_headers_default_callback(const char *http_line, Ha } } -/* {{{ */ -PHP_HTTP_API STATUS _http_parse_cookie(const char *cookie, HashTable *values TSRMLS_DC) -{ - const char *key = cookie, *val = NULL; - int vallen = 0, keylen = 0, done = 0; - zval array; - - Z_ARRVAL(array) = values; - - if (!(val = strchr(cookie, '='))) { - return FAILURE; - } - -#define HTTP_COOKIE_VAL(array, k, str, len) \ - { \ - const char *encoded = str; \ - char *decoded = NULL; \ - int decoded_len = 0, encoded_len = len; \ - decoded = estrndup(encoded, encoded_len); \ - decoded_len = php_url_decode(decoded, encoded_len); \ - add_assoc_stringl(array, k, decoded, decoded_len, 0); \ - } -#define HTTP_COOKIE_FIXKEY() \ - { \ - while (isspace(*key)) ++key; \ - keylen = val - key; \ - while (isspace(key[keylen - 1])) --keylen; \ - } -#define HTTP_COOKIE_FIXVAL() \ - { \ - ++val; \ - while (isspace(*val)) ++val; \ - vallen = key - val; \ - while (isspace(val[vallen - 1])) --vallen; \ - } - - HTTP_COOKIE_FIXKEY(); - HTTP_COOKIE_VAL(&array, "name", key, keylen); - - /* just a name=value cookie */ - if (!(key = strchr(val, ';'))) { - key = val + strlen(val); - HTTP_COOKIE_FIXVAL(); - HTTP_COOKIE_VAL(&array, "value", val, vallen); - } - /* additional info appended */ - else { - char *keydup = NULL; - - HTTP_COOKIE_FIXVAL(); - HTTP_COOKIE_VAL(&array, "value", val, vallen); - - do { - if (!(val = strchr(key, '='))) { - break; - } - ++key; - HTTP_COOKIE_FIXKEY(); - keydup = estrndup(key, keylen); - if (!(key = strchr(val, ';'))) { - done = 1; - key = val + strlen(val); - } - HTTP_COOKIE_FIXVAL(); - HTTP_COOKIE_VAL(&array, keydup, val, vallen); - efree(keydup); - } while (!done); - } - return SUCCESS; -} -/* }}} */ - /* {{{ void http_get_request_headers_ex(HashTable *, zend_bool) */ PHP_HTTP_API void _http_get_request_headers_ex(HashTable *headers, zend_bool prettify TSRMLS_DC) {