From 8f4c5b2c7ea83e5a65002f1cf133cfd4cd81e433 Mon Sep 17 00:00:00 2001
From: Dominik Pfennig <dominik@suma-ev.de>
Date: Fri, 9 Sep 2016 08:55:38 +0200
Subject: [PATCH] =?UTF-8?q?Bug=20behoben=20bei=20dem=20versucht=20wurde=20?=
 =?UTF-8?q?einen=20nicht=20vorhandenen=20Stream=20zu=20schlie=C3=9Fen.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/Jobs/Search.php | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/app/Jobs/Search.php b/app/Jobs/Search.php
index 18541f20d..af520e6e2 100644
--- a/app/Jobs/Search.php
+++ b/app/Jobs/Search.php
@@ -73,7 +73,6 @@ class Search extends Job implements ShouldQueue
             if (sizeof(($tmp = explode(": ", $data))) === 2) {
                 $headers[strtolower(trim($tmp[0]))] = trim($tmp[1]);
             }
-
             $c++;
         } while (true);
 
@@ -230,7 +229,7 @@ class Search extends Job implements ShouldQueue
             $timeElapsed = microtime(true) - $time;
             if ($timeElapsed > 0.5) {
                 # Irgendwas ist mit unserem Socket passiert. Wir brauchen einen neuen:
-                if ($this->fp) {
+                if ($this->fp && is_resource($this->fp)) {
                     fclose($this->fp);
                 }
 
@@ -244,10 +243,8 @@ class Search extends Job implements ShouldQueue
                 $tmp = fwrite($this->fp, $string);
             } catch (\ErrorException $e) {
                 # Irgendwas ist mit unserem Socket passiert. Wir brauchen einen neuen:
-                try {
+                if ($this->fp && is_resource($this->fp)) {
                     fclose($this->fp);
-                } catch (\ErrorException $e) {
-
                 }
 
                 Redis::del($this->name . "." . $this->socketNumber);
@@ -266,9 +263,11 @@ class Search extends Job implements ShouldQueue
             }
 
         }
+
         if ($sent === strlen($out)) {
             return true;
         }
+
         return false;
     }
 
@@ -283,6 +282,7 @@ class Search extends Job implements ShouldQueue
         # 1. Stelle fest, ob dieser Socket neu erstellt wurde, oder ob ein existierender geöffnet wurde.
         $counter = 0;
         $fp      = null;
+        $time    = microtime(true);
         do {
 
             if (intval(Redis::exists($this->host . ".$counter")) === 0) {
@@ -300,7 +300,10 @@ class Search extends Job implements ShouldQueue
                 stream_set_blocking($fp, 0);
                 $string = fgets($fp, 8192);
                 if ($string !== false || feof($fp)) {
-                    fclose($fp);
+                    if ($this->fp && is_resource($this->fp)) {
+                        fclose($fp);
+                    }
+
                     continue;
                 }
                 break;
-- 
GitLab