Merge pull request #967 from csoler/v0.6.3

V0.6.3
This commit is contained in:
csoler 2017-07-29 23:16:47 +02:00 committed by GitHub
commit 09faa60005
12 changed files with 33 additions and 18 deletions

View file

@ -140,6 +140,8 @@ void RsPluginManager::loadPlugins(const std::vector<std::string>& plugin_directo
// 0 - get the list of files to read
bool first_time = (_accepted_hashes.empty()) && _rejected_hashes.empty() ;
for(uint32_t i=0;i<plugin_directories.size();++i)
{
librs::util::FolderIterator dirIt(plugin_directories[i],true);
@ -164,7 +166,7 @@ void RsPluginManager::loadPlugins(const std::vector<std::string>& plugin_directo
std::cerr << "Found plugin " << fullname << std::endl;
std::cerr << " Loading plugin..." << std::endl;
loadPlugin(fullname) ;
loadPlugin(fullname, first_time) ;
}
dirIt.closedir();
}
@ -262,7 +264,7 @@ bool RsPluginManager::loadPlugin(RsPlugin *p)
return true;
}
bool RsPluginManager::loadPlugin(const std::string& plugin_name)
bool RsPluginManager::loadPlugin(const std::string& plugin_name,bool first_time)
{
std::cerr << " Loading plugin " << plugin_name << std::endl;
@ -289,7 +291,7 @@ bool RsPluginManager::loadPlugin(const std::string& plugin_name)
if(!_allow_all_plugins)
{
if(_accepted_hashes.find(pinfo.file_hash) == _accepted_hashes.end() && _rejected_hashes.find(pinfo.file_hash) == _rejected_hashes.end() )
if(!RsServer::notify()->askForPluginConfirmation(pinfo.file_name,pinfo.file_hash.toStdString()))
if(!RsServer::notify()->askForPluginConfirmation(pinfo.file_name,pinfo.file_hash.toStdString(),first_time))
_rejected_hashes.insert(pinfo.file_hash) ; // accepted hashes are treated at the end, for security.
if(_rejected_hashes.find(pinfo.file_hash) != _rejected_hashes.end() )

View file

@ -106,7 +106,7 @@ class RsPluginManager: public RsPluginHandler, public p3Config
private:
bool loadPlugin(RsPlugin *) ;
bool loadPlugin(const std::string& shared_library_name) ;
bool loadPlugin(const std::string& shared_library_name, bool first_time) ;
RsFileHash hashPlugin(const std::string& shared_library_name) ;
std::vector<PluginInfo> _plugins ;

View file

@ -283,10 +283,10 @@ bool p3Notify::askForPassword (const std::string& title , c
return false ;
}
bool p3Notify::askForPluginConfirmation (const std::string& plugin_filename, const std::string& plugin_file_hash)
bool p3Notify::askForPluginConfirmation (const std::string& plugin_filename, const std::string& plugin_file_hash,bool first_time)
{
FOR_ALL_NOTIFY_CLIENTS
if( (*it)->askForPluginConfirmation(plugin_filename,plugin_file_hash))
if( (*it)->askForPluginConfirmation(plugin_filename,plugin_file_hash,first_time))
return true ;
return false ;

View file

@ -123,7 +123,7 @@ class p3Notify: public RsNotify
void notifyHistoryChanged (uint32_t /* msgId */, int /* type */) ;
bool askForPassword (const std::string& title, const std::string& /* key_details */, bool /* prev_is_bad */, std::string&, bool *cancelled /* password */ ) ;
bool askForPluginConfirmation (const std::string& /* plugin_filename */, const std::string& /* plugin_file_hash */) ;
bool askForPluginConfirmation (const std::string& /* plugin_filename */, const std::string& /* plugin_file_hash */,bool first_time) ;
virtual bool cachePgpPassphrase (const std::string& /* pgp_passphrase */) ;
virtual bool clearPgpPassphrase () ;

View file

@ -244,7 +244,7 @@ class NotifyClient
virtual void notifyHistoryChanged (uint32_t /* msgId */, int /* type */) {}
virtual bool askForPassword (const std::string& /* title */, const std::string& /* key_details */, bool /* prev_is_bad */, std::string& /* password */,bool& /* cancelled */ ) { return false ;}
virtual bool askForPluginConfirmation (const std::string& /* plugin_filename */, const std::string& /* plugin_file_hash */) { return false ;}
virtual bool askForPluginConfirmation (const std::string& /* plugin_filename */, const std::string& /* plugin_file_hash */,bool /* first_time */) { return false ;}
};
#endif