function ping($r) { xml_start_tag("ping"); BoincDb::get(); // errors out if DB down or web disabled echo "<success>1</success>\n </ping>\n "; }
function upload_files($r) { xml_start_tag("upload_files"); list($user, $user_submit) = authenticate_user($r, null); $fanout = parse_config(get_config(), "<uldl_dir_fanout>"); $delete_time = (int) $r->delete_time; $batch_id = (int) $r->batch_id; //print_r($_FILES); $i = 0; foreach ($r->md5 as $f) { $md5 = (string) $f; $name = "file_{$i}"; $tmp_name = $_FILES[$name]['tmp_name']; if (!is_uploaded_file($tmp_name)) { xml_error(-1, "{$tmp_name} is not an uploaded file"); } $fname = job_file_name($md5); $path = dir_hier_path($fname, project_dir() . "/download", $fanout); rename($tmp_name, $path); $now = time(); $jf_id = BoincJobFile::insert("(md5, create_time, delete_time) values ('{$md5}', {$now}, {$delete_time})"); if (!$jf_id) { xml_error(-1, "upload_files(): BoincJobFile::insert({$md5}) failed: " . BoincDb::error()); } if ($batch_id) { BoincBatchFileAssoc::insert("(batch_id, job_file_id) values ({$batch_id}, {$jf_id})"); } $i++; } echo "<success/>\n </upload_files>\n "; }