Răsfoiți Sursa

when listen not set, status listening col is none

walkor 11 ani în urmă
părinte
comite
cd4a89a2d8
2 a modificat fișierele cu 11 adăugiri și 4 ștergeri
  1. 1 1
      workerman/Common/Monitor.php
  2. 10 3
      workerman/Core/SocketWorker.php

+ 1 - 1
workerman/Common/Monitor.php

@@ -371,7 +371,7 @@ class Monitor extends Man\Core\SocketWorker
             $address = \Man\Core\Lib\Config::get($worker_name . '.listen');
             if(!$address)
             {
-                $address = '';
+                $address = 'none';
             }
             $str = "$pid\t".str_pad(round($message['memory']/(1024*1024),2)."M", 7)." " .str_pad($address,$this->maxAddressLength) ." ". $message['start_time'] ." ".str_pad($worker_name, $this->maxWorkerNameLength)." ";
             if($message)

+ 10 - 3
workerman/Core/SocketWorker.php

@@ -261,8 +261,11 @@ abstract class SocketWorker extends AbstractWorker
         if($this->workerStatus != self::STATUS_SHUTDOWN)
         {
             // 停止接收连接
-            $this->event->del($this->mainSocket, Events\BaseEvent::EV_READ);
-            fclose($this->mainSocket);
+            if($this->mainSocket)
+            {
+                $this->event->del($this->mainSocket, Events\BaseEvent::EV_READ);
+                fclose($this->mainSocket);
+            }
             $this->workerStatus = self::STATUS_SHUTDOWN;
         }
         
@@ -714,9 +717,13 @@ abstract class SocketWorker extends AbstractWorker
      */
     public function getLocalIp()
     {
+        if(!$this->mainSocket && !isset($this->connections[$this->currentDealFd]))
+        {
+            return '';
+        }
         $ip = '';
         $sock_name = '';
-        if($this->protocol == 'udp' || !isset($this->connections[$this->currentDealFd]))
+        if($this->protocol === 'udp' || !isset($this->connections[$this->currentDealFd]))
         {
             $sock_name = stream_socket_get_name($this->mainSocket, false);
         }