Переглянути джерело

[php] use host name instead of ip in Socket.connect() (fixes #4581)

Alexander Kuzmenko 8 роки тому
батько
коміт
6a3cbf7ceb

+ 1 - 1
std/php/_std/sys/net/Socket.hx

@@ -66,7 +66,7 @@ class Socket {
 	public function connect(host : Host, port : Int) : Void {
 		var errs = null;
 		var errn = null;
-		var r = untyped __call__('stream_socket_client', protocol + '://' +host._ip + ':' + port, errn, errs);
+		var r = untyped __call__('stream_socket_client', protocol + '://' +host.host + ':' + port, errn, errs);
 		Socket.checkError(r, errn, errs);
 		__s = cast r;
 		assignHandler();

+ 1 - 1
std/php7/_std/sys/net/Socket.hx

@@ -66,7 +66,7 @@ class Socket {
 	public function connect(host : Host, port : Int) : Void {
 		var errs = null;
 		var errn = null;
-		var r = untyped __call__('stream_socket_client', protocol + '://' +host._ip + ':' + port, errn, errs);
+		var r = untyped __call__('stream_socket_client', protocol + '://' +host.host + ':' + port, errn, errs);
 		Socket.checkError(r, errn, errs);
 		__s = cast r;
 		assignHandler();

+ 11 - 0
tests/unit/src/unit/issues/Issue4581.hx

@@ -0,0 +1,11 @@
+package unit.issues;
+
+class Issue4581 extends unit.Test {
+    #if php
+	function test() {
+		var host = new sys.net.Host('google.com');
+        var socket = new php.net.SslSocket();
+        socket.connect(host, 443);
+	}
+    #end
+}