@@ -48,6 +48,11 @@ class Client
48
48
*/
49
49
protected $ timeout = 0 ;
50
50
51
+ /**
52
+ * @var float
53
+ */
54
+ protected $ connectTimeout = 0 ;
55
+
51
56
/**
52
57
* @var bool
53
58
*/
@@ -98,7 +103,8 @@ class Client
98
103
* @param string $password
99
104
* @param bool $ssl
100
105
* @param bool $verifySSL
101
- * @param int $timeout
106
+ * @param float $timeout
107
+ * @param float $connectTimeout
102
108
*/
103
109
public function __construct (
104
110
$ host ,
@@ -107,13 +113,15 @@ public function __construct(
107
113
$ password = '' ,
108
114
$ ssl = false ,
109
115
$ verifySSL = false ,
110
- $ timeout = 0
116
+ $ timeout = 0 ,
117
+ $ connectTimeout = 0
111
118
) {
112
119
$ this ->host = (string ) $ host ;
113
120
$ this ->port = (int ) $ port ;
114
121
$ this ->username = (string ) $ username ;
115
122
$ this ->password = (string ) $ password ;
116
123
$ this ->timeout = (float ) $ timeout ;
124
+ $ this ->connectTimeout = (float ) $ connectTimeout ;
117
125
$ this ->verifySSL = (bool ) $ verifySSL ;
118
126
119
127
if ($ ssl ) {
@@ -252,13 +260,14 @@ public function listUsers()
252
260
* udp+influxdb://username:pass@localhost:4444/databasename
253
261
*
254
262
* @param string $dsn
255
- * @param int $timeout
263
+ * @param float $timeout
256
264
* @param bool $verifySSL
265
+ * @param float $connectTimeout
257
266
*
258
267
* @return Client|Database
259
268
* @throws ClientException
260
269
*/
261
- public static function fromDSN ($ dsn , $ timeout = 0 , $ verifySSL = false )
270
+ public static function fromDSN ($ dsn , $ timeout = 0 , $ verifySSL = false , $ connectTimeout = 0 )
262
271
{
263
272
$ connParams = parse_url ($ dsn );
264
273
$ schemeInfo = explode ('+ ' , $ connParams ['scheme ' ]);
@@ -285,7 +294,8 @@ public static function fromDSN($dsn, $timeout = 0, $verifySSL = false)
285
294
isset ($ connParams ['pass ' ]) ? $ connParams ['pass ' ] : '' ,
286
295
$ ssl ,
287
296
$ verifySSL ,
288
- $ timeout
297
+ $ timeout ,
298
+ $ connectTimeout
289
299
);
290
300
291
301
// set the UDP driver when the DSN specifies UDP
@@ -312,6 +322,14 @@ public function getTimeout()
312
322
return $ this ->timeout ;
313
323
}
314
324
325
+ /**
326
+ * @return float
327
+ */
328
+ public function getConnectTimeout ()
329
+ {
330
+ return $ this ->connectTimeout ;
331
+ }
332
+
315
333
/**
316
334
* @return bool
317
335
*/
@@ -341,6 +359,7 @@ public function getDriver()
341
359
$ this ->driver = new Guzzle (
342
360
new \GuzzleHttp \Client (
343
361
[
362
+ 'connect_timeout ' => $ this ->connectTimeout ,
344
363
'timeout ' => $ this ->timeout ,
345
364
'base_uri ' => $ this ->baseURI ,
346
365
'verify ' => $ this ->verifySSL
0 commit comments