diff options
| -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;  	}  | 
