Merge branch 'v2.6.x'
[m6w6/ext-http] / tests / helper / proxy.inc
index 61b20dd1c1b38e3a26190d5d401216387991bc07..d60b564267c8e1fe22e659247ebfb9dfb5af3e0f 100644 (file)
@@ -1,21 +1,27 @@
-<?php 
+<?php
 
+include "dump.inc";
 include "server.inc";
 
 serve(function($client) {
        /* this might be a proxy connect or a standard request */
        $request = new http\Message($client, false);
        
-       if ($request->getHeader("Proxy-Connection")) {
+       /* libcurl >= 7.48 does not send Proxy-Connection anymore */
+       if ($request->getHeader("Proxy-Connection")
+       ||      $request->getRequestMethod() === "CONNECT") {
                $response = new http\Env\Response;
+               $response->setEnvRequest($request);
                $response->send($client);
-               
+
                /* soak up the request following the connect */
                new http\Message($client, false);
        }
-       
+
        /* return the initial message as response body */
        $response = new http\Env\Response;
-       $response->getBody()->append($request);
+       $response->setHeader("X-Request-Content-Length", $request->getBody()->stat("size"));
+       /* avoid OOM with $response->getBody()->append($request); */
+       dump_message($response->getBody()->getResource(), $request);
        $response->send($client);
 });