Fix a problem in the StartTLS extended operation processing that could cause
problems with clients due to a race condition. Previously, the success
response was sent to the client before TLS negotiation was started (because the
StartTLS response must be sent in the clear), and it was possible that if a
client was able to receive that response and send a subsequent TLS-protected
request before the was able to begin the TLS negotiation, then the server would
try to handle the client request as if it were in the clear and would not be
able to decode it. The server now prepares to perform the TLS negotiation
before sending the response to the client to eliminate that race condition.
OpenDS Issue Number: 725