From bd37e78884ccac9957f3441aea56823c91cb31bc Mon Sep 17 00:00:00 2001 From: csoler Date: Fri, 2 Nov 2012 14:25:35 +0000 Subject: [PATCH] debugged search functions git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-FileSharingPermissions@5760 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- libretroshare/src/dbase/fimonitor.cc | 30 +++++++++++++++++----------- libretroshare/src/ft/ftdbase.cc | 3 +-- libretroshare/src/ft/ftserver.cc | 10 ++++++++-- 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/libretroshare/src/dbase/fimonitor.cc b/libretroshare/src/dbase/fimonitor.cc index 3c11ddd25..7067cfa4f 100644 --- a/libretroshare/src/dbase/fimonitor.cc +++ b/libretroshare/src/dbase/fimonitor.cc @@ -306,24 +306,30 @@ int FileIndexMonitor::filterResults(std::list& firesults,std::listname << ", flags=" << cdetails.flags ; + std::cerr << "Filtering candidate " << (*rit)->name << ", flags=" << cdetails.flags << ", peer=" << peer_id ; #endif - FileSearchFlags permission_flags = rsPeers->computePeerPermissionFlags(peer_id,cdetails.flags,cdetails.parent_groups) ; - - if (cdetails.type == DIR_TYPE_FILE && ( permission_flags & flags )) + if(!peer_id.empty()) { - cdetails.id = "Local"; - results.push_back(cdetails); + FileSearchFlags permission_flags = rsPeers->computePeerPermissionFlags(peer_id,cdetails.flags,cdetails.parent_groups) ; + + if (cdetails.type == DIR_TYPE_FILE && ( permission_flags & flags )) + { + cdetails.id = "Local"; + results.push_back(cdetails); #ifdef FIM_DEBUG - std::cerr << ": kept" << std::endl ; + std::cerr << ": kept" << std::endl ; +#endif + } +#ifdef FIM_DEBUG + else + std::cerr << ": discarded" << std::endl ; #endif } -#ifdef FIM_DEBUG else - std::cerr << ": discarded" << std::endl ; -#endif + results.push_back(cdetails); } + return !results.empty() ; } @@ -356,10 +362,10 @@ bool FileIndexMonitor::findLocalFile(std::string hash,FileSearchFlags hint_flags FileSearchFlags shflh = rsPeers->computePeerPermissionFlags(peer_id,share_flags,parent_groups) ; #ifdef FIM_DEBUG - std::cerr << "FileIndexMonitor::findLocalFile: Filtering candidate " << fe->name << ", flags=" << share_flags << ", hint_flags=" << hint_flags << std::endl ; + std::cerr << "FileIndexMonitor::findLocalFile: Filtering candidate " << fe->name << ", flags=" << share_flags << ", hint_flags=" << hint_flags << ", peer_id = " << peer_id << std::endl ; #endif - if(shflh & hint_flags) + if(peer_id.empty() || (shflh & hint_flags)) { #ifdef FIM_DEBUG std::cerr << "FileIndexMonitor::findLocalFile() Found Name: " << fe->name << std::endl; diff --git a/libretroshare/src/ft/ftdbase.cc b/libretroshare/src/ft/ftdbase.cc index 280c4f356..adcdfd3d0 100644 --- a/libretroshare/src/ft/ftdbase.cc +++ b/libretroshare/src/ft/ftdbase.cc @@ -130,8 +130,7 @@ ftFiMonitor::ftFiMonitor(CacheStrapper *cs,NotifyBase *cb_in, std::string cached bool ftFiMonitor::search(const std::string &hash, FileSearchFlags hintflags, FileInfo &info) const { - std::cerr << "(EE) ********* ftFiMonitor expects a peer id in search()!" << std::endl; - return false ; + return search(hash,hintflags,"",info) ; } bool ftFiMonitor::search(const std::string &hash, FileSearchFlags hintflags, const std::string& peer_id,FileInfo &info) const { diff --git a/libretroshare/src/ft/ftserver.cc b/libretroshare/src/ft/ftserver.cc index 0a779c353..ce935e081 100644 --- a/libretroshare/src/ft/ftserver.cc +++ b/libretroshare/src/ft/ftserver.cc @@ -542,7 +542,10 @@ uint32_t ftServer::getType(void *ref, FileSearchFlags flags) int ftServer::SearchKeywords(std::list keywords, std::list &results,FileSearchFlags flags) { - std::cerr << "(WW) ********* ftServer::SearchBoolExp:: called without peer id" << std::endl; + if(flags & RS_FILE_HINTS_LOCAL) + return mFiMon->SearchKeywords(keywords, results,flags,""); + else + return mFiStore->SearchKeywords(keywords, results,flags); return 0 ; } int ftServer::SearchKeywords(std::list keywords, std::list &results,FileSearchFlags flags,const std::string& peer_id) @@ -566,7 +569,10 @@ int ftServer::SearchKeywords(std::list keywords, std::list &results,FileSearchFlags flags) { - std::cerr << "(WW) ********* ftServer::SearchBoolExp:: called without peer id" << std::endl; + if(flags & RS_FILE_HINTS_LOCAL) + return mFiMon->SearchBoolExp(exp,results,flags,"") ; + else + return mFiStore->searchBoolExp(exp, results); return 0 ; } int ftServer::SearchBoolExp(Expression * exp, std::list &results,FileSearchFlags flags,const std::string& peer_id)