- release 0.16
authorMichael Wallner <mike@php.net>
Wed, 19 Oct 2005 09:10:22 +0000 (09:10 +0000)
committerMichael Wallner <mike@php.net>
Wed, 19 Oct 2005 09:10:22 +0000 (09:10 +0000)
KnownIssues.txt
docs/functions.html
package.xml
package2.xml
php_http.h

index db3b288059d8b3777baa349230724e3093fc86be..d0dc6861ac3c9bd97c85c7e9af5545f0aa42380f 100644 (file)
@@ -7,7 +7,8 @@ HttpResponse class is only available for PHP >= 5.1
 Not all places where files are handled check for open_basedir and/or safe_mode.
 
 Throttling with the FastCGI SAPI may behave unexpected, because libfcgi seems
-to really write on flush only and every ~20kb.
+not to practically flush its buffers when calling sapi_flush().
+See also http://bugs.php.net/bug.php?id=34429
 
 If you keep getting "SSL connect error" when trying to issue requests on
 Windows, try another (newer) libeay32.dll/ssleay32.dll pair.
index f785fd092f8916f6c99c7a4757743875670650a3..69a7e63dcba18dbc7358a28a844c39ca2a30135e 100644 (file)
@@ -179,7 +179,7 @@ a "304 Not Modified" status code is issued.</p>
 <h2 id="ob_etaghandler">string ob_etaghandler(string data, int mode)</h2>
 <p>For use with ob_start().  Output buffer handler generating an ETag with<br />
 the hash algorythm specified with the INI setting "http.etag_mode".</p>
-<h2 id="http_throttle">void http_throttle(double sec[, int bytes = 2097152])</h2>
+<h2 id="http_throttle">void http_throttle(double sec[, int bytes = 40960])</h2>
 <p>Sets the throttle delay and send buffer size for use with http_send() API.<br />
 Provides a basic throttling mechanism, which will yield the current process<br />
 resp. thread until the entity has been completely sent, though.</p>
@@ -270,7 +270,7 @@ array where the following keys will be recognized:</p><pre> - redirect:
  - compress:         bool, whether to allow gzip/deflate content encoding<br />
                      (defaults to true)<br />
  - port:             int, use another port as specified in the url<br />
- - referer:          string, the referer to sends<br />
+ - referer:          string, the referer to send<br />
  - useragent:        string, the user agent to send<br />
                      (defaults to PECL::HTTP/version (PHP/version)))<br />
  - headers:          array, list of custom headers as associative array<br />
@@ -374,7 +374,7 @@ compression ratio.</p>
 <p>Check for feature that require external libraries.</p>
 <p>Accpepts an optional in parameter specifying which feature to probe for.<br />
 If the parameter is 0 or omitted, the return value contains a bitmask of <br />
-all supported featuers that depend on external libraries.</p>
+all supported features that depend on external libraries.</p>
 <p>Available features to probe for are:<br />
 <ul> <br />
  <li> HTTP_SUPPORT: always set<br />
@@ -762,7 +762,7 @@ HttpRequestPoolException, HttpMalformedHeaderException.</p>
 <h3 id="HttpRequestPool_socketPerform">protected bool HttpRequestPool::socketPerform()</h3>
 <p>Returns TRUE until each request has finished its transaction.</p>
 <p>Usage:</p><pre><blockquote><code><span style="color: #000000"><br />
-<span style="color: #0000BB">&lt;?php<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">while&nbsp;(</span><span style="color: #0000BB">$pool</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">socketPerform</span><span style="color: #007700">())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">do_something_else</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$pool</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">socketSelect</span><span style="color: #007700">())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;die(</span><span style="color: #DD0000">'Socket&nbsp;error'</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #0000BB">?&gt;</span><br />
+<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">MyPool&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">HttpRequestPool<br /></span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span style="color: #0000BB">send</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">socketPerform</span><span style="color: #007700">())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">socketSelect</span><span style="color: #007700">())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;</span><span style="color: #0000BB">HttpSocketExcpetion</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;final&nbsp;function&nbsp;</span><span style="color: #0000BB">socketPerform</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$result&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">parent</span><span style="color: #007700">::</span><span style="color: #0000BB">socketPerform</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getFinishedRequests</span><span style="color: #007700">()&nbsp;as&nbsp;</span><span style="color: #0000BB">$r</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">detach</span><span style="color: #007700">(</span><span style="color: #0000BB">$r</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;handle&nbsp;response&nbsp;of&nbsp;finished&nbsp;request<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$result</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;<br /></span><span style="color: #0000BB">?&gt;</span><br />
 </span></code></blockquote></p>
 <p></pre></p>
 <h3 id="HttpRequestPool_socketSelect">protected bool HttpRequestPool::socketSelect()</h3>
@@ -778,6 +778,13 @@ HttpRequestPoolException, HttpMalformedHeaderException.</p>
 <p>Implements Iterator::next().</p>
 <h3 id="HttpRequestPool_rewind">void HttpRequestPool::rewind()</h3>
 <p>Implements Iterator::rewind().</p>
