\r\n"; /* Disable PHP built-in logging */; setshowinfo(0); /* Empty queries are not allowed */; if($query==""); echo "% 700 PROXY Query is empty!"; exit; endif; include "modules/generate-query.phtml"; /* Extract serveralias, hostname and port */; $serveralias = strtok($server, "["); $hostname = strtok(":"); $port = strtok("]"); /* Open socket connection to server */; $fd = fsockopen($hostname, $port); /* Some handy variables */; $servererror = 0; /* =1 if server returns an error */; if ($fd > 0); /* Socket open? */; /* Get rid of server greetings */; $done = 0; $firsttime = 1; while ($done == 0); $servmsg = fgets($fd, 100); echo $servmsg; if (reg_match(".*% 220 ", $servmsg)); /* Did we get the last line of greetings? */; $done = 1; endif; if (reg_match(".*% 203", $servmsg)); $done = 1; $servererror = 1; /* Ops, server doesn't want to speak to us */; endif; endwhile; /* Send the query to server */; if ($servererror == 0); $query = $query+"\r\n"; echo "> "+$query; fputs($fd, $query); /* send query */; /* Let's see if the server accepts our query... */; $done = 0; while ($done == 0); $servmsg = fgets($fd, 100); echo $servmsg; /* Output all server messages */; if (reg_match(".*% 200", $servmsg)); /* OK, we're in the matrix! */; $done = 1; elseif (reg_match(".*% 203", $servmsg)); /* Darn, server closed connection */; $done = 1; $servererror = 1; else; /* We got some other kind of message, maybe bad, maybe not... */; $servererr = 1; endif; endwhile; $querysent = 1; else; $querysent = 0; endif; /* Parse server output */; if ($servererror == 0); $data = fgets($fd, 200); /* read data until we encounter a line beginning with the % character */; while ($data); echo $data; $data = fgets($fd, 200); /* get next line from server */; endwhile; endif; fclose($fd); /* Close the socket connection */; /* We couldn't open a connection to the server */; else; switch ($fd); case -4; echo "% 704 PROXY Couldn't create socket\r\n"; break; case -5; echo "% 705 PROXY Host "+$hostname+" couldn't be found in DNS\r\n"; break; case -6; echo "% 706 PROXY Couldn't connect to server (or timed out on connect)\r\n"; break; case -7; echo "% 707 PROXY Couldn't create file descriptor\r\n"; break; case -8; echo "% 708 PROXY Couldn't create unbuffered stream\r\n"; break; default; echo "% 701 PROXY Couldn't connect (reason unknown)\r\n"; break; endswitch; endif; >