From a727f2bb1ecb632fa797ea6bb58ab5e834ba2b09 Mon Sep 17 00:00:00 2001
From: denise <denise@denise-DX4860sourcefabric.org>
Date: Mon, 12 Nov 2012 14:28:50 -0500
Subject: [PATCH] CC-4638: Stream Settings -> Apache error when setting master
 source port to same port Airtime is running on

-fixed
---
 .../application/forms/LiveStreamingPreferences.php    | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/airtime_mvc/application/forms/LiveStreamingPreferences.php b/airtime_mvc/application/forms/LiveStreamingPreferences.php
index c5b9d9aca..5a5c6fa49 100644
--- a/airtime_mvc/application/forms/LiveStreamingPreferences.php
+++ b/airtime_mvc/application/forms/LiveStreamingPreferences.php
@@ -150,13 +150,15 @@ class Application_Form_LiveStreamingPreferences extends Zend_Form_SubForm
             if ($master_harbor_input_port == $dj_harbor_input_port && $master_harbor_input_port != "") {
                 $element = $this->getElement("dj_harbor_input_port");
                 $element->addError("You cannot use same port as Master DJ port.");
+                $isValid = false;
             }
             if ($master_harbor_input_port != "") {
                 if (is_numeric($master_harbor_input_port)) {
                     if ($master_harbor_input_port != Application_Model_StreamSetting::getMasterLiveStreamPort()) {
                         $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
-                        $res = socket_bind($sock, 0, $master_harbor_input_port);
-                        if (!$res) {
+                        try {
+                            socket_bind($sock, 0, $master_harbor_input_port);
+                        } catch (Exception $e) {
                             $element = $this->getElement("master_harbor_input_port");
                             $element->addError("Port '$master_harbor_input_port' is not available.");
                             $isValid = false;
@@ -171,8 +173,9 @@ class Application_Form_LiveStreamingPreferences extends Zend_Form_SubForm
                 if (is_numeric($dj_harbor_input_port)) {
                     if ($dj_harbor_input_port != Application_Model_StreamSetting::getDjLiveStreamPort()) {
                         $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
-                        $res = socket_bind($sock, 0, $dj_harbor_input_port);
-                        if (!$res) {
+                        try {
+                            socket_bind($sock, 0, $dj_harbor_input_port);
+                        } catch (Exception $e) {
                             $element = $this->getElement("dj_harbor_input_port");
                             $element->addError("Port '$dj_harbor_input_port' is not available.");
                             $isValid = false;