Commit 396a51b4 authored by msvensson@neptunus.(none)'s avatar msvensson@neptunus.(none)

Merge 192.168.0.20:mysql/mysql-5.0-maint

into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
parents 31be565d 116feb00
This diff is collapsed.
...@@ -626,6 +626,7 @@ struct Connection { ...@@ -626,6 +626,7 @@ struct Connection {
bool send_server_key_; // server key exchange? bool send_server_key_; // server key exchange?
bool master_clean_; // master secret clean? bool master_clean_; // master secret clean?
bool TLS_; // TLSv1 or greater bool TLS_; // TLSv1 or greater
bool sessionID_Set_; // do we have a session
ProtocolVersion version_; ProtocolVersion version_;
RandomPool& random_; RandomPool& random_;
......
...@@ -1172,7 +1172,8 @@ input_buffer& operator>>(input_buffer& input, ServerHello& hello) ...@@ -1172,7 +1172,8 @@ input_buffer& operator>>(input_buffer& input, ServerHello& hello)
// Session // Session
hello.id_len_ = input[AUTO]; hello.id_len_ = input[AUTO];
input.read(hello.session_id_, ID_LEN); if (hello.id_len_)
input.read(hello.session_id_, hello.id_len_);
// Suites // Suites
hello.cipher_suite_[0] = input[AUTO]; hello.cipher_suite_[0] = input[AUTO];
...@@ -1215,7 +1216,10 @@ void ServerHello::Process(input_buffer&, SSL& ssl) ...@@ -1215,7 +1216,10 @@ void ServerHello::Process(input_buffer&, SSL& ssl)
{ {
ssl.set_pending(cipher_suite_[1]); ssl.set_pending(cipher_suite_[1]);
ssl.set_random(random_, server_end); ssl.set_random(random_, server_end);
if (id_len_)
ssl.set_sessionID(session_id_); ssl.set_sessionID(session_id_);
else
ssl.useSecurity().use_connection().sessionID_Set_ = false;
if (ssl.getSecurity().get_resuming()) if (ssl.getSecurity().get_resuming())
if (memcmp(session_id_, ssl.getSecurity().get_resume().GetID(), if (memcmp(session_id_, ssl.getSecurity().get_resume().GetID(),
......
...@@ -709,6 +709,7 @@ void SSL::set_masterSecret(const opaque* sec) ...@@ -709,6 +709,7 @@ void SSL::set_masterSecret(const opaque* sec)
void SSL::set_sessionID(const opaque* sessionID) void SSL::set_sessionID(const opaque* sessionID)
{ {
memcpy(secure_.use_connection().sessionID_, sessionID, ID_LEN); memcpy(secure_.use_connection().sessionID_, sessionID, ID_LEN);
secure_.use_connection().sessionID_Set_ = true;
} }
...@@ -1423,8 +1424,10 @@ typedef Mutex::Lock Lock; ...@@ -1423,8 +1424,10 @@ typedef Mutex::Lock Lock;
void Sessions::add(const SSL& ssl) void Sessions::add(const SSL& ssl)
{ {
if (ssl.getSecurity().get_connection().sessionID_Set_) {
Lock guard(mutex_); Lock guard(mutex_);
list_.push_back(NEW_YS SSL_SESSION(ssl, random_)); list_.push_back(NEW_YS SSL_SESSION(ssl, random_));
}
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment