X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_functions.c;h=01df1a16231170a01f5b3083c67df62c60832e8a;hp=4b611e037d964ee7122aaa970de514073b5418c9;hb=dac9fc69ba6208b3a150ad447c0ede3b786a83c5;hpb=781c90c0447166dd52ef881ae15751fa466c32fb diff --git a/http_functions.c b/http_functions.c index 4b611e0..01df1a1 100644 --- a/http_functions.c +++ b/http_functions.c @@ -416,7 +416,7 @@ PHP_FUNCTION(ob_etaghandler) * Use with http_send() API. * * Example: - * + *
  * 
- * 
+ * 
*/ PHP_FUNCTION(http_throttle) { @@ -618,7 +618,7 @@ PHP_FUNCTION(http_split_response) MAKE_STD_ZVAL(zheaders); array_init(zheaders); - if (SUCCESS != http_split_response(zresponse, zheaders, zbody)) { + if (SUCCESS != http_split_response(Z_STRVAL_P(zresponse), Z_STRLEN_P(zresponse), Z_ARRVAL_P(zheaders), &Z_STRVAL_P(zbody), &Z_STRLEN_P(zbody))) { http_error(E_WARNING, HTTP_E_PARSE, "Could not parse HTTP response"); RETURN_FALSE; } @@ -652,6 +652,7 @@ PHP_FUNCTION(http_parse_headers) /* {{{ proto array http_get_request_headers(void) * + * Get a list of incoming HTTP headers. */ PHP_FUNCTION(http_get_request_headers) { @@ -662,6 +663,24 @@ PHP_FUNCTION(http_get_request_headers) } /* }}} */ +/* {{{ proto bool http_match_request_header(string header, string value[, bool match_case = false]) + * + * Match an incoming HTTP header. + */ +PHP_FUNCTION(http_match_request_header) +{ + char *header, *value; + int header_len, value_len; + zend_bool match_case = 0, result = 0; + + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|b", &header, &header_len, &value, &value_len, &match_case)) { + RETURN_FALSE; + } + + RETURN_BOOL(http_match_request_header_ex(header, value, match_case)); +} +/* }}} */ + /* {{{ HAVE_CURL */ #ifdef HTTP_HAVE_CURL @@ -825,7 +844,6 @@ PHP_FUNCTION(http_post_data) } else { RETVAL_FALSE; } - http_request_body_dtor(&body); } /* }}} */ @@ -868,6 +886,9 @@ PHP_FUNCTION(http_post_fields) /* {{{ proto string http_put_file(string url, string file[, array options[, array &info]]) * + * Performs an HTTP PUT request, uploading file. + * Returns the HTTP response as string. + * See http_get() for a full list of available options. */ PHP_FUNCTION(http_put_file) { @@ -912,6 +933,9 @@ PHP_FUNCTION(http_put_file) /* {{{ proto string http_put_stream(string url, resource stream[, array options[, array &info]]) * + * Performs an HTTP PUT request, uploading stream. + * Returns the HTTP response as string. + * See http_get() for a full list of available options. */ PHP_FUNCTION(http_put_stream) { @@ -950,12 +974,9 @@ PHP_FUNCTION(http_put_stream) } /* }}} */ -/* {{{ proto bool http_request() - */ -/* }}} */ - /* {{{ proto long http_request_method_register(string method) * + * Register a custom request method. */ PHP_FUNCTION(http_request_method_register) { @@ -976,12 +997,11 @@ PHP_FUNCTION(http_request_method_register) /* {{{ proto bool http_request_method_unregister(mixed method) * + * Unregister a previously registered custom request method. */ PHP_FUNCTION(http_request_method_unregister) { zval *method; - zend_bool numeric; - unsigned long existing; if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z/", &method)) { RETURN_FALSE; @@ -1013,6 +1033,7 @@ PHP_FUNCTION(http_request_method_unregister) /* {{{ proto long http_request_method_exists(mixed method) * + * Check if a request method is registered (or available by default). */ PHP_FUNCTION(http_request_method_exists) { @@ -1044,6 +1065,7 @@ PHP_FUNCTION(http_request_method_exists) /* {{{ proto string http_request_method_name(long method) * + * Get the literal string representation of a standard or registered request method. */ PHP_FUNCTION(http_request_method_name) { @@ -1086,18 +1108,18 @@ PHP_FUNCTION(http_auth_basic) realm = "Restricted"; } - if (SUCCESS != http_auth_credentials(&suser, &spass)) { - http_auth_header("Basic", realm); + if (SUCCESS != http_auth_basic_credentials(&suser, &spass)) { + http_auth_basic_header(realm); RETURN_FALSE; } if (strcasecmp(suser, user)) { - http_auth_header("Basic", realm); + http_auth_basic_header(realm); RETURN_FALSE; } if (strcmp(spass, pass)) { - http_auth_header("Basic", realm); + http_auth_basic_header(realm); RETURN_FALSE; } @@ -1139,8 +1161,8 @@ PHP_FUNCTION(http_auth_basic_cb) realm = "Restricted"; } - if (SUCCESS != http_auth_credentials(&user, &pass)) { - http_auth_header("Basic", realm); + if (SUCCESS != http_auth_basic_credentials(&user, &pass)) { + http_auth_basic_header(realm); RETURN_FALSE; } { @@ -1163,7 +1185,7 @@ PHP_FUNCTION(http_auth_basic_cb) efree(zparams[1]); if (!result) { - http_auth_header("Basic", realm); + http_auth_basic_header(realm); } RETURN_BOOL(result);