Re: handle file_get_contents timeout including dns lookup time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 14, 2012 at 1:28 PM, nik600 <nik600@xxxxxxxxx> wrote:
> Dear all
>
> i'm trying to handle a max timeout into a file_get_contents request,
> this is my code:
>
> ******* client.php ******* placed on http://test.foo.com/client.php
> <?php
> ini_set('default_socket_timeout',10);
> $ctx = stream_context_create(array('http' => array('timeout' => 10)));
> $data = file_get_contents("http://www.foo.com/server.php",0,$ctx);
> if(!data){
> die("error during page request");
> }else{
> echo "OK";
> echo $data;
> }
> ?>
>
> ******* server.php ******* placed on www.foo.com at
> http://www.foo.com/server.php
> <?php
> sleep(15);
> echo "OK";
> ?>
>
> i've noticed that in a standard scenario if i call
> http://test.foo.com/client.php all works properly and the timeout is
> handled correctly.
>
> But, if i'm experiencing dns lookup problems, the timeout setting is
> ignored by file_get_contents, or more probably the socket isn't yet
> estabilished so the counter for timeout doesn't start.
>
> I've been able to reproduce this problem on a linux server dropping
> incoming packets of DNS with this command: (be careful, it will
> disable you ability to resolve all dns address!):
>
>    * iptables -A INPUT -p udp --sport 53 -j DROP
>    * iptables -A INPUT -p tcp --sport 53 -j DROP
>
> So, the question is:
>
> is possible to have a timeout check that includes also dns resolution time?
>
> Thanks to all in advance

I don't think this is possible with file_get_contents, but it should
work if you use cURL and set the CURLOPT_CONNECTTIMEOUT option.

- Matijn

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux