Ejemplo n.º 1
0
<?php

require __DIR__ . "/../../../server/lib/Daemon.php";
Daemon::daemonize(__DIR__ . "/proxy.pid");
function debug($what1, $what2 = false)
{
    echo $what1 . ": ";
    echo $what2;
    echo "\n";
}
class XDebugServer
{
    public $serverPort = 9000;
    public $serverSocket = false;
    public $clientPort = 9001;
    public $clientSocket = false;
    public $clients;
    public $lastClient;
    public $clientTimeout = 2;
    public $daemonTimeout = 10;
    public $apiPaths;
    function init()
    {
        $this->serverSocket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Failed creating server socket: " . socket_strerror(socket_last_error()));
        socket_set_option($this->serverSocket, SOL_SOCKET, SO_REUSEADDR, 1) or die("Failed setting option on server socket: " . socket_strerror(socket_last_error()));
        socket_bind($this->serverSocket, "0.0.0.0", $this->serverPort) or die("Failed binding server socket (" . $this->serverPort . "): " . socket_strerror(socket_last_error()));
        socket_listen($this->serverSocket) or die("Failed listening server socket: " . socket_strerror(socket_last_error()));
        $this->clientSocket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Failed creating client socket: " . socket_strerror(socket_last_error()));
        socket_set_option($this->clientSocket, SOL_SOCKET, SO_REUSEADDR, 1) or die("Failed setting option on client socket: " . socket_strerror(socket_last_error()));
        socket_bind($this->clientSocket, "0.0.0.0", $this->clientPort) or die("Failed binding client socket (" . $this->idePort . "): " . socket_strerror(socket_last_error()));
        socket_listen($this->clientSocket) or die("Failed listening client socket: " . socket_strerror(socket_last_error()));
Ejemplo n.º 2
0
<?php

require __DIR__ . "/../../../server/lib/Daemon.php";
Daemon::daemonize(__DIR__ . "/server.pid");
spl_autoload_register(function ($name) {
    require_once __DIR__ . "/" . str_replace("\\", "/", $name) . ".php";
});
use Symfony\Component\Process\Process;
include "SocketServer.php";
class Listener implements SocketListener
{
    public function onIdle(SocketServer $server)
    {
        $clients = $server->getClients();
        foreach ($clients as $client) {
            if ($client->buffer) {
                $client->send(array('type' => 'shell', 'result' => $client->buffer));
                $client->buffer = "";
            }
            if ($client->process && !$client->process->isRunning() && !$client->buffer) {
                $client->process = false;
                $client->send(array('type' => 'shell', 'finished' => true));
            }
        }
        usleep(1000 * 10);
    }
    function parseCookies($line)
    {
        $aPairs = explode(';', $line);
        $result = array();
        foreach ($aPairs as $pair) {