]> git.mxchange.org Git - simgear.git/blobdiff - simgear/io/SVNRepository.cxx
SGPath: fix creating paths with permission checker.
[simgear.git] / simgear / io / SVNRepository.cxx
index a896b3e9d8e0886f07d16f87b3dcd78c47c002be..39114b1f172d93de878cfa39251bbd0569f583a6 100644 (file)
@@ -73,7 +73,8 @@ public:
     
     void updateFailed(HTTP::Request* req, SVNRepository::ResultCode err)
     {
-        SG_LOG(SG_IO, SG_WARN, "SVN: failed to update from:" << req->url());
+        SG_LOG(SG_IO, SG_WARN, "SVN: failed to update from:" << req->url()
+            << "\n(repository:" << p->baseUrl() << ")");
         isUpdating = false;
         status = err;
     }
@@ -135,6 +136,7 @@ namespace { // anonmouse
             SG_LOG(SG_IO, SG_WARN, "request for:" << url() << 
                 " return code " << responseCode());
             _repo->propFindFailed(this, SVNRepository::SVN_ERROR_SOCKET);
+            _repo = NULL;
         }
       }
   
@@ -161,7 +163,10 @@ namespace { // anonmouse
         virtual void onFail()
         {
             HTTP::Request::onFail();
-            _repo->propFindFailed(this, SVNRepository::SVN_ERROR_SOCKET);
+                       if (_repo) {
+                               _repo->propFindFailed(this, SVNRepository::SVN_ERROR_SOCKET);
+                               _repo = NULL;
+                       }
         }
         
     private:
@@ -224,8 +229,8 @@ protected:
         _failed = true;
     } else {
         SG_LOG(SG_IO, SG_WARN, "SVN: request for:" << url() <<
-        " return code " << responseCode());
-        _repo->updateFailed(this, SVNRepository::SVN_ERROR_SOCKET);
+        " got HTTP status " << responseCode());
+        _repo->updateFailed(this, SVNRepository::SVN_ERROR_HTTP);
         _failed = true;
     }
   }
@@ -243,15 +248,19 @@ protected:
     SVNRepository::ResultCode err = _parser.parseXML(s, n);
     if (err) {
         _failed = true;
-        SG_LOG(SG_IO, SG_WARN, "SVN: request for:" << url() << " failed:" << err);
+        SG_LOG(SG_IO, SG_WARN, this << ": SVN: request for:" << url() << " failed:" << err);
         _repo->updateFailed(this, err);
+        _repo = NULL;
     }
   }
 
     virtual void onFail()
     {
         HTTP::Request::onFail();
-        _repo->updateFailed(this, SVNRepository::SVN_ERROR_SOCKET);
+        if (_repo) {
+            _repo->updateFailed(this, SVNRepository::SVN_ERROR_SOCKET);
+            _repo = NULL;
+        }
     }
 private:
   SVNReportParser _parser;