From: Michael Wallner Date: Sun, 24 Jul 2005 18:16:11 +0000 (+0000) Subject: - no need to mark HttpUtil as final X-Git-Tag: RELEASE_0_10_0~8 X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=commitdiff_plain;h=402b8c161ea5d8e9862413a0282fb9757db9926e - no need to mark HttpUtil as final - Reflection awareness of HttpUtil - fix config.m4 --- diff --git a/KnownIssues.txt b/KnownIssues.txt index ae9efc7..dfb4e6f 100644 --- a/KnownIssues.txt +++ b/KnownIssues.txt @@ -4,3 +4,6 @@ $Id$ Issues I don't know how to solve yet are as follows: +- INI entry allowed_methods is not working properly +- Reflection on static class members does not work + diff --git a/config.m4 b/config.m4 index 3967b1f..15d958c 100644 --- a/config.m4 +++ b/config.m4 @@ -79,10 +79,12 @@ dnl ---- PHP_NEW_EXTENSION([http], $PHP_HTTP_SOURCES, [$ext_shared]) PHP_SUBST([HTTP_SHARED_LIBADD]) PHP_ADD_MAKEFILE_FRAGMENT - if ! test -z "$HTTP_ODD_WARNINGS"; then - CFLAGS=" -g -O2 -W -Wchar-subscripts -Wformat=2 -Wno-format-y2k -Wimplicit -Wmissing-braces -Wunused-variable -Wbad-function-cast -Wpointer-arith -Wsign-compare -Winline" - PHP_SUBST([CFLAGS]) - fi AC_DEFINE([HAVE_HTTP], [1], [Have extended HTTP support]) -fi +dnl --- +dnl odd warnings +dnl --- +dnl CFLAGS=" -g -O2 -W -Wchar-subscripts -Wformat=2 -Wno-format-y2k -Wimplicit -Wmissing-braces -Wunused-variable -Wbad-function-cast -Wpointer-arith -Wsign-compare -Winline" +dnl PHP_SUBST([CFLAGS]) + +fi diff --git a/http_util_object.c b/http_util_object.c index b1951fb..d4c544d 100644 --- a/http_util_object.c +++ b/http_util_object.c @@ -27,25 +27,91 @@ #include "php_http_std_defs.h" #include "php_http_util_object.h" +#define HTTP_BEGIN_ARGS(method, req_args) HTTP_BEGIN_ARGS_EX(HttpUtil, method, 0, req_args) +#define HTTP_EMPTY_ARGS(method, ret_ref) HTTP_EMPTY_ARGS_EX(HttpUtil, method, ret_ref) + +#define HTTP_UTIL_ALIAS(method, func) HTTP_STATIC_ME_ALIAS(method, func, HTTP_ARGS(HttpUtil, method)) + +HTTP_BEGIN_ARGS(date, 0) + HTTP_ARG_VAL(timestamp, 0) +HTTP_END_ARGS; + +HTTP_BEGIN_ARGS(absoluteUri, 1) + HTTP_ARG_VAL(url, 0) + HTTP_ARG_VAL(proto, 0) + HTTP_ARG_VAL(host, 0) + HTTP_ARG_VAL(port, 0) +HTTP_END_ARGS; + +HTTP_BEGIN_ARGS(negotiateLanguage, 1) + HTTP_ARG_VAL(supported, 0) + HTTP_ARG_VAL(default, 0) +HTTP_END_ARGS; + +HTTP_BEGIN_ARGS(negotiateCharset, 1) + HTTP_ARG_VAL(supported, 0) + HTTP_ARG_VAL(default, 0) +HTTP_END_ARGS; + +HTTP_BEGIN_ARGS(matchModified, 1) + HTTP_ARG_VAL(last_modified, 0) + HTTP_ARG_VAL(for_range, 0) +HTTP_END_ARGS; + +HTTP_BEGIN_ARGS(matchEtag, 1) + HTTP_ARG_VAL(plain_etag, 0) + HTTP_ARG_VAL(for_range, 0) +HTTP_END_ARGS; + +HTTP_BEGIN_ARGS(matchRequestHeader, 2) + HTTP_ARG_VAL(header_name, 0) + HTTP_ARG_VAL(header_value, 0) + HTTP_ARG_VAL(case_sensitive, 0) +HTTP_END_ARGS; + +HTTP_BEGIN_ARGS(chunkedDecode, 1) + HTTP_ARG_VAL(encoded_string, 0) +HTTP_END_ARGS; + +HTTP_BEGIN_ARGS(splitResponse, 1) + HTTP_ARG_VAL(response_string, 0) +HTTP_END_ARGS; + +HTTP_BEGIN_ARGS(parseHeaders, 1) + HTTP_ARG_VAL(headers_string, 0) +HTTP_END_ARGS; + +HTTP_BEGIN_ARGS(authBasic, 2) + HTTP_ARG_VAL(username, 0) + HTTP_ARG_VAL(password, 0) + HTTP_ARG_VAL(realm, 0) +HTTP_END_ARGS; + +HTTP_BEGIN_ARGS(authBasicCallback, 1) + HTTP_ARG_VAL(callback, 0) + HTTP_ARG_VAL(realm, 0) +HTTP_END_ARGS; + zend_class_entry *http_util_object_ce; zend_function_entry http_util_object_fe[] = { - HTTP_STATIC_ME_ALIAS(date, http_date, NULL) - HTTP_STATIC_ME_ALIAS(absoluteURI, http_absolute_uri, NULL) - HTTP_STATIC_ME_ALIAS(negotiateLanguage, http_negotiate_language, NULL) - HTTP_STATIC_ME_ALIAS(negotiateCharset, http_negotiate_charset, NULL) - HTTP_STATIC_ME_ALIAS(matchModified, http_match_modified, NULL) - HTTP_STATIC_ME_ALIAS(matchEtag, http_match_etag, NULL) - HTTP_STATIC_ME_ALIAS(chunkedDecode, http_chunked_decode, NULL) - HTTP_STATIC_ME_ALIAS(splitResponse, http_split_response, NULL) - HTTP_STATIC_ME_ALIAS(parseHeaders, http_parse_headers, NULL) - HTTP_STATIC_ME_ALIAS(authBasic, http_auth_basic, NULL) - HTTP_STATIC_ME_ALIAS(authBasicCallback, http_auth_basic_cb, NULL) + HTTP_UTIL_ALIAS(date, http_date) + HTTP_UTIL_ALIAS(absoluteUri, http_absolute_uri) + HTTP_UTIL_ALIAS(negotiateLanguage, http_negotiate_language) + HTTP_UTIL_ALIAS(negotiateCharset, http_negotiate_charset) + HTTP_UTIL_ALIAS(matchModified, http_match_modified) + HTTP_UTIL_ALIAS(matchEtag, http_match_etag) + HTTP_UTIL_ALIAS(matchRequestHeader, http_match_request_header) + HTTP_UTIL_ALIAS(chunkedDecode, http_chunked_decode) + HTTP_UTIL_ALIAS(splitResponse, http_split_response) + HTTP_UTIL_ALIAS(parseHeaders, http_parse_headers) + HTTP_UTIL_ALIAS(authBasic, http_auth_basic) + HTTP_UTIL_ALIAS(authBasicCallback, http_auth_basic_cb) {NULL, NULL, NULL} }; void _http_util_object_init(INIT_FUNC_ARGS) { - HTTP_REGISTER_CLASS(HttpUtil, http_util_object, NULL, ZEND_ACC_FINAL_CLASS); + HTTP_REGISTER_CLASS(HttpUtil, http_util_object, NULL, 0); } #endif /* ZEND_ENGINE_2 */ diff --git a/php_http_util_object.h b/php_http_util_object.h index 8a4a9f3..0742ef8 100644 --- a/php_http_util_object.h +++ b/php_http_util_object.h @@ -26,7 +26,7 @@ extern zend_function_entry http_util_object_fe[]; extern void _http_util_object_init(INIT_FUNC_ARGS); PHP_METHOD(HttpUtil, date); -PHP_METHOD(HttpUtil, absoluteURI); +PHP_METHOD(HttpUtil, absoluteUri); PHP_METHOD(HttpUtil, negotiateLanguage); PHP_METHOD(HttpUtil, negotiateCharset); PHP_METHOD(HttpUtil, matchModified);