Mailinglist Archive: zypp-commit (348 mails)

< Previous Next >
[zypp-commit] r9246 - in /trunk/libzypp/zypp: MediaSetAccess.cc ZYppCallbacks.h media/MediaCurl.cc media/MediaException.cc media/MediaException.h
  • From: jreidinger@xxxxxxxxxxxxxxxx
  • Date: Fri, 21 Mar 2008 11:35:31 -0000
  • Message-id: <20080321113531.C7A8F246BA@xxxxxxxxxxxxxxxx>
Author: jreidinger
Date: Fri Mar 21 12:35:31 2008
New Revision: 9246

URL: http://svn.opensuse.org/viewcvs/zypp?rev=9246&view=rev
Log:
add new error IO_SOFT to media request callback for temporary connection
problem.
add new media exception timeout when somethink fail due to exceed timeout
mediacurl throw timeout exception when timeouted
(bnc #328822)

Modified:
trunk/libzypp/zypp/MediaSetAccess.cc
trunk/libzypp/zypp/ZYppCallbacks.h
trunk/libzypp/zypp/media/MediaCurl.cc
trunk/libzypp/zypp/media/MediaException.cc
trunk/libzypp/zypp/media/MediaException.h

Modified: trunk/libzypp/zypp/MediaSetAccess.cc
URL:
http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/MediaSetAccess.cc?rev=9246&r1=9245&r2=9246&view=diff
==============================================================================
--- trunk/libzypp/zypp/MediaSetAccess.cc (original)
+++ trunk/libzypp/zypp/MediaSetAccess.cc Fri Mar 21 12:35:31 2008
@@ -141,6 +141,10 @@
{
reason = media::MediaChangeReport::WRONG;
}
+ else if( typeid(excp) == typeid( media::MediaTimeoutException))
+ {
+ reason = media::MediaChangeReport::IO_SOFT;
+ }

vector<string> devices;
unsigned int devindex;

Modified: trunk/libzypp/zypp/ZYppCallbacks.h
URL:
http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/ZYppCallbacks.h?rev=9246&r1=9245&r2=9246&view=diff
==============================================================================
--- trunk/libzypp/zypp/ZYppCallbacks.h (original)
+++ trunk/libzypp/zypp/ZYppCallbacks.h Fri Mar 21 12:35:31 2008
@@ -292,7 +292,8 @@
NOT_FOUND, // the medie not found at all
IO, // error accessing the media
INVALID, // media is broken
- WRONG // wrong media, need a different one
+ WRONG, // wrong media, need a different one
+ IO_SOFT /**< IO error which can happen on worse connection like
timeout exceed */
};

/**

Modified: trunk/libzypp/zypp/media/MediaCurl.cc
URL:
http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/media/MediaCurl.cc?rev=9246&r1=9245&r2=9246&view=diff
==============================================================================
--- trunk/libzypp/zypp/media/MediaCurl.cc (original)
+++ trunk/libzypp/zypp/media/MediaCurl.cc Fri Mar 21 12:35:31 2008
@@ -1078,7 +1078,9 @@
err = "Write error";
break;
case CURLE_ABORTED_BY_CALLBACK:
+ case CURLE_OPERATION_TIMEOUTED:
err = "Timeout reached";
+ ZYPP_THROW(MediaTimeoutException(url));
break;
case CURLE_SSL_PEER_CERTIFICATE:
default:
@@ -1295,9 +1297,11 @@
err = "Write error";
break;
case CURLE_ABORTED_BY_CALLBACK:
+ case CURLE_OPERATION_TIMEDOUT:
if( progressData.reached)
{
err = "Timeout reached";
+ ZYPP_THROW(MediaTimeoutException(url));
}
else
{

Modified: trunk/libzypp/zypp/media/MediaException.cc
URL:
http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/media/MediaException.cc?rev=9246&r1=9245&r2=9246&view=diff
==============================================================================
--- trunk/libzypp/zypp/media/MediaException.cc (original)
+++ trunk/libzypp/zypp/media/MediaException.cc Fri Mar 21 12:35:31 2008
@@ -201,6 +201,12 @@
return str << _msg << endl;
}

+ std::ostream & MediaTimeoutException::dumpOn( std::ostream & str ) const
+ {
+ if (_msg.empty())
+ return str << form(_("Timeout exceed when access '%s'."),
_url.c_str()) << endl;
+ return str << _msg << endl;
+ }
/////////////////////////////////////////////////////////////////
} // namespace media
} // namespace zypp

Modified: trunk/libzypp/zypp/media/MediaException.h
URL:
http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/media/MediaException.h?rev=9246&r1=9245&r2=9246&view=diff
==============================================================================
--- trunk/libzypp/zypp/media/MediaException.h (original)
+++ trunk/libzypp/zypp/media/MediaException.h Fri Mar 21 12:35:31 2008
@@ -471,6 +471,20 @@
std::string _msg;
};

+ class MediaTimeoutException : public MediaException
+ {
+ public:
+ MediaTimeoutException(const Url & url_r, const std::string & msg =
"Timeout exceed")
+ : MediaException(msg)
+ , _url(url_r.asString()), _msg(msg)
+ {}
+ virtual ~MediaTimeoutException() throw() {};
+ protected:
+ virtual std::ostream & dumpOn( std::ostream & str ) const;
+ std::string _url;
+ std::string _msg;
+ };
+
/////////////////////////////////////////////////////////////////
} // namespace media
} // namespace zypp

--
To unsubscribe, e-mail: zypp-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages