fix 350967, sr=mscott, problem adding smtp server if you already have a lot of smtp servers

This commit is contained in:
bienvenu%nventure.com 2007-01-18 18:12:53 +00:00
Родитель 4467dd33a3
Коммит 5cc2ed165c
1 изменённых файлов: 12 добавлений и 12 удалений

Просмотреть файл

@ -402,29 +402,24 @@ nsSmtpService::loadSmtpServers()
// Tokenize the data and add each smtp server if it is not already there
// in the user's current smtp server list
char *tempSmtpServerStr;
char *tempSmtpServersStr = nsCRT::strdup(tempServerList.get());
char *tempToken = nsCRT::strtok(tempSmtpServersStr, SERVER_DELIMITER, &tempSmtpServerStr);
nsCStringArray servers;
servers.ParseString(tempServerList.get(), SERVER_DELIMITER);
nsCAutoString tempSmtpServer;
while (tempToken) {
if (*tempToken) {
if (serverList.IsEmpty() || !strstr(serverList.get(), tempToken)) {
tempSmtpServer.Assign(tempToken);
for (PRInt32 i = 0; i < servers.Count(); i++)
{
if (servers.IndexOf(* (servers[i])) == i) {
tempSmtpServer.Assign(* (servers[i]));
tempSmtpServer.StripWhitespace();
if (!serverList.IsEmpty())
serverList += SERVER_DELIMITER;
serverList += tempSmtpServer;
}
}
tempToken = nsCRT::strtok(tempSmtpServerStr, SERVER_DELIMITER, &tempSmtpServerStr);
}
nsCRT::free(tempSmtpServersStr);
}
else {
serverList = tempServerList;
}
// We need to check if we have any pre-configured smtp servers so that
// those servers can be appended to the list.
nsXPIDLCString appendServerList;
@ -720,6 +715,11 @@ nsSmtpService::GetServerByKey(const char* aKey, nsISmtpServer **aResult)
{
NS_ENSURE_ARG_POINTER(aResult);
if (!aKey || !*aKey)
{
NS_ASSERTION(PR_FALSE, "bad key");
return NS_ERROR_FAILURE;
}
findServerByKeyEntry entry;
entry.key = aKey;
entry.server = nsnull;