fix 350967, sr=mscott, problem adding smtp server if you already have a lot of smtp servers
git-svn-id: svn://10.0.0.236/trunk@218599 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
481be7d5f9
commit
35fc1a56c9
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user