]> git.mxchange.org Git - simgear.git/commitdiff
Fixes for HTTP cancellation.
authorJames Turner <zakalawe@mac.com>
Thu, 14 Apr 2016 08:42:04 +0000 (09:42 +0100)
committerJames Turner <zakalawe@mac.com>
Thu, 14 Apr 2016 08:42:04 +0000 (09:42 +0100)
(Forgot to stage these from previous commit)

simgear/io/HTTPRepository.cxx

index a82931d9b1cb251ab279c9e789c68e52d49c04a7..fe9b1349a5b5e2ce4dcec5f56182e0ec7a8a5e22 100644 (file)
@@ -105,11 +105,7 @@ namespace simgear
         {
         }
 
-        virtual void cancel()
-        {
-            _directory = 0;
-            abort("Repository cancelled request");
-        }
+        virtual void cancel();
 
         size_t contentSize() const
         {
@@ -633,6 +629,12 @@ HTTPRepository::failure() const
     return _d->status;
 }
 
+    void HTTPRepoGetRequest::cancel()
+    {
+        _directory->repository()->http->cancelRequest(this, "Reposiotry cancelled");
+        _directory = 0;
+    }
+
     class FileGetRequest : public HTTPRepoGetRequest
     {
     public:
@@ -652,7 +654,7 @@ HTTPRepository::failure() const
                 file.reset(new SGFile(pathInRepo.str()));
                 if (!file->open(SG_IO_OUT)) {
                   SG_LOG(SG_TERRASYNC, SG_WARN, "unable to create file " << pathInRepo);
-                  abort("Unable to create output file");
+                  _directory->repository()->http->cancelRequest(this, "Unable to create output file");
                 }
 
                 sha1_init(&hashContext);