-/* {{{ STATUS http_chunked_decode(char *, size_t, char **, size_t *) */
-PHP_HTTP_API STATUS _http_chunked_decode(const char *encoded, size_t encoded_len,
+/* {{{ STATUS http_check_method(char *) */
+STATUS _http_check_method_ex(const char *method, const char *methods)
+{
+ const char *found;
+
+ if ( (found = strstr(methods, method)) &&
+ (found == method || !isalpha(found[-1])) &&
+ (!isalpha(found[strlen(method) + 1]))) {
+ return SUCCESS;
+ }
+ return FAILURE;
+}
+/* }}} */
+
+/* {{{ zval *http_get_server_var_ex(char *, size_t) */
+PHP_HTTP_API zval *_http_get_server_var_ex(const char *key, size_t key_size, zend_bool check TSRMLS_DC)
+{
+ zval **var;
+ if (SUCCESS == zend_hash_find(HTTP_SERVER_VARS, (char *) key, key_size, (void **) &var)) {
+ if (check) {
+ return Z_STRVAL_PP(var) && Z_STRLEN_PP(var) ? *var : NULL;
+ } else {
+ return *var;
+ }
+ }
+ return NULL;
+}
+/* }}} */
+
+
+/* {{{ char *http_chunked_decode(char *, size_t, char **, size_t *) */
+PHP_HTTP_API const char *_http_chunked_decode(const char *encoded, size_t encoded_len,