<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to 6: Ping is waiting forever</title><link href="https://sourceforge.net/p/phpagi/feature-requests/6/" rel="alternate"/><link href="https://sourceforge.net/p/phpagi/feature-requests/6/feed.atom" rel="self"/><id>https://sourceforge.net/p/phpagi/feature-requests/6/</id><updated>2013-06-05T16:02:51.494000Z</updated><subtitle>Recent changes to 6: Ping is waiting forever</subtitle><entry><title>Ping is waiting forever</title><link href="https://sourceforge.net/p/phpagi/feature-requests/6/" rel="alternate"/><published>2013-06-05T16:02:51.494000Z</published><updated>2013-06-05T16:02:51.494000Z</updated><author><name>Mogyi</name><uri>https://sourceforge.net/u/mogyiman/</uri></author><id>https://sourceforge.netb59cbb1d5daed7e471e54399a59af00e82dcd267</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;A small but very sensitive point on using Ping to keep connection alive. But when it goes offline we have to apply timeout on that request. Here is my quick hack, the solution could be more general.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;send_request($action, $parameters&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;)&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  $&lt;span class="n"&gt;req&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &amp;quot;&lt;span class="n"&gt;Action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; $&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="o"&gt;\&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;\&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&amp;quot;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;foreach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;$&lt;span class="n"&gt;parameters&lt;/span&gt; &lt;span class="n"&gt;as&lt;/span&gt; $&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;$&lt;span class="n"&gt;val&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    $&lt;span class="n"&gt;req&lt;/span&gt; &lt;span class="p"&gt;.=&lt;/span&gt; &amp;quot;$&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; $&lt;span class="n"&gt;val&lt;/span&gt;&lt;span class="o"&gt;\&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;\&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&amp;quot;&lt;span class="p"&gt;;&lt;/span&gt;
  $&lt;span class="n"&gt;req&lt;/span&gt; &lt;span class="p"&gt;.=&lt;/span&gt; &amp;quot;&lt;span class="o"&gt;\&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;\&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&amp;quot;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;fwrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;$&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;socket&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; $&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;$&lt;span class="n"&gt;action&lt;/span&gt; !&lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'Ping'&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; $&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;wait_response&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; $&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;wait_response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</summary></entry></feed>