summaryrefslogtreecommitdiff
path: root/src/HttpRequestCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-10-15 23:26:51 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-10-15 23:26:51 +0900
commit841395f3321763368ad64d70e3835be33c92a845 (patch)
treea24214ef93c987ffb4026d5832e6d7659039a19c /src/HttpRequestCommand.cc
parentc904aa50fedd354937cb1dc29044712404c0c785 (diff)
Perform SSL/TLS handshake after checking whether connection is established
Diffstat (limited to 'src/HttpRequestCommand.cc')
-rw-r--r--src/HttpRequestCommand.cc17
1 files 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<Request>& 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> httpRequest
(createHttpRequest(getRequest(),