This is an automated email from the ASF dual-hosted git repository.

jensg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/thrift.git


The following commit(s) were added to refs/heads/master by this push:
     new 0481fcdf9 THRIFT-1482 Allow unix domain sockets in TSocket Client: php 
Patch: Balázs Dura-Kovács
0481fcdf9 is described below

commit 0481fcdf93a5bac9a28355429672885fd105c10e
Author: Balázs Dura-Kovács <[email protected]>
AuthorDate: Sun Mar 9 23:57:56 2025 +0100

    THRIFT-1482 Allow unix domain sockets in TSocket
    Client: php
    Patch: Balázs Dura-Kovács
    
    This closes #3109
---
 lib/php/lib/Transport/TSocket.php               |  2 +-
 lib/php/test/Unit/Lib/Transport/TSocketTest.php | 27 +++++++++++++++++++++++++
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/lib/php/lib/Transport/TSocket.php 
b/lib/php/lib/Transport/TSocket.php
index fb74fdbf6..c220a8b06 100644
--- a/lib/php/lib/Transport/TSocket.php
+++ b/lib/php/lib/Transport/TSocket.php
@@ -218,7 +218,7 @@ class TSocket extends TTransport
             throw new TTransportException('Cannot open null host', 
TTransportException::NOT_OPEN);
         }
 
-        if ($this->port_ <= 0) {
+        if ($this->port_ <= 0 && strpos($this->host_, 'unix://') !== 0) {
             throw new TTransportException('Cannot open without port', 
TTransportException::NOT_OPEN);
         }
 
diff --git a/lib/php/test/Unit/Lib/Transport/TSocketTest.php 
b/lib/php/test/Unit/Lib/Transport/TSocketTest.php
index 6bab297ea..3a6a5ebfa 100644
--- a/lib/php/test/Unit/Lib/Transport/TSocketTest.php
+++ b/lib/php/test/Unit/Lib/Transport/TSocketTest.php
@@ -246,6 +246,33 @@ class TSocketTest extends TestCase
         $this->assertTrue($transport->isOpen());
     }
 
+    public function testOpenUnixSocket()
+    {
+        $host = 'unix:///tmp/ipc.sock';
+        $port = -1;
+        $persist = false;
+        $debugHandler = null;
+
+        $this->getFunctionMock('Thrift\Transport', 'fsockopen')
+             ->expects($this->once())
+             ->with(
+                 $host,
+                 $port,
+                 $this->anything(), #$errno,
+                 $this->anything(), #$errstr,
+                 $this->anything() #$this->sendTimeoutSec_ + 
($this->sendTimeoutUsec_ / 1000000),
+             );
+
+        $transport = new TSocket(
+            $host,
+            $port,
+            $persist,
+            $debugHandler
+        );
+
+        $transport->open();
+    }
+
     /**
      * @dataProvider open_THRIFT_5132_DataProvider
      */

Reply via email to