diff options
| author | Dan Goodliffe <dan@randomdan.homeip.net> | 2015-08-12 01:49:26 +0100 | 
|---|---|---|
| committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2015-08-12 01:49:26 +0100 | 
| commit | 9fa8bbdb38c934569433b0836c73e36f5b254de7 (patch) | |
| tree | 715bc19472053fa0daf406114c092302f7ae9ce6 | |
| parent | Write client logs to syslog instead of stderr (/dev/null) (diff) | |
| download | netfs-9fa8bbdb38c934569433b0836c73e36f5b254de7.tar.bz2 netfs-9fa8bbdb38c934569433b0836c73e36f5b254de7.tar.xz netfs-9fa8bbdb38c934569433b0836c73e36f5b254de7.zip | |
Improve error handling around ICE exceptions
| -rw-r--r-- | netfs/fuse/fuseApp.cpp | 9 | 
1 files changed, 8 insertions, 1 deletions
| diff --git a/netfs/fuse/fuseApp.cpp b/netfs/fuse/fuseApp.cpp index 133860a..bc5caf0 100644 --- a/netfs/fuse/fuseApp.cpp +++ b/netfs/fuse/fuseApp.cpp @@ -180,7 +180,8 @@ NetFS::FuseApp::verifyConnection()  int  NetFS::FuseApp::onError(const std::exception & e) throw()  { -	if (dynamic_cast<const Ice::ObjectNotExistException *>(&e)) { +	if (dynamic_cast<const Ice::SocketException *>(&e) || dynamic_cast<const Ice::TimeoutException *>(&e)) { +		log(LOG_ERR, e.what());  		verifyConnection();  		connectSession();  		connectToService(); @@ -188,6 +189,12 @@ NetFS::FuseApp::onError(const std::exception & e) throw()  		connectHandles();  		return 0;  	} +	if (dynamic_cast<const Ice::RequestFailedException *>(&e)) { +		volume = NULL; +		connectToVolume(); +		connectHandles(); +		return 0; +	}  	if (dynamic_cast<const NetFS::AuthError *>(&e)) {  		return -EPERM;  	} | 
