]> git.saurik.com Git - apt.git/blobdiff - methods/server.cc
test if TMPDIR is accessible before using
[apt.git] / methods / server.cc
index 82f9b4750b835fc72fb5bbe421e7b82fec5a0ef2..c4689ff122ffb5f2c051e37dee0d48dcdf7415d4 100644 (file)
@@ -534,8 +534,10 @@ int ServerMethod::Loop()
            bool Result = true;
 
             // ensure we don't fetch too much
            bool Result = true;
 
             // ensure we don't fetch too much
-            if (Queue->MaximumSize > 0)
-               Server->MaximumSize = Queue->MaximumSize;
+            // we could do "Server->MaximumSize = Queue->MaximumSize" here
+            // but that would break the clever pipeline messup detection
+            // so instead we use the size of the biggest item in the queue
+            Server->MaximumSize = FindMaximumObjectSizeInQueue();
 
             if (Server->HaveContent)
               Result = Server->RunData(File);
 
             if (Server->HaveContent)
               Result = Server->RunData(File);
@@ -706,5 +708,15 @@ int ServerMethod::Loop()
    }
    
    return 0;
    }
    
    return 0;
+}
+                                                                       /*}}}*/
+                                                                       /*{{{*/
+unsigned long long
+ServerMethod::FindMaximumObjectSizeInQueue() const 
+{
+   unsigned long long MaxSizeInQueue = 0;
+   for (FetchItem *I = Queue; I != 0 && I != QueueBack; I = I->Next)
+      MaxSizeInQueue = std::max(MaxSizeInQueue, I->MaximumSize);
+   return MaxSizeInQueue;
 }
                                                                        /*}}}*/
 }
                                                                        /*}}}*/