Beispiel #1
0
$filename = $SOCKETPATH . '/YDKJ' . $VERSION . $session_id . '.sock';
@unlink($filename);
$listen = stream_socket_server('unix://' . $filename, $errno, $errstr);
if ($listen) {
    $continuelistening = 1;
    while ($continuelistening) {
        $sockets = array();
        $synclist = array();
        while (true) {
            @($socket = stream_socket_accept($listen, 20));
            if (!$socket) {
                $continuelistening = 0;
                // Aucune nouvelle connexion ni activité depuis 20 secondes... on sort
                break;
            } else {
                $data = freadline($socket);
                $sp = explode(',', $data);
                $player_id = $sp[0];
                $sockets[$player_id] = $socket;
                $whatsup = intval($sp[1]);
                if ($whatsup > 0) {
                    // Si la valeur est positive, on vérifie le nombre de connexions qui ont fait pareil, et si il y en a assez, on déco tout le monde !
                    $synclist[$player_id] = 1;
                    @fwrite($socket, sizeof($synclist));
                    // On renvoie à l'utilisateur le combientième il a été à nous envoyer l'info
                    @fread($socket, 1);
                    // On attend la validation
                    if (sizeof($synclist) >= $whatsup) {
                        break;
                    }
                }
$empty_lines = 0;
while (!feof($stdin)) {
    $line = freadline($stdin);
    $line = str_replace(array("\n", "\r"), '', $line);
    if (empty($line)) {
        break;
    }
    $mail['headers'] .= $line . "\r\n";
}
// Read Body ($mail['body])
while (!feof($stdin)) {
    $line = freadline($stdin);
    // Read variables block and create the header
    if (preg_match('/^~~VARSTART~~/', $line)) {
        while (!feof($stdin)) {
            $line = freadline($stdin);
            $line = str_replace(array("\n", "\r"), '', $line);
            if (preg_match('/^~~VAREND~~/', $line)) {
                break;
            }
            $aux = split('~~', $line, 2);
            $vars[$aux[0]] = $aux[1];
        }
        $mail['body'] .= generate_mail_body($vars);
        // Append rest of the body to the email
    } else {
        $mail['body'] .= $line;
    }
}
fclose($stdin);
foreach (explode("\r\n", $mail['headers']) as $header) {