From e8619686aef903c82a3eb2acc327b70b2df2a098 Mon Sep 17 00:00:00 2001
From: Johannes Meyer <johannes.meyer@netways.de>
Date: Fri, 30 Jan 2015 13:01:40 +0100
Subject: [PATCH] Add the sockets module as optional requirement of the
 monitoring module

---
 .../library/Monitoring/MonitoringWizard.php   | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/modules/monitoring/library/Monitoring/MonitoringWizard.php b/modules/monitoring/library/Monitoring/MonitoringWizard.php
index d7a3671a4..43061e608 100644
--- a/modules/monitoring/library/Monitoring/MonitoringWizard.php
+++ b/modules/monitoring/library/Monitoring/MonitoringWizard.php
@@ -5,6 +5,7 @@
 namespace Icinga\Module\Monitoring;
 
 use Icinga\Application\Icinga;
+use Icinga\Application\Platform;
 use Icinga\Web\Form;
 use Icinga\Web\Wizard;
 use Icinga\Web\Request;
@@ -139,6 +140,22 @@ class MonitoringWizard extends Wizard implements SetupWizard
      */
     public function getRequirements()
     {
-        return new Requirements();
+        $requirements = new Requirements();
+
+        $requirements->addOptional(
+            'existing_php_mod_sockets',
+            mt('monitoring', 'PHP Module: Sockets'),
+            mt(
+                'monitoring',
+                'In case it\'s desired that a TCP connection is being used by Icinga Web 2 to'
+                . ' access a Livestatus interface, the Sockets module for PHP is required.'
+            ),
+            Platform::extensionLoaded('sockets'),
+            Platform::extensionLoaded('sockets') ? mt('monitoring', 'The PHP Module sockets is available.') : (
+                mt('monitoring', 'The PHP Module sockets is not available.')
+            )
+        );
+
+        return $requirements;
     }
 }