old_opts = GET_PROP(obj, options);
- /* headers and cookies need extra attention -- thus cannot use array_merge() directly */
+ /* some options need extra attention -- thus cannot use array_merge() directly */
FOREACH_KEYVAL(opts, key, idx, opt) {
if (key) {
if (!strcmp(key, "headers")) {
if (SUCCESS == zend_hash_find(Z_ARRVAL_P(old_opts), "cookies", sizeof("cookies"), (void **) &cookies)) {
array_merge(*opt, *cookies);
}
+ } else if ((!strcasecmp(key, "url")) || (!strcasecmp(key, "uri"))) {
+ if (Z_TYPE_PP(opt) != IS_STRING) {
+ convert_to_string_ex(opt);
+ }
+ UPD_PROP(obj, string, url, Z_STRVAL_PP(opt));
+ } else if (!strcmp(key, "method")) {
+ if (Z_TYPE_PP(opt) != IS_LONG) {
+ convert_to_long_ex(opt);
+ }
+ UPD_PROP(obj, long, method, Z_LVAL_PP(opt));
} else {
if (!strcmp(key, "ondebug")) {
SET_PROP(obj, dbg_user_cb, *opt);
php_url *purl = NULL, furl;
size_t full_len = 0;
zval *zhost = NULL;
- char *scheme = NULL, *uri, *URL = ecalloc(1, HTTP_URI_MAXLEN + 1);
+ char *scheme = NULL, *uri, *URL;
if ((!url || !url_len) && (
(!(url = SG(request_info).request_uri)) ||
return NULL;
}
+ URL = ecalloc(1, HTTP_URI_MAXLEN + 1);
uri = estrndup(url, url_len);
if (!(purl = php_url_parse(uri))) {
http_error_ex(E_WARNING, HTTP_E_PARSE, "Could not parse supplied URL: %s", url);