Fix some SVN errors/crashes.

This commit is contained in:
James Turner 2013-11-09 07:22:15 -08:00
parent c64776029e
commit e973e406a3
2 changed files with 10 additions and 3 deletions

View File

@ -417,15 +417,16 @@ public:
} else if (!strcmp(name, SVN_DAV_MD5_CHECKSUM)) {
// validate against (presumably) just written file
if (decodedFileMd5 != md5Sum) {
SG_LOG(SG_GENERAL, SG_INFO, "checksum fail on:" << currentPath);
fail(SVNRepository::SVN_ERROR_CHECKSUM);
}
} else if (!strcmp(name, SVN_OPEN_DIRECTORY_TAG)) {
currentDir->updateReportComplete();
if (currentDir->parent()) {
// pop the collection stack
currentDir = currentDir->parent();
}
currentDir->updateReportComplete();
currentPath = currentDir->fsPath();
} else {
// std::cout << "element:" << name;

View File

@ -136,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;
}
}
@ -163,6 +164,7 @@ namespace { // anonmouse
{
HTTP::Request::onFail();
_repo->propFindFailed(this, SVNRepository::SVN_ERROR_SOCKET);
_repo = NULL;
}
private:
@ -244,15 +246,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, _repo->p << ": 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;