+<h3 id="HttpRequestPool_getAttachedRequests">array HttpRequestPool::getAttachedRequests()</h3>
+<p>Get attached HttpRequest objects.</p>
+<p>Returns an array containing all currently attached HttpRequest objects.</p>
+<h3 id="HttpRequestPool_getFinishedRequests">array HttpRequestPool::getFinishedRequests()</h3>
+<p>Get attached HttpRequest objects that already have finished their work.</p>
+<p>Returns an array containing all attached HttpRequest objects that<br />
+already have finished their work.</p>
 <hr noshade>
 <h1 id="http_response_object.c">http_response_object.c</h1>
 <h3 id="HttpResponse_setHeader">static bool HttpResponse::setHeader(string name, mixed value[, bool replace = true])</h3>
@@ -1113,6 +1120,8 @@ http.cache_log is set.</p>
 <li><a href="#HttpRequestPool_key">HttpRequestPool::key()</a></li>
 <li><a href="#HttpRequestPool_next">HttpRequestPool::next()</a></li>
 <li><a href="#HttpRequestPool_rewind">HttpRequestPool::rewind()</a></li>
+<li><a href="#HttpRequestPool_getAttachedRequests">HttpRequestPool::getAttachedRequests()</a></li>
+<li><a href="#HttpRequestPool_getFinishedRequests">HttpRequestPool::getFinishedRequests()</a></li>
 </li>
 </ul>
 </li>
@@ -1152,7 +1161,7 @@ http.cache_log is set.</p>
 </li>
 </ul>
 </div>
-    <p><b>Generated at: Tue, 11 Oct 2005 11:33:16 +0000</b></p>
+    <p><b>Generated at: Wed, 19 Oct 2005 10:45:25 +0200</b></p>
 </body>
 </html>
 
index 25ba7a66004f8a5475e0512f671da6d96e5a2519..f787a85ccf249b825a4497a61e42640b73bfa7f7 100644 (file)
   </maintainer>
   </maintainers>
  <release>
-  <version>0.15.0</version>
-  <date>2005-10-11</date>
+  <version>0.16.0</version>
+  <date>2005-10-19</date>
   <license>PHP License</license>
   <state>beta</state>
-  <notes>+ Updated documentation (a lot)
-+ Added optional third parameter to HttpRequest::__construct() accepting an array with options
-+ Added compression functions gzencode/gzdecode, deflate/inflate, compress/uncompress
-+ Added http_support() for probing features that depend on external libraries
-
-- Renamed http_absolute_uri() to http_build_uri() (complements with http_build_query())
-- Changed the signature of the negotiator to fill the second parameter with the results array
-
-* Fixed several ETag issues
-* Fixed HttpRequestPools detach() and attach() methods when the iterator is active
-* Fixed parsing messages with Content-Range headers
-* Fixed parsing messages with another Transfer-Encoding header value than chunked
+  <notes>+ Added ext/zlib independant GZIP support
++ Added HttpRequestPool::getAttachedRequests() and getFinishedRequests()
   </notes>
   <deps>
    <dep type="php" rel="ge" version="4.3"/>
@@ -93,6 +83,7 @@
     <file role="test" name="get_request_data_001.phpt"/>
     <file role="test" name="HttpMessage_001.phpt"/>
     <file role="test" name="HttpRequestPool_001.phpt"/>
+    <file role="test" name="HttpRequestPool_002.phpt"/>
     <file role="test" name="HttpRequest_001.phpt"/>
     <file role="test" name="HttpRequest_002.phpt"/>
     <file role="test" name="HttpRequest_003.phpt"/>
     <file role="test" name="INI_001.phpt"/>
     <file role="test" name="log.inc"/>
     <file role="test" name="parse_headers_001.phpt"/>
-    <file role="test" name="parse_message_001.phpt"/>
+    <file role="test" name="parse_message_002.phpt"/>
+    <file role="test" name="parse_message_003.phpt"/>
+    <file role="test" name="parse_message_004.phpt"/>
     <file role="test" name="redirect_001.phpt"/>
     <file role="test" name="redirect_001_logging.phpt"/>
     <file role="test" name="redirect_002.phpt"/>
index 155f847eb26e10f23e23a3c087b10a93394c4c6f..b374d649f7453fe548fb77d3ec4c3853bef3c705 100644 (file)
     <file role="test" name="get_request_data_001.phpt"/>
     <file role="test" name="HttpMessage_001.phpt"/>
     <file role="test" name="HttpRequestPool_001.phpt"/>
+    <file role="test" name="HttpRequestPool_002.phpt"/>
     <file role="test" name="HttpRequest_001.phpt"/>
     <file role="test" name="HttpRequest_002.phpt"/>
     <file role="test" name="HttpRequest_003.phpt"/>
index 9394129ffdbeecac1e4dabce55e4396edcddbdab..356b78a0ebbd17e5f670856ce6c4df8ebb7e086c 100644 (file)
@@ -18,7 +18,7 @@
 #ifndef PHP_EXT_HTTP_H
 #define PHP_EXT_HTTP_H
 
-#define HTTP_PEXT_VERSION "0.16.0dev"
+#define HTTP_PEXT_VERSION "0.16.0"
 
 /* make compile on Win32 */
 #ifdef HTTP_HAVE_CURL