X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_headers.c;h=eaa6105725f87cc425c1204a96f818fade13bc33;hp=68e2f6affb8a0d7c35d3161540062e434c401070;hb=9886ab46dbb299c9d6cfef9d8a0258d91b90a8e6;hpb=92a430bc613226e2fb1badd624933eeb6c8cb3ce diff --git a/php_http_headers.c b/php_http_headers.c index 68e2f6a..eaa6105 100644 --- a/php_http_headers.c +++ b/php_http_headers.c @@ -209,11 +209,11 @@ PHP_METHOD(HttpHeader, match) { char *val_str; int val_len; - long flags = 0; + long flags = PHP_HTTP_MATCH_LOOSE; zval *zvalue; if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sl", &val_str, &val_len, &flags)) { - RETURN_NULL(); + return; } zvalue = php_http_ztyp(IS_STRING, zend_read_property(php_http_header_class_entry, getThis(), ZEND_STRL("value"), 0 TSRMLS_CC)); @@ -232,32 +232,31 @@ PHP_METHOD(HttpHeader, negotiate) char *sep_str = NULL; size_t sep_len = 0; - if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "H|z", &supported, &rs_array)) { - if (rs_array) { - zval_dtor(rs_array); - array_init(rs_array); - } + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "H|z", &supported, &rs_array)) { + return; + } + if (rs_array) { + zval_dtor(rs_array); + array_init(rs_array); + } - zname = php_http_ztyp(IS_STRING, zend_read_property(php_http_header_class_entry, getThis(), ZEND_STRL("name"), 0 TSRMLS_CC)); - if (!strcasecmp(Z_STRVAL_P(zname), "Accept")) { - sep_str = "/"; - sep_len = 1; - } else if (!strcasecmp(Z_STRVAL_P(zname), "Accept-Language")) { - sep_str = "-"; - sep_len = 1; - } - zval_ptr_dtor(&zname); + zname = php_http_ztyp(IS_STRING, zend_read_property(php_http_header_class_entry, getThis(), ZEND_STRL("name"), 0 TSRMLS_CC)); + if (!strcasecmp(Z_STRVAL_P(zname), "Accept")) { + sep_str = "/"; + sep_len = 1; + } else if (!strcasecmp(Z_STRVAL_P(zname), "Accept-Language")) { + sep_str = "-"; + sep_len = 1; + } + zval_ptr_dtor(&zname); - zvalue = php_http_ztyp(IS_STRING, zend_read_property(php_http_header_class_entry, getThis(), ZEND_STRL("value"), 0 TSRMLS_CC)); - if ((rs = php_http_negotiate(Z_STRVAL_P(zvalue), Z_STRLEN_P(zvalue), supported, sep_str, sep_len TSRMLS_CC))) { - PHP_HTTP_DO_NEGOTIATE_HANDLE_RESULT(rs, supported, rs_array); - } else { - PHP_HTTP_DO_NEGOTIATE_HANDLE_DEFAULT(supported, rs_array); - } - zval_ptr_dtor(&zvalue); + zvalue = php_http_ztyp(IS_STRING, zend_read_property(php_http_header_class_entry, getThis(), ZEND_STRL("value"), 0 TSRMLS_CC)); + if ((rs = php_http_negotiate(Z_STRVAL_P(zvalue), Z_STRLEN_P(zvalue), supported, sep_str, sep_len TSRMLS_CC))) { + PHP_HTTP_DO_NEGOTIATE_HANDLE_RESULT(rs, supported, rs_array); } else { - RETURN_FALSE; + PHP_HTTP_DO_NEGOTIATE_HANDLE_DEFAULT(supported, rs_array); } + zval_ptr_dtor(&zvalue); } ZEND_BEGIN_ARG_INFO_EX(ai_HttpHeader_getParams, 0, 0, 0) @@ -293,7 +292,7 @@ PHP_METHOD(HttpHeader, getParams) ZEND_BEGIN_ARG_INFO_EX(ai_HttpHeader_parse, 0, 0, 1) ZEND_ARG_INFO(0, string) - ZEND_ARG_INFO(0, flags) + ZEND_ARG_INFO(0, header_class) ZEND_END_ARG_INFO(); PHP_METHOD(HttpHeader, parse) {