bug 302803, Changes to enabled SSL versions do not take immediate effect

r=nelson


git-svn-id: svn://10.0.0.236/trunk@218423 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
kaie%kuix.de
2007-01-16 06:10:51 +00:00
parent b6c36471e5
commit e7554c3b9f

View File

@@ -1980,6 +1980,7 @@ nsNSSComponent::Observe(nsISupports *aSubject, const char *aTopic,
}
else if (nsCRT::strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID) == 0) {
nsNSSShutDownPreventionLock locker;
PRBool clearSessionCache = PR_FALSE;
PRBool enabled;
NS_ConvertUTF16toUTF8 prefName(someData);
@@ -1987,12 +1988,15 @@ nsNSSComponent::Observe(nsISupports *aSubject, const char *aTopic,
mPrefBranch->GetBoolPref("security.enable_ssl2", &enabled);
SSL_OptionSetDefault(SSL_ENABLE_SSL2, enabled);
SSL_OptionSetDefault(SSL_V2_COMPATIBLE_HELLO, enabled);
clearSessionCache = PR_TRUE;
} else if (prefName.Equals("security.enable_ssl3")) {
mPrefBranch->GetBoolPref("security.enable_ssl3", &enabled);
SSL_OptionSetDefault(SSL_ENABLE_SSL3, enabled);
clearSessionCache = PR_TRUE;
} else if (prefName.Equals("security.enable_tls")) {
mPrefBranch->GetBoolPref("security.enable_tls", &enabled);
SSL_OptionSetDefault(SSL_ENABLE_TLS, enabled);
clearSessionCache = PR_TRUE;
} else if (prefName.Equals("security.OCSP.enabled")) {
setOCSPOptions(mPrefBranch);
} else {
@@ -2001,10 +2005,13 @@ nsNSSComponent::Observe(nsISupports *aSubject, const char *aTopic,
if (prefName.Equals(cp->pref)) {
mPrefBranch->GetBoolPref(cp->pref, &enabled);
SSL_CipherPrefSetDefault(cp->id, enabled);
clearSessionCache = PR_TRUE;
break;
}
}
}
if (clearSessionCache)
SSL_ClearSessionCache();
}
else if (nsCRT::strcmp(aTopic, PROFILE_CHANGE_NET_TEARDOWN_TOPIC) == 0) {
PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("receiving network teardown topic\n"));