Merge branch 'singleFileClient'

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1167 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
joss17 2009-05-05 13:32:59 +00:00
parent 5cd93b772d
commit 16231dea2b
3 changed files with 32 additions and 3 deletions

View File

@ -96,7 +96,11 @@ bool FileIndexMonitor::findLocalFile(std::string hash,
size = fe->size;
ok = true;
}
} else {
fullpath = fe->name;
size = fe->size;
ok = true;
}
#ifdef FIM_DEBUG
std::cerr << "FileIndexMonitor::findLocalFile() Found Path: " << fullpath << std::endl;
std::cerr << "FileIndexMonitor::findLocalFile() Found Size: " << size << std::endl;
@ -132,7 +136,13 @@ bool FileIndexMonitor::convertSharedFilePath(std::string path, std::string &f
std::cerr << "FileIndexMonitor::convertSharedFilePath() Found Path: " << fullpath << std::endl;
#endif
ok = true;
}
} else {
fullpath = path;
ok = true;
#ifdef FIM_DEBUG
std::cerr << "FileIndexMonitor::convertSharedFilePath() Found Path: " << fullpath << std::endl;
#endif
}
} fiMutex.unlock(); /* UNLOCKED DIRS */

View File

@ -757,6 +757,13 @@ int FileIndex::loadIndex(std::string filename, std::string expectedHash, uint64_
(it->second)->parent = root;
}
std::map<std::string, FileEntry *>::iterator it2;
for(it2 = root->files.begin();
it2 != root->files.end(); it2++)
{
(it2->second)->parent = root;
}
break;
}
/* pop stack */

View File

@ -336,7 +336,19 @@ int FileIndexStore::RequestDirDetails(void *ref, DirDetails &details, uint32_t f
else
{
/* NEW add path (to dir - if dir, or parent dir - if file? */
details.path = parent->path;
if (NULL != (person = dynamic_cast<PersonEntry *>(parent))) {
//if parent if root, then the path is inside the name; we should parse the name for the last / char
int i;
for(i = details.name.length(); (i > 0) && (details.name[i] != '/'); i--);
if (i != 0) {
//the file is in a subdir, let's remove the / char and set correct path
details.path = details.name.substr(0,i);
details.name = details.name.substr(i + 1);
}
} else {
details.path = parent->path;
}
while(parent->parent)
parent = parent->parent;