/* $Id$ */
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
-#include "php.h"
+
+#define HTTP_WANT_CURL
+#include "php_http.h"
#if defined(ZEND_ENGINE_2) && defined(HTTP_HAVE_CURL)
#include "zend_interfaces.h"
-#include "php_http_std_defs.h"
-#include "php_http_request_object.h"
-#include "php_http_request_api.h"
-#include "php_http_request_pool_api.h"
-#include "php_http.h"
#include "php_http_api.h"
-#include "php_http_url_api.h"
+#include "php_http_exception_object.h"
#include "php_http_message_api.h"
#include "php_http_message_object.h"
-#include "php_http_exception_object.h"
-
-#include "missing.h"
-
-#ifdef PHP_WIN32
-# include <winsock2.h>
-#endif
-#include <curl/curl.h>
+#include "php_http_request_api.h"
+#include "php_http_request_object.h"
+#include "php_http_request_pool_api.h"
+#include "php_http_url_api.h"
ZEND_EXTERN_MODULE_GLOBALS(http);
{
char *key = NULL;
ulong idx = 0;
+ HashPosition pos;
zval *opts = NULL, *old_opts, **opt;
getObject(http_request_object, obj);
}
/* some options need extra attention -- thus cannot use array_merge() directly */
- FOREACH_KEYVAL(opts, key, idx, opt) {
+ FOREACH_KEYVAL(pos, opts, key, idx, opt) {
if (key) {
if (!strcmp(key, "headers")) {
zval **headers;
ulong idx = 0;
char *key = NULL;
zval **header = NULL;
+ HashPosition pos1;
- convert_to_array_ex(headers);
- FOREACH_HASH_KEYVAL(Z_ARRVAL_PP(headers), key, idx, header) {
+ convert_to_array(*headers);
+ FOREACH_HASH_KEYVAL(pos1, Z_ARRVAL_PP(headers), key, idx, header) {
if (key && !strcasecmp(key, "Set-Cookie")) {
/* several cookies? */
if (Z_TYPE_PP(header) == IS_ARRAY) {
zval **cookie;
+ HashPosition pos2;
- FOREACH_HASH_VAL(Z_ARRVAL_PP(header), cookie) {
+ FOREACH_HASH_VAL(pos2, Z_ARRVAL_PP(header), cookie) {
zval *cookie_hash;
MAKE_STD_ZVAL(cookie_hash);
array_init(cookie_hash);
getObject(http_request_object, obj);
SET_EH_THROW_HTTP();
- if (msg = http_message_parse(PHPSTR_VAL(&obj->request), PHPSTR_LEN(&obj->request))) {
+ if ((msg = http_message_parse(PHPSTR_VAL(&obj->request), PHPSTR_LEN(&obj->request)))) {
ZVAL_OBJVAL(return_value, http_message_object_new_ex(http_message_object_ce, msg, NULL));
}
SET_EH_NORMAL();
getObject(http_request_object, obj);
SET_EH_THROW_HTTP();
- if (msg = http_message_parse(PHPSTR_VAL(&obj->history), PHPSTR_LEN(&obj->history))) {
+ if ((msg = http_message_parse(PHPSTR_VAL(&obj->history), PHPSTR_LEN(&obj->history)))) {
ZVAL_OBJVAL(return_value, http_message_object_new_ex(http_message_object_ce, msg, NULL));
}
SET_EH_NORMAL();
*
* Returns the received response as HttpMessage object.
*
+ * NOTE: While an exception may be thrown, the transfer could have succeeded
+ * at least partially, so you might want to check the return values of various
+ * HttpRequest::getResponse*() methods.
+ *
* Throws HttpRuntimeException, HttpRequestException,
* HttpMalformedHeaderException, HttpEncodingException.
*