From 841395f3321763368ad64d70e3835be33c92a845 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 15 Oct 2012 23:26:51 +0900 Subject: [PATCH] Perform SSL/TLS handshake after checking whether connection is established --- src/HttpRequestCommand.cc | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/HttpRequestCommand.cc b/src/HttpRequestCommand.cc index 0a3f0375..e9e1f430 100644 --- a/src/HttpRequestCommand.cc +++ b/src/HttpRequestCommand.cc @@ -122,21 +122,20 @@ createHttpRequest(const SharedHandle& req, bool HttpRequestCommand::executeInternal() { //socket->setBlockingMode(); - if(getRequest()->getProtocol() == "https") { - if(!getSocket()->tlsConnect(getRequest()->getHost())) { - setReadCheckSocketIf(getSocket(), getSocket()->wantRead()); - setWriteCheckSocketIf(getSocket(), getSocket()->wantWrite()); - getDownloadEngine()->addCommand(this); - return false; - } - } if(httpConnection_->sendBufferIsEmpty()) { if(!checkIfConnectionEstablished (getSocket(), getRequest()->getConnectedHostname(), getRequest()->getConnectedAddr(), getRequest()->getConnectedPort())) { return true; } - + if(getRequest()->getProtocol() == "https") { + if(!getSocket()->tlsConnect(getRequest()->getHost())) { + setReadCheckSocketIf(getSocket(), getSocket()->wantRead()); + setWriteCheckSocketIf(getSocket(), getSocket()->wantWrite()); + getDownloadEngine()->addCommand(this); + return false; + } + } if(getSegments().empty()) { SharedHandle httpRequest (createHttpRequest(getRequest(),