#48584 [Opn]: soapclient's option connection_timeout not respected while fetching wsdl

From: Date: Wed, 24 Jun 2009 07:55:02 +0000
Subject: #48584 [Opn]: soapclient's option connection_timeout not respected while fetching wsdl
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-138752@lists.php.net to get a copy of this message
 ID:               48584
 User updated by:  giunta dot gaetano at gmail dot com
 Reported By:      giunta dot gaetano at gmail dot com
 Status:           Open
 Bug Type:         SOAP related
 Operating System: winxp
 PHP Version:      5.2.9
 New Comment:

Thanks for your comment, that's exactly what I did for my needs.
Still I find it quite cumbersome (and counterintuitive).
Here's a better syntax btw, especially when creating a library and not
just a one-page app
<?php
...
// Wait one second for connection when retrieving WSDL:
$deftimeout = ini_get( 'default_socket_timeout' );
ini_set('default_socket_timeout', 1);
try {
  $c = new SoapClient('http://123.123.123.123/bla.wsdl');
  ini_set( 'default_socket_timeout', $deftimeout );
  ...
} catch (exception $e) {
  ini_set( 'default_socket_timeout', $deftimeout );
  ...
}

?>


Previous Comments:
------------------------------------------------------------------------

[2009-06-23 19:20:45] sjoerd-php at linuxonly dot nl

Thank you for your bug report.

The connection_timeout option defines a timeout in seconds for the
connection to the SOAP service. This option does not define a timeout
for services with slow responses. To limit the time to wait for calls to
finish the default_socket_timeout setting is available.

<?php
// Wait one second for connection when retrieving WSDL:
ini_set('default_socket_timeout', 1);
new SoapClient('http://123.123.123.123/bla.wsdl');
?>

------------------------------------------------------------------------

[2009-06-17 14:18:14] giunta dot gaetano at gmail dot com

Description:
------------
The socket timeout option for soap clients is only respected when
executing calls, but not when fetching the wsdl itself.
This makes it quite hard to use remote wsdl files and provide to the
end user an interface with a definite timeout (eg. 5 secs).
Current code does not seem to use the timeout value in c function
get_sdl in php_sdl.c

Reproduce code:
---------------
create a soap client pointing to a wsdl on an inexisting server
set connection_timeout option to 5 in client constructor


Expected result:
----------------
error msg after 5 secs

Actual result:
--------------
error msg after 1 min


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=48584&edit=1



Thread (5 messages)

« previous php.bugs (#138752) next »