Bonjour,

Je suis en train de développer un proxy en PHP, qui permet actuellement, de chainer avec un 2nd proxy, ou que mon script fait proxy de lui même.

Après plusieurs tests, celui-ci commence à être stable, methode GET et POST fonctionnent bien, les cookies son géré.

Après un autre test, je me suis rendu compte, que la methode CONNECT ayant un comportement bien different plante le script.

J'essaye donc de coder cette method, mais j'ai un soucis majeur : Lire l'entrée du client.

Par exemple (les noms sont réel) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
Debian:~# telnet proxy.galoula.com 80
Trying 87.106.108.42...
Connected to windaube.galoula.com.
Escape character is '^]'.
CONNECT www.galoula.net:80 HTTP/1.0
User-Agent: MSMSGS
Host:  www.galoula.net:80
Content-Length: 0
Proxy-Connection: Keep-Alive
Pragma: no-cache
 
HTTP/1.1 200 Connection established
Date: Thu, 18 Feb 2010 09:58:16 GMT
Server: Apache
Proxy-Agent: Privoxy/3.0.15
Connection: close
Content-Type: text/html
 
(ici la connection essaye de lire ce que j'ecris, mais je ne trouve pas la soulution)
<br />
<b>Fatal error</b>:  Maximum execution time of 10 seconds exceeded in <b>C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\Default\index.php</b> on line <b>294</b><br />
Connection closed by foreign host.
En clair, en ce moment j'essaye de faire un "echo" en PHP : J'ecrit un truc, il me reecris la même chose.

J'ai essayer plusieurs methodes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
	if ($statusCode == "200" && $method == "CONNECT")
	{
		if ($debug) echo "readCONNECT\n";
		echo "\n";
		ob_end_flush();
		flush();
		ob_start();
		$i = 0;
		echo $i;
		//$handle = fsockopen($_SERVER['REMOTE_ADDR'], $_SERVER['REMOTE_PORT'], $errno, $errstr, 30);
		while (1) {
			//$handle = fopen("php://input", "rb");
			$handle = fopen("php://stdin","r");
			//$tmpa = file_get_contents("php://input");
			$tmpa = fread($handle, 1);
			echo $tmpa;
			ob_end_flush();
			flush();
			ob_start(); 
		}
		//exit;
	}
Je sais que le whie(1) est reelement po beau, mais, c'est juste le temps de trouver comment faire un "echo".

Merci d'avance.