diff --git a/retroshare-friendserver/src/retroshare-friendserver.cc b/retroshare-friendserver/src/retroshare-friendserver.cc index d80ad71d6..36b4dd2c2 100644 --- a/retroshare-friendserver/src/retroshare-friendserver.cc +++ b/retroshare-friendserver/src/retroshare-friendserver.cc @@ -47,17 +47,22 @@ int main(int argc, char* argv[]) //RsControl::earlyInitNotificationSystem(); std::string base_directory = "FSData"; + std::string tor_executable_path ; argstream as(argc,argv); as >> parameter( 'c',"base-dir", base_directory, "set base directory to store data files (keys, etc)", false ) - >> help( 'h', "help", "Display this Help" ); + >> parameter( 't',"tor-executable", tor_executable_path, "set absolute path for tor executable", false ) + >> help( 'h', "help", "Display this Help" ); as.defaultErrorHandling(true, true); RsConfigOptions conf; conf.main_executable_path = argv[0]; + if(!tor_executable_path.empty()) + RsTor::setTorExecutablePath(tor_executable_path); + RsInit::InitRsConfig(); RsInit::InitRetroShare(conf); @@ -68,6 +73,17 @@ int main(int argc, char* argv[]) RsErr() << "Cannot create base directory \"" << base_directory << "\". Check permissions, paths, etc." ; return 1; } + + // Check the existance of the Tor executable path + + if (!RsDirUtil::fileExists(RsTor::torExecutablePath())) + { + RsErr() << "Tor executable not found. Try supplying the full path for tor executable with the -t option."; + return 1; + } + else + RsDbg() << "Using Tor executable: \"" << RsTor::torExecutablePath() << "\""; + // Create/start TorManager RsTor::setTorDataDirectory(RsDirUtil::makePath(base_directory,"tor"));