From 24260e890831a9ddc5e5262c51e40e3b56e4484c Mon Sep 17 00:00:00 2001 From: James Date: Thu, 22 Mar 2012 16:21:23 -0400 Subject: [PATCH] CC-3408: Live Stream: Check if the selected port is available to use - done --- .../forms/LiveStreamingPreferences.php | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/airtime_mvc/application/forms/LiveStreamingPreferences.php b/airtime_mvc/application/forms/LiveStreamingPreferences.php index d810fe587..75701ed86 100644 --- a/airtime_mvc/application/forms/LiveStreamingPreferences.php +++ b/airtime_mvc/application/forms/LiveStreamingPreferences.php @@ -120,4 +120,38 @@ class Application_Form_LiveStreamingPreferences extends Zend_Form_SubForm array('ViewScript', array('viewScript' => 'form/preferences_livestream.phtml', 'master_dj_connection_url'=>$master_dj_connection_url, 'live_dj_connection_url'=>$live_dj_connection_url,)) )); } + + public function isValid($data){ + $isValid = parent::isValid($data); + + $master_harbor_input_port = $data['master_harbor_input_port']; + $dj_harbor_input_port = $data['dj_harbor_input_port']; + + if($master_harbor_input_port == $dj_harbor_input_port){ + $element = $this->getElement("dj_harbor_input_port"); + $element->addError("You cannot use same port as Master DJ port."); + } + if($master_harbor_input_port != ""){ + $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); + $res = socket_bind($sock, 0, $master_harbor_input_port); + if(!$res){ + $element = $this->getElement("master_harbor_input_port"); + $element->addError("Port '$master_harbor_input_port' is not available."); + $isValid = false; + } + socket_close($sock); + } + if($dj_harbor_input_port != ""){ + $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); + $res = socket_bind($sock, 0, $dj_harbor_input_port); + if(!$res){ + $element = $this->getElement("dj_harbor_input_port"); + $element->addError("Port '$dj_harbor_input_port' is not available."); + $isValid = false; + } + socket_close($sock); + } + return $isValid; + } + } \ No newline at end of file