| modification, are permitted provided that the conditions mentioned |
| in the accompanying LICENSE file are met. |
+--------------------------------------------------------------------+
- | Copyright (c) 2004-2005, Michael Wallner <mike@php.net> |
+ | Copyright (c) 2004-2006, Michael Wallner <mike@php.net> |
+--------------------------------------------------------------------+
*/
#include "SAPI.h"
#include "php_output.h"
#include "ext/standard/url.h"
-#include "ext/standard/head.h"
#include "php_http_api.h"
#include "php_http_send_api.h"
# include "php_http_exception_object.h"
#endif
-ZEND_EXTERN_MODULE_GLOBALS(http);
-
PHP_MINIT_FUNCTION(http_support)
{
HTTP_LONG_CONSTANT("HTTP_SUPPORT", HTTP_SUPPORT);
#ifdef HTTP_HAVE_MAGIC
support |= HTTP_SUPPORT_MAGICMIME;
#endif
-#if defined(HTTP_HAVE_ZLIB) || defined(HAVE_ZLIB)
+#ifdef HTTP_HAVE_ZLIB
support |= HTTP_SUPPORT_ENCODINGS;
#endif
struct tm nowtm;
char datetime[128];
+ HTTP_CHECK_OPEN_BASEDIR(file, return);
+
time(&now);
strftime(datetime, sizeof(datetime), "%Y-%m-%d %H:%M:%S", php_localtime_r(&now, &nowtm));
}
php_end_ob_buffers(0 TSRMLS_CC);
- if (php_header(TSRMLS_C) && body) {
+ if ((SUCCESS == sapi_send_headers(TSRMLS_C)) && body) {
PHPWRITE(body, strlen(body));
}
*body = (char *) (dup ? estrndup(SG(request_info).raw_post_data, *length) : SG(request_info).raw_post_data);
return SUCCESS;
}
+
+ /* PHP only reads POST */
+ if (sapi_module.read_post) {
+ char buf[4096];
+ int len;
+
+ while (0 < (len = sapi_module.read_post(buf, sizeof(buf) TSRMLS_CC))) {
+ *body = erealloc(*body, *length + len + 1);
+ memcpy(*body + *length, buf, len);
+ *length += len;
+ (*body)[*length] = '\0';
+ }
+
+ /* check for error */
+ if (len >= 0) {
+ /* connect to sapi module so it'll be freed */
+ if (!dup) {
+ SG(request_info).raw_post_data = *body;
+ SG(request_info).raw_post_data_length = *length;
+ }
+ return SUCCESS;
+ } else {
+ STR_FREE(*body);
+ *length = 0;
+ }
+ }
+
return FAILURE;
}
/* }}} */