// no content it'll be cheap. :)
$request = self::_commonHttp($short_url, $redirs);
$response = $request->send();
+ } elseif (400 == $response->getStatus()) {
+ throw new Exception('Got error 400 on HEAD request, will not go further.');
}
} catch (Exception $e) {
// Invalid URL or failure to reach server
try {
$r = File_redirection::getByUrl($in_url);
- try {
- $f = File::getKV('id',$r->file_id);
+
+ $f = File::getKV('id',$r->file_id);
+
+ if($file instanceof File) {
$r->file = $f;
- $r->redir_url = $f->url;
- } catch (NoResultException $e) {
+ $r->redir_url = $f->url;
+ } else {
// Invalid entry, delete and run again
common_log(LOG_ERR, "Could not find File with id=".$r->file_id." referenced in File_redirection, deleting File redirection entry and and trying again...");
$r->delete();
- return self::where($in_url);
+ return self::where($in_url);
}
+
// File_redirecion and File record found, return both
return $r;
-
+
} catch (NoResultException $e) {
// File_redirecion record not found, but this might be a direct link to a file
try {
// in that case we have the file id already
try {
$r = File_redirection::getByUrl($redir_info['url']);
- try {
- $f = File::getKV('id',$r->file_id);
+
+ $f = File::getKV('id',$r->file_id);
+
+ if($f instanceof File) {
$redir->file = $f;
- $redir->redir_url = $f->url;
- } catch (NoResultException $e) {
+ $redir->redir_url = $f->url;
+ } else {
// Invalid entry in File_redirection, delete and run again
common_log(LOG_ERR, "Could not find File with id=".$r->file_id." referenced in File_redirection, deleting File_redirection entry and trying again...");
$r->delete();
- return self::where($in_url);
+ return self::where($in_url);
}
} catch (NoResultException $e) {
// save the file now when we know that we don't have it in File_redirection
// don't touch anything
break;
+ // URLs with coordinates, not browsable domain names
+ case 'geo':
+ // don't touch anything
+ break;
+
default:
$out_url = $default_scheme . ltrim($out_url, '/');
$p = parse_url($out_url);
return $this->file;
}
-}
\ No newline at end of file
+}