Просмотр исходного кода

* [ Abi break ] apt-pkg/acquire-item.{cc,h}:
- add "IsIndexFile" to constructor of pkgAcqFile so that it sends
the right cache control headers

Michael Vogt лет назад: 16
Родитель
Сommit
77278c2b52
3 измененных файлов с 23 добавлено и 3 удалено
  1. 12 2
      apt-pkg/acquire-item.cc
  2. 8 1
      apt-pkg/acquire-item.h
  3. 3 0
      debian/changelog

+ 12 - 2
apt-pkg/acquire-item.cc

@@ -1539,8 +1539,9 @@ void pkgAcqArchive::Finished()
 /* The file is added to the queue */
 pkgAcqFile::pkgAcqFile(pkgAcquire *Owner,string URI,string Hash,
 		       unsigned long Size,string Dsc,string ShortDesc,
-		       const string &DestDir, const string &DestFilename) :
-                       Item(Owner), ExpectedHash(Hash)
+		       const string &DestDir, const string &DestFilename,
+                       bool IsIndexFile) :
+                       Item(Owner), ExpectedHash(Hash), IsIndexFile(IsIndexFile)
 {
    Retries = _config->FindI("Acquire::Retries",0);
    
@@ -1655,3 +1656,12 @@ void pkgAcqFile::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
    Item::Failed(Message,Cnf);
 }
 									/*}}}*/
+// AcqIndex::Custom600Headers - Insert custom request headers		/*{{{*/
+// ---------------------------------------------------------------------
+/* The only header we use is the last-modified header. */
+string pkgAcqFile::Custom600Headers()
+{
+   if (IsIndexFile)
+      return "\nIndex-File: true";
+}
+									/*}}}*/

+ 8 - 1
apt-pkg/acquire-item.h

@@ -856,6 +856,9 @@ class pkgAcqFile : public pkgAcquire::Item
     */
    unsigned int Retries;
    
+   /** \brief Should this file be considered a index file */
+   bool IsIndexFile;
+
    public:
    
    // Specialized action members
@@ -864,6 +867,7 @@ class pkgAcqFile : public pkgAcquire::Item
 		     pkgAcquire::MethodConfig *Cnf);
    virtual string DescURI() {return Desc.URI;};
    virtual string HashSum() {return ExpectedHash.toStr(); };
+   virtual string Custom600Headers();
 
    /** \brief Create a new pkgAcqFile object.
     *
@@ -887,6 +891,8 @@ class pkgAcqFile : public pkgAcquire::Item
     *
     *  \param DestFilename The filename+path the file is downloaded to.
     *
+    *  \param IsIndexFile The file is considered a IndexFile and cache-control
+    *                     headers like "cache-control: max-age=0" are send
     *
     * If DestFilename is empty, download to DestDir/<basename> if
     * DestDir is non-empty, $CWD/<basename> otherwise.  If
@@ -896,7 +902,8 @@ class pkgAcqFile : public pkgAcquire::Item
 
    pkgAcqFile(pkgAcquire *Owner, string URI, string Hash, unsigned long Size,
 	      string Desc, string ShortDesc,
-	      const string &DestDir="", const string &DestFilename="");
+	      const string &DestDir="", const string &DestFilename="",
+	      bool IsIndexFile=false);
 };
 									/*}}}*/
 /** @} */

+ 3 - 0
debian/changelog

@@ -31,6 +31,9 @@ apt (0.7.25.4) UNRELEASED; urgency=low
       error out (LP: #502641)
   * apt-pkg/indexfile.cc:
     - deal correctly with three letter langcodes (LP: #391409)
+  * [ Abi break ] apt-pkg/acquire-item.{cc,h}:
+    - add "IsIndexFile" to constructor of pkgAcqFile so that it sends
+      the right cache control headers
 
   [ Robert Collins ]
   * Change the package index Info methods to allow apt-cache policy to be