Fixed bug where whole drives could not be added as a backup path

This commit is contained in:
Martin Raiber 2012-02-13 02:06:59 +01:00
parent 7b18f9cfe7
commit 58f59cdcee

View File

@ -1446,6 +1446,29 @@ void ClientConnector::getBackupDirs(int version)
db->destroyAllQueries();
}
std::wstring removeChars(std::wstring in)
{
wchar_t illegalchars[] = {'*', ':', '/' , '\\'};
std::wstring ret;
for(size_t i=0;i<in.size();++i)
{
bool found=false;
for(size_t j=0;j<sizeof(illegalchars);++j)
{
if(illegalchars[j]==in[i])
{
found=true;
break;
}
}
if(!found)
{
ret+=in[i];
}
}
return ret;
}
bool ClientConnector::saveBackupDirs(str_map &args, bool server_default)
{
IDatabase *db=Server->getDatabase(Server->getThreadID(), URBACKUPDB_CLIENT);
@ -1475,6 +1498,8 @@ bool ClientConnector::saveBackupDirs(str_map &args, bool server_default)
else
name=ExtractFileName(dir);
name=removeChars(name);
if(dir[dir.size()-1]=='\\' || dir[dir.size()-1]=='/' )
dir.erase(dir.size()-1,1);