- move http_parse_cookie() code to an odd http_parse_key_list() function
[m6w6/ext-http] / http_functions.c
index 4e88f42a202729f8d949c848c171b63db7186275..9f76881a8359beadf1224df9c4c0ab034f58e5a6 100644 (file)
@@ -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);
 }
 /* }}} */
 
@@ -1090,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;
        }
 
@@ -1143,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;
        }
        {
@@ -1167,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);