diff options
| -rw-r--r-- | netfs/fuse/fuseApp.cpp | 21 | ||||
| -rw-r--r-- | netfs/fuse/fuseApp.h | 2 | 
2 files changed, 10 insertions, 13 deletions
diff --git a/netfs/fuse/fuseApp.cpp b/netfs/fuse/fuseApp.cpp index 3531f88..964f412 100644 --- a/netfs/fuse/fuseApp.cpp +++ b/netfs/fuse/fuseApp.cpp @@ -49,7 +49,12 @@ void *  NetFS::FuseApp::init(struct fuse_conn_info *)  {  	ic = Ice::initialize(_argc, _argv); -	fc = ReadConfiguration(configPath); +	auto fc = ReadConfiguration(configPath); +	auto e = fc->Resources.find(resourceName); +	if (e == fc->Resources.end()) { +		throw std::runtime_error("No such resource: " + resourceName); +	} +	fcr = e->second;  	return NULL;  } @@ -98,13 +103,9 @@ NetFS::FuseApp::connectToService()  {  	if (!service) {  		Lock(_lock); -		auto e = fc->Resources.find(resourceName); -		if (e == fc->Resources.end()) { -			throw std::runtime_error("No such resource: " + resourceName); -		} -		auto proxyAddr = e->second->ServiceIdentity; -		for (const auto & ep : e->second->Endpoints) { +		auto proxyAddr = fcr->ServiceIdentity; +		for (const auto & ep : fcr->Endpoints) {  			proxyAddr += ":" + ep;  		}  		service = NetFS::ServicePrx::checkedCast(ic->stringToProxy(proxyAddr)); @@ -118,11 +119,7 @@ void  NetFS::FuseApp::connectToVolume()  {  	if (!volume) { -		auto e = fc->Resources.find(resourceName); -		if (e == fc->Resources.end()) { -			throw std::runtime_error("No such export: " + resourceName); -		} -		volume = service->connect(e->second->ExportName, "bar"); +		volume = service->connect(fcr->ExportName, "bar");  		if (!volume) {  			throw std::runtime_error("Invalid filesystem proxy");  		} diff --git a/netfs/fuse/fuseApp.h b/netfs/fuse/fuseApp.h index 335a1c0..70dd335 100644 --- a/netfs/fuse/fuseApp.h +++ b/netfs/fuse/fuseApp.h @@ -99,7 +99,7 @@ namespace NetFS {  			int & _argc;  			char ** _argv;  			Ice::CommunicatorPtr ic; -			Client::ConfigurationPtr fc; +			Client::ResourcePtr fcr;  			mutable boost::shared_mutex _lock;  			NetFS::VolumePrx volume;  | 
