Example #1
1
function getTempName($fileName = '', $dir = '')
{
    if (empty($dir)) {
        $dir = getTempDir();
    }
    $fileName = basename($fileName);
    if (empty($fileName)) {
        $fileName = time();
    }
    $fileName = preg_replace('|\\..*$|', '.tmp', $fileName);
    $fileName = $dir . getUniqueFileName($dir, $fileName);
    touch($fileName);
    return $fileName;
}
 /**
  * Generate differences between this version and a previous version.
  *
  * @param array $diffResultArray Results of difference engine.
  * @param int $compareVersion    Version to compare with
  * @return int -1 = version is latest version, can not compare to self
  *             -2 = diffs disabled
  *             -3 = versions are the same
  *             -4 = other error
  *             +n = generation successful, returns the version number of the previous version
  */
 function diff(&$diffResultArray)
 {
     if (!defined('DIFF_COMMAND')) {
         return -2;
     }
     // diffs disabled
     $object = $this->foowd->getObj(array('objectid' => $this->objectid, 'classid' => $this->classid, 'workspaceid' => $this->workspaceid));
     if ($this->version == $object->version) {
         return -1;
     }
     // can not compare to self
     $fileid = time();
     $temp_dir = getConstOrDefault('DIFF_TMPDIR', getTempDir());
     $oldFile = $temp_dir . 'foowd_diff_' . $fileid . '-1';
     $newFile = $temp_dir . 'foowd_diff_' . $fileid . '-2';
     $oldPage = $this->body;
     $newPage = $object->body;
     ignore_user_abort(TRUE);
     // don't halt if aborted during diff
     if (!($fp1 = fopen($oldFile, 'w')) || !($fp2 = fopen($newFile, 'w'))) {
         $this->foowd->track('msg', 'Could not create temp files in "' . $temp_dir . '" required for diff engine.');
         $returnValue = -4;
         // other error
     } elseif (fwrite($fp1, $oldPage) < 0 || fwrite($fp2, $newPage) < 0) {
         $this->foowd->track('msg', 'Could not write to temp files in "' . $temp_dir . '" required for diff engine.');
         $returnValue = -4;
         // other error
     } else {
         fclose($fp1);
         fclose($fp2);
         $this->foowd->track('msg', 'executing external diff engine', '"' . DIFF_COMMAND . '"');
         $diffResult = shell_exec(DIFF_COMMAND . ' ' . $oldFile . ' ' . $newFile);
         if ($diffResult === FALSE) {
             $this->foowd->track('msg', 'Error occured running diff engine "', DIFF_COMMAND, '".');
             $returnValue = -4;
             // other error
         } elseif ($diffResult == FALSE) {
             $returnValue = -3;
         } else {
             $diffResultArray = explode("\n", $diffResult);
             $returnValue = $object->version;
         }
     }
     unlink($oldFile);
     unlink($newFile);
     ignore_user_abort(FALSE);
     // all done, it's ok to abort now
     $this->foowd->track();
     return $returnValue;
 }
Example #3
0
function createFile($extension, $content)
{
    $filename = getTempDir() . $extension;
    file_put_contents($filename, $content);
    return $filename;
}
Example #4
0
 } else {
     if (!strcmp($action, "chk264")) {
         /* ACTION: Simply stalls while checking for 264 file.
          * Parms: <monitor><timeout> 
          * NOTE: This will be called directly by path, so include files
          * may not be available */
         session_start();
         require_once dirname(__FILE__) . "/../includes/functions.php";
         if (!isset($_GET['monitor']) || !isset($_GET['timeout'])) {
             logXmlErr("Monitor not specified for chk264");
             exit;
         }
         $monitor = validInteger($_GET['monitor']);
         $path = getTempDir() . "/" . m3u8fname($monitor);
         /* Wait for the second sample to become available */
         $tsfile = getTempDir() . "/sample_" . $monitor . "-2.ts";
         /* Setup timeout */
         $startTime = time();
         $timeout = validInteger($_GET['timeout']);
         while (!file_exists($path) || !file_exists($tsfile)) {
             if (time() > $startTime + $timeout) {
                 logXmlErr("Timed out waiting for stream to start, exiting...");
                 kill264proc($monitor);
                 exit;
             }
             usleep(10000);
         }
         logXml("File exists, stream created after " . (time() - $startTime) . " sec");
         exit;
     } else {
         if (!strcmp($action, "feed")) {
Example #5
0
/** Erases the M3u8 and TS file names for a given monitor */
function eraseH264Files($monitor)
{
    /** NOTE: This command executes an 'rm' command, so $monitor parameter
     * should be properly validated before executing */
    /* Remove wdir/.m3u8 and wdir/sample_<mon>*.ts */
    shell_exec("rm -f " . getTempDir() . "/" . m3u8fname($monitor) . " " . getTempDir() . "/sample_" . $monitor . "*.ts");
}