experimental SCP writing (for using Tinyboard over multiple servers)

This commit is contained in:
Savetheinternet 2011-05-20 22:44:35 +10:00
parent 65c5e91af2
commit 9654c9d9e7
2 changed files with 18 additions and 1 deletions

View file

@ -212,9 +212,23 @@
}
function file_write($path, $data) {
global $config;
if(preg_match('/^scp:\/\/(.+)$/', $path, $m)) {
// Experimental: secure copy...
$file = tempnam($config['tmp'], 'tinyboard-scp');
// Write to temp file
file_write($file, $data);
// Call `scp` (yes, this is horrible)
$command = 'scp ' . escapeshellarg($file) . ' ' . escapeshellarg($m[1]);
system($command);
// Delete temporary file
unlink($file);
exit;
}
if(!$fp = fopen($path, 'c'))
error('Unable to open file for writing: ' . $path);
// File locking
if(!flock($fp, LOCK_EX)) {
error('Unable to lock file: ' . $path);