X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/be4401bfa4a240bbc894e1bfeb1e1e8d63fc7b18..f955ecd02efa51a1fc7ce45b4d5d33c91170d371:/methods/file.cc diff --git a/methods/file.cc b/methods/file.cc index 0e5e2ebef..298f06608 100644 --- a/methods/file.cc +++ b/methods/file.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: file.cc,v 1.5 1998/11/01 05:27:41 jgg Exp $ +// $Id: file.cc,v 1.8 2000/01/27 04:15:10 jgg Exp $ /* ###################################################################### File URI method for APT @@ -26,7 +26,7 @@ class FileMethod : public pkgAcqMethod public: - FileMethod() : pkgAcqMethod("1.0",SingleInstance) {}; + FileMethod() : pkgAcqMethod("1.0",SingleInstance | LocalOnly) {}; }; // FileMethod::Fetch - Fetch a file /*{{{*/ @@ -37,7 +37,9 @@ bool FileMethod::Fetch(FetchItem *Itm) URI Get = Itm->Uri; string File = Get.Path; FetchResult Res; - + if (Get.Host.empty() == false) + return _error->Error("Invalid URI, local URIS must not start with //"); + // See if the file exists struct stat Buf; if (stat(File.c_str(),&Buf) == 0) @@ -46,7 +48,7 @@ bool FileMethod::Fetch(FetchItem *Itm) Res.Filename = File; Res.LastModified = Buf.st_mtime; Res.IMSHit = false; - if (Itm->LastModified == Buf.st_mtime) + if (Itm->LastModified == Buf.st_mtime && Itm->LastModified != 0) Res.IMSHit = true; } @@ -62,7 +64,7 @@ bool FileMethod::Fetch(FetchItem *Itm) AltRes.Filename = File; AltRes.LastModified = Buf.st_mtime; AltRes.IMSHit = false; - if (Itm->LastModified == Buf.st_mtime) + if (Itm->LastModified == Buf.st_mtime && Itm->LastModified != 0) AltRes.IMSHit = true; URIDone(Res,&AltRes);