fixed #1703 and probably #1696 too

This commit is contained in:
tomash 2006-06-23 01:25:53 +00:00
parent a337906f94
commit ebb5c5f761
2 changed files with 23 additions and 8 deletions

View file

@ -375,11 +375,12 @@ class Transport
function globalSearch($criteria, $resultMode='php', $pars=array()) function globalSearch($criteria, $resultMode='php', $pars=array())
{ {
$criteria['resultMode'] = $resultMode; $criteria['resultMode'] = $resultMode;
$fname = tempnam($this->transDir, 'searchjob_'); $localfile = tempnam($this->transDir, 'searchjob_');
@chmod($localfile, 0660); @chmod($localfile, 0660);
$len = $r = file_put_contents($localfile, serialize($criteria)); $len = $r = file_put_contents($localfile, serialize($criteria));
$trec = $r = $this->_uploadGenFile2Hub($localfile, 'searchjob', $pars); $trec = $r = $this->_uploadGenFile2Hub($localfile, 'searchjob', $pars);
if(PEAR::isError($r)){ return $r; } if(PEAR::isError($r)){ return $r; }
$this->startCronJobProcess($trec->trtok);
return $trec->trtok; return $trec->trtok;
} }
@ -394,9 +395,7 @@ class Transport
$trec = $r = TransportRecord::recall($this, $trtok); $trec = $r = TransportRecord::recall($this, $trtok);
if(PEAR::isError($r)){ return $r; } if(PEAR::isError($r)){ return $r; }
$row = $trec->row; $row = $trec->row;
switch($trec->getState()){ switch($st = $trec->getState()){
case"finished":
break;
case"failed": case"failed":
return PEAR::raiseError( return PEAR::raiseError(
"Transport::getSearchResults:". "Transport::getSearchResults:".
@ -410,9 +409,13 @@ class Transport
" invalid transport token ($trtok)", TRERR_TOK " invalid transport token ($trtok)", TRERR_TOK
); );
break; break;
case"finished":
if($row['direction']=='down') break; // really finished
// otherwise only request upload finished
default: default:
return PEAR::raiseError( return PEAR::raiseError(
"Transport::getSearchResults: not finished", TRERR_NOTFIN "Transport::getSearchResults: not finished ($st)",
TRERR_NOTFIN
); );
} }
$res = file_get_contents($row['localfile']); $res = file_get_contents($row['localfile']);
@ -441,6 +444,7 @@ class Transport
} }
$trec = $r = $this->_uploadGenFile2Hub($filePath, 'file', $pars); $trec = $r = $this->_uploadGenFile2Hub($filePath, 'file', $pars);
if(PEAR::isError($r)){ return $r; } if(PEAR::isError($r)){ return $r; }
$this->startCronJobProcess($trec->trtok);
return $trec->trtok; return $trec->trtok;
} }
@ -468,6 +472,7 @@ class Transport
), $pars) ), $pars)
); );
if(PEAR::isError($r)){ return $r; } if(PEAR::isError($r)){ return $r; }
$this->startCronJobProcess($trec->trtok);
return array('trtok'=>$trec->trtok, 'localfile'=>$tmpn); return array('trtok'=>$trec->trtok, 'localfile'=>$tmpn);
} }
@ -581,6 +586,7 @@ class Transport
) )
); );
if(PEAR::isError($r)){ return $r; } if(PEAR::isError($r)){ return $r; }
$this->startCronJobProcess($trtok);
return $trtok; return $trtok;
} }
@ -838,6 +844,8 @@ class Transport
$pars = array(); $pars = array();
switch($trtype){ switch($trtype){
case"searchjob": case"searchjob":
$r = $trec->setState('waiting', $pars);
break;
case"file": case"file":
$r = $trec->setState('waiting',array_merge($pars, array( $r = $trec->setState('waiting',array_merge($pars, array(
'trtype'=>$trtype, 'trtype'=>$trtype,
@ -1038,7 +1046,12 @@ class Transport
), ),
) )
); );
if(PEAR::isError($r)){ return $r; } if(PEAR::isError($r)){
if($row['trtype'] == 'audioclip'){
$r2 = $mdtrec->close();
}
return $r;
}
if($row['trtype'] == 'searchjob'){ if($row['trtype'] == 'searchjob'){
@unlink($row['localfile']); @unlink($row['localfile']);
@ -1050,6 +1063,7 @@ class Transport
'url' => $ret['url'], 'url' => $ret['url'],
'realsize' => 0, 'realsize' => 0,
)); ));
$this->startCronJobProcess($trec->trtok);
}else{ }else{
$r = $trec->close(); $r = $trec->close();
} }

View file

@ -78,8 +78,9 @@ class TransportRecord
$names = "id, trtok, direction, state, trtype, start, ts"; $names = "id, trtok, direction, state, trtype, start, ts";
$values = "$id, '$trtok', '$direction', 'init', '$trtype', now(), now()"; $values = "$id, '$trtok', '$direction', 'init', '$trtype', now(), now()";
foreach($defaults as $k=>$v){ foreach($defaults as $k=>$v){
$sqlVal = $trec->_getSqlVal($k, $v);
$names .= ", $k"; $names .= ", $k";
$values .= ", ".$trec->_getSqlVal($k, $v); $values .= ", $sqlVal";
} }
$res = $r = $trec->dbc->query(" $res = $r = $trec->dbc->query("
INSERT INTO {$trec->transTable} INSERT INTO {$trec->transTable}
@ -283,7 +284,7 @@ class TransportRecord
case 'realsize': case 'realsize':
case 'expectedsize': case 'expectedsize':
case 'uid': case 'uid':
return "$fldVal"; return ("$fldVal"!='' ? "$fldVal" : "NULL");
break; break;
case 'gunid': case 'gunid':
case 'pdtoken': case 'pdtoken':