- fix php4 build
[m6w6/ext-http] / http_functions.c
index 9bde4fb2792ceca13dd96a6eb9fe922ae38d0e1a..469dd946d6227d886625c455220796982d3fa24a 100644 (file)
@@ -1,16 +1,13 @@
 /*
-   +----------------------------------------------------------------------+
-   | PECL :: http                                                         |
-   +----------------------------------------------------------------------+
-   | This source file is subject to version 3.0 of the PHP license, that  |
-   | is bundled with this package in the file LICENSE, and is available   |
-   | through the world-wide-web at http://www.php.net/license/3_0.txt.    |
-   | If you did not receive a copy of the PHP license and are unable to   |
-   | obtain it through the world-wide-web, please send a note to          |
-   | license@php.net so we can mail you a copy immediately.               |
-   +----------------------------------------------------------------------+
-   | Copyright (c) 2004-2005 Michael Wallner <mike@php.net>               |
-   +----------------------------------------------------------------------+
+    +--------------------------------------------------------------------+
+    | PECL :: http                                                       |
+    +--------------------------------------------------------------------+
+    | Redistribution and use in source and binary forms, with or without |
+    | modification, are permitted provided that the conditions mentioned |
+    | in the accompanying LICENSE file are met.                          |
+    +--------------------------------------------------------------------+
+    | Copyright (c) 2004-2005, Michael Wallner <mike@php.net>            |
+    +--------------------------------------------------------------------+
 */
 
 /* $Id$ */
@@ -513,7 +510,7 @@ PHP_FUNCTION(ob_etaghandler)
 }
 /* }}} */
 
-/* {{{ proto void http_throttle(double sec[, int bytes = 2097152])
+/* {{{ proto void http_throttle(double sec[, int bytes = 40960])
  *
  * Sets the throttle delay and send buffer size for use with http_send() API.
  * Provides a basic throttling mechanism, which will yield the current process
@@ -956,7 +953,7 @@ PHP_FUNCTION(http_match_request_header)
  *  - compress:         bool, whether to allow gzip/deflate content encoding
  *                      (defaults to true)
  *  - port:             int, use another port as specified in the url
- *  - referer:          string, the referer to sends
+ *  - referer:          string, the referer to send
  *  - useragent:        string, the user agent to send
  *                      (defaults to PECL::HTTP/version (PHP/version)))
  *  - headers:          array, list of custom headers as associative array
@@ -1262,7 +1259,7 @@ PHP_FUNCTION(http_request_method_register)
 {
        char *method;
        int method_len;
-       unsigned long existing;
+       ulong existing;
 
        if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &method, &method_len)) {
                RETURN_FALSE;
@@ -1299,7 +1296,7 @@ PHP_FUNCTION(http_request_method_unregister)
                        if (is_numeric_string(Z_STRVAL_P(method), Z_STRLEN_P(method), NULL, NULL, 1)) {
                                convert_to_long(method);
                        } else {
-                               unsigned long mn;
+                               ulong mn;
                                if (!(mn = http_request_method_exists(1, 0, Z_STRVAL_P(method)))) {
                                        RETURN_FALSE;
                                }
@@ -1367,7 +1364,7 @@ PHP_FUNCTION(http_request_method_name)
                        RETURN_FALSE;
                }
 
-               RETURN_STRING(estrdup(http_request_method_name((unsigned long) method)), 0);
+               RETURN_STRING(estrdup(http_request_method_name((ulong) method)), 0);
        }
 }
 /* }}} */
@@ -1384,21 +1381,17 @@ PHP_FUNCTION(http_build_query)
        int prefix_len = 0, arg_sep_len = strlen(arg_sep);
        phpstr *formstr;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|ss", &formdata, &prefix, &prefix_len, &arg_sep, &arg_sep_len) != SUCCESS) {
-               RETURN_FALSE;
-       }
-
-       if (Z_TYPE_P(formdata) != IS_ARRAY && Z_TYPE_P(formdata) != IS_OBJECT) {
-               http_error(HE_WARNING, HTTP_E_INVALID_PARAM, "Parameter 1 expected to be Array or Object.  Incorrect value given.");
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|ss", &formdata, &prefix, &prefix_len, &arg_sep, &arg_sep_len) != SUCCESS) {
                RETURN_FALSE;
        }
 
        if (!arg_sep_len) {
                arg_sep = HTTP_URL_ARGSEP;
+               arg_sep_len = lenof(HTTP_URL_ARGSEP);
        }
 
        formstr = phpstr_new();
-       if (SUCCESS != http_urlencode_hash_implementation_ex(HASH_OF(formdata), formstr, arg_sep, prefix, prefix_len, NULL, 0, NULL, 0, (Z_TYPE_P(formdata) == IS_OBJECT ? formdata : NULL))) {
+       if (SUCCESS != http_urlencode_hash_recursive(HASH_OF(formdata), formstr, arg_sep, arg_sep_len, prefix, prefix_len)) {
                phpstr_free(&formstr);
                RETURN_FALSE;
        }
@@ -1602,20 +1595,22 @@ PHP_FUNCTION(http_uncompress)
  * 
  * Accpepts an optional in parameter specifying which feature to probe for.
  * If the parameter is 0 or omitted, the return value contains a bitmask of 
- * all supported featuers that depend on external libraries.
+ * all supported features that depend on external libraries.
  * 
  * Available features to probe for are:
- *  - HTTP_SUPPORT: always set
- *  - HTTP_SUPPORT_REQUESTS: whether ext/http was linked against libcurl,
- *    and HTTP requests can be issued
- *  - HTTP_SUPPORT_SSLREQUESTS: whether libcurl was linked against openssl,
- *    and SSL requests can be issued 
- *  - HTTP_SUPPORT_ENCODINGS: whether ext/http was linked against zlib,
- *    and compressed HTTP responses can be decoded
- *  - HTTP_SUPPORT_MHASHETAGS: whether ext/http was linked against libmhash,
- *    and ETags can be generated with the available mhash algorithms
- *  - HTTP_SUPPORT_MAGICMIME: whether ext/http was linked against libmagic,
- *    and the HttpResponse::guessContentType() method is usable
+ * <ul> 
+ *  <li> HTTP_SUPPORT: always set
+ *  <li> HTTP_SUPPORT_REQUESTS: whether ext/http was linked against libcurl,
+ *       and HTTP requests can be issued
+ *  <li> HTTP_SUPPORT_SSLREQUESTS: whether libcurl was linked against openssl,
+ *       and SSL requests can be issued 
+ *  <li> HTTP_SUPPORT_ENCODINGS: whether ext/http was linked against zlib,
+ *       and compressed HTTP responses can be decoded
+ *  <li> HTTP_SUPPORT_MHASHETAGS: whether ext/http was linked against libmhash,
+ *       and ETags can be generated with the available mhash algorithms
+ *  <li> HTTP_SUPPORT_MAGICMIME: whether ext/http was linked against libmagic,
+ *       and the HttpResponse::guessContentType() method is usable
+ * </ul>
  * 
  * Returns int, whether requested feature is supported, or a bitmask with
  * all supported features.