} else { $prefix = "down_" . sha1($_SERVER['HTTP_X_URLFRAG']); $f = fopen(tempnam($tempdir, $prefix), "w"); } fwrite($f, $postdata); fclose($f); } else { findSendDelete($tempdir, "up_", false); } } else { if ($_SERVER['REQUEST_METHOD'] === 'POST') { //get data $postdata = file_get_contents("php://input"); //See if we should send anything down if ($postdata === "RECV") { findSendDelete($tempdir, "down_" . sha1($url)); $fname = $tempdir . "/up_recv_" . sha1($url); //Only keep one RECV poll } else { $fname = tempnam($tempdir, "up_"); //actual data gets its own filename } //find free and write new file $f = fopen($fname, "w"); fwrite($f, $magic); //Little-endian pack length and data $urlen = strlen($url); fwrite($f, pack('V', $urlen)); fwrite($f, $url); $postdatalen = strlen($postdata); fwrite($f, pack('V', $postdatalen));
} else { $prefix = "down_" . bin2hex($_SERVER['HTTP_X_URLFRAG']); $f = fopen(tempnam($tempdir, $prefix), "w"); } fwrite($f, $postdata); fclose($f); } else { findSendDelete($tempdir, "up_", false); } } else { if ($_SERVER['REQUEST_METHOD'] === 'POST') { //get data $postdata = file_get_contents("php://input"); //See if we should send anything down if ($postdata === 'RECV') { findSendDelete($tempdir, "down_" . bin2hex($url)); $fname = $tempdir . "/up_recv_" . bin2hex($url); //Only keep one RECV poll } else { $fname = tempnam($tempdir, "up_"); //actual data gets its own filename } //find free and write new file $f = fopen($fname, "w"); fwrite($f, $magic); //Little-endian pack length and data $urlen = strlen($url); fwrite($f, pack('V', $urlen)); fwrite($f, $url); $postdatalen = strlen($postdata); fwrite($f, pack('V', $postdatalen));