Commit d7f3de05 authored by Bas Couwenberg's avatar Bas Couwenberg

Drop PHP 7.2 patch, included upstream.

parent 9aa40ab5
......@@ -4,6 +4,7 @@ icingaweb2 (2.6.0-1) UNRELEASED; urgency=medium
* New upstream release.
* Sort files section in copyrigh file, add public ifont.
* Bump Standards-Version to 4.1.5, no changes.
* Drop PHP 7.2 patch, included upstream.
-- Bas Couwenberg <sebastic@debian.org> Sat, 21 Jul 2018 09:06:37 +0200
......
Description: Don't call session_start() after ini_set()
Author: "Alexander A. Klimov" <alexander.klimov@icinga.com>
Origin: https://github.com/Icinga/icingaweb2/pull/3315/commits/dadd2c80f6819111f25e3799c072ec39c991897e
Bug: https://github.com/Icinga/icingaweb2/issues/3185
--- a/library/Icinga/Web/Session.php
+++ b/library/Icinga/Web/Session.php
@@ -29,7 +29,7 @@ class Session
public static function create(BaseSession $session = null)
{
if ($session === null) {
- self::$session = new PhpSession();
+ self::$session = PhpSession::create();
} else {
self::$session = $session;
}
--- /dev/null
+++ b/library/Icinga/Web/Session/Php72Session.php
@@ -0,0 +1,37 @@
+<?php
+/* Icinga Web 2 | (c) 2017 Icinga Development Team | GPLv2+ */
+
+namespace Icinga\Web\Session;
+
+use Icinga\Application\Logger;
+use Icinga\Exception\ConfigurationError;
+use Icinga\Web\Cookie;
+
+/**
+ * Session implementation in PHP
+ */
+class Php72Session extends PhpSession
+{
+ /**
+ * Open a PHP session
+ */
+ protected function open()
+ {
+ session_name($this->sessionName);
+
+ $cookie = new Cookie('bogus');
+ session_set_cookie_params(
+ 0,
+ $cookie->getPath(),
+ $cookie->getDomain(),
+ $cookie->isSecure(),
+ true
+ );
+
+ session_start(array(
+ 'use_cookies' => true,
+ 'use_only_cookies' => true,
+ 'use_trans_sid' => false
+ ));
+ }
+}
--- a/library/Icinga/Web/Session/PhpSession.php
+++ b/library/Icinga/Web/Session/PhpSession.php
@@ -38,6 +38,21 @@ class PhpSession extends Session
*
* @param array $options An optional array of ini options to set
*
+ * @return static
+ *
+ * @throws ConfigurationError
+ * @see http://php.net/manual/en/session.configuration.php
+ */
+ public static function create(array $options = null)
+ {
+ return version_compare(PHP_VERSION, '7.2.0') < 0 ? new self($options) : new Php72Session($options);
+ }
+
+ /**
+ * Create a new PHPSession object using the provided options (if any)
+ *
+ * @param array $options An optional array of ini options to set
+ *
* @throws ConfigurationError
* @see http://php.net/manual/en/session.configuration.php
*/
--- a/test/php/library/Icinga/Web/Session/PhpSessionTest.php
+++ b/test/php/library/Icinga/Web/Session/PhpSessionTest.php
@@ -13,7 +13,7 @@ class PhpSessionTest extends BaseTestCas
if (!is_writable('/tmp')) {
$this->markTestSkipped('Could not write to session directory');
}
- return new PhpSession(
+ return PhpSession::create(
array(
'use_cookies' => false,
'save_path' => '/tmp',
0001-Don-t-call-session_start-after-ini_set.patch
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment