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

View file

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