/* $Id$ */
-#define _WINSOCKAPI_
-#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
}
/* }}} */
-/* {{{ proto string http_absolute_uri(string url[, string proto])
+/* {{{ proto string http_absolute_uri(string url[, string proto[, string host[, int port]]])
*
* This function returns an absolute URI constructed from url.
* If the url is already abolute but a different proto was supplied,
*/
PHP_FUNCTION(http_absolute_uri)
{
- char *url = NULL, *proto = NULL;
- int url_len = 0, proto_len = 0;
+ char *url = NULL, *proto = NULL, *host = NULL;
+ int url_len = 0, proto_len = 0, host_len = 0;
+ long port = 0;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &url, &url_len, &proto, &proto_len) != SUCCESS) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|ssl", &url, &url_len, &proto, &proto_len, &host, &host_len, &port) != SUCCESS) {
RETURN_FALSE;
}
- RETURN_STRING(http_absolute_uri(url, proto), 0);
+ RETURN_STRING(http_absolute_uri_ex(url, url_len, proto, proto_len, host, host_len, port), 0);
}
/* }}} */
*/
PHP_FUNCTION(http_cache_etag)
{
- char *etag;
+ char *etag = NULL;
int etag_len = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &etag, &etag_len) != SUCCESS) {
}
}
- URI = http_absolute_uri(url, NULL);
+ URI = http_absolute_uri(url);
+
if (query_len) {
snprintf(LOC, HTTP_URI_MAXLEN + sizeof("Location: "), "Location: %s?%s", URI, query);
sprintf(RED, "Redirecting to <a href=\"%s?%s\">%s?%s</a>.\n", URI, query, URI, query);
RETURN_FALSE;
}
- convert_to_string_ex(&zresponse);
+ convert_to_string(zresponse);
MAKE_STD_ZVAL(zbody);
MAKE_STD_ZVAL(zheaders);
header_len = rnrn - header + 2;
}
if (SUCCESS != http_parse_headers(header, header_len, return_value)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not parse HTTP header");
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not parse HTTP headers");
zval_dtor(return_value);
RETURN_FALSE;
}