417e6936e1
- add upstream patch for PHP 5.6 (fix #1111478)
86 lines
3.4 KiB
Diff
86 lines
3.4 KiB
Diff
From fc99472b8b2fc837148f71755f23349a71e307bf Mon Sep 17 00:00:00 2001
|
|
From: Bas Couwenberg <sebastic@xs4all.nl>
|
|
Date: Sat, 26 Apr 2014 13:46:41 +0200
|
|
Subject: [PATCH] Use php://input instead of raw_post_data to support PHP 5.6.
|
|
|
|
php_stream handling largely taken from PECL HTTP:
|
|
|
|
http://git.php.net/?p=pecl/http/pecl_http.git;a=blob;f=php_http_env.c;h=30ee32d7c68b3341aeaeb24c909b102537caccdf;hb=8ec2c825719482e62222163a300b0e18319591d0#l229
|
|
|
|
Copyright (c) 2004-2014, Michael Wallner <mike@iworks.at>.
|
|
All rights reserved.
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
modification, are permitted provided that the following conditions are met:
|
|
|
|
* Redistributions of source code must retain the above copyright notice,
|
|
this list of conditions and the following disclaimer.
|
|
* Redistributions in binary form must reproduce the above copyright
|
|
notice, this list of conditions and the following disclaimer in the
|
|
documentation and/or other materials provided with the distribution.
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
Bug-Debian: https://bugs.debian.org/745600
|
|
---
|
|
.travis.yml | 1 +
|
|
mapscript/php/owsrequest.c | 23 +++++++++++++++++++++++
|
|
2 files changed, 24 insertions(+)
|
|
|
|
diff --git a/mapscript/php/owsrequest.c b/mapscript/php/owsrequest.c
|
|
index 428c8dd..f01d361 100644
|
|
--- a/mapscript/php/owsrequest.c
|
|
+++ b/mapscript/php/owsrequest.c
|
|
@@ -32,6 +32,9 @@
|
|
#include "php_mapscript.h"
|
|
#include "SAPI.h"
|
|
#include "php_variables.h"
|
|
+#if PHP_VERSION_ID >= 50600
|
|
+#include "php_streams.h"
|
|
+#endif
|
|
|
|
char *owsrequest_getenv(const char *name, void *thread_context);
|
|
|
|
@@ -193,9 +196,29 @@ PHP_METHOD(OWSRequestObj, loadParams)
|
|
cgirequestObj_loadParams(php_owsrequest->cgirequest, owsrequest_getenv, NULL, 0, thread_context);
|
|
}
|
|
} else {
|
|
+#if PHP_VERSION_ID >= 50600
|
|
+ php_stream *s = php_stream_temp_new();
|
|
+ php_stream *input = php_stream_open_wrapper("php://input", "r", 0, NULL);
|
|
+
|
|
+ /* php://input does not support stat */
|
|
+ php_stream_copy_to_stream_ex(input, s, -1, NULL);
|
|
+ php_stream_close(input);
|
|
+
|
|
+ php_stream_rewind(s);
|
|
+
|
|
+ char *raw_post_data = NULL;
|
|
+ long raw_post_data_length = 0;
|
|
+
|
|
+ raw_post_data_length = php_stream_copy_to_mem(s, raw_post_data, -1, 0);
|
|
+
|
|
+ cgirequestObj_loadParams(php_owsrequest->cgirequest, owsrequest_getenv,
|
|
+ raw_post_data,
|
|
+ raw_post_data_length, thread_context);
|
|
+#else
|
|
cgirequestObj_loadParams(php_owsrequest->cgirequest, owsrequest_getenv,
|
|
SG(request_info).raw_post_data,
|
|
SG(request_info).raw_post_data_length, thread_context);
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
--
|
|
1.9.3
|
|
|