← Back to team overview

linuxdcpp-team team mailing list archive

[Bug 1010996] Re: ADC searches are not handled correctly

 

trying to make sense of the code, the following patch seems like it
could fix the sub-dir search issues to me; can you check? basically
change the list of strings to be passed to sub-dirs to "cur" (which is
either the main one or a modified one), perform the search then set it
back to "old" (the main term list).

=== modified file 'dcpp/ShareManager.cpp'
--- dcpp/ShareManager.cpp	2013-04-13 15:08:45 +0000
+++ dcpp/ShareManager.cpp	2013-07-30 18:25:42 +0000
@@ -1307,6 +1307,7 @@
 		}
 	}
 
+	aStrings.include = cur;
 	for(auto l = directories.begin(); (l != directories.end()) && (aResults.size() < maxResults); ++l) {
 		l->second->search(aResults, aStrings, maxResults);
 	}


** Changed in: dcplusplus
   Importance: Undecided => Critical

** Changed in: dcplusplus
       Status: New => Confirmed

-- 
You received this bug notification because you are a member of
Dcplusplus-team, which is subscribed to DC++.
https://bugs.launchpad.net/bugs/1010996

Title:
  ADC searches are not handled correctly

Status in DC++:
  Confirmed
Status in StrongDC++:
  New

Bug description:
  When responding to ADC searches, words found from upper level share
  directories are not removed from the search when searching from
  directories inside them (files in the same directory are handled
  correctly though). Due to this, the client doesn't send all search
  replies that it should.

  The problem has been fixed in AirDC++ 2.30 by removing
  "StringSearch::List* cur" from void
  ShareManager::Directory::search(SearchResultList& aResults, AdcSearch&
  aStrings, StringList::size_type maxResults) and using aStrings.include
  instead.

To manage notifications about this bug go to:
https://bugs.launchpad.net/dcplusplus/+bug/1010996/+subscriptions


References