diff --git a/libwvdrmengine/cdm/core/test/url_request.cpp b/libwvdrmengine/cdm/core/test/url_request.cpp index 58f99844..6e862a01 100644 --- a/libwvdrmengine/cdm/core/test/url_request.cpp +++ b/libwvdrmengine/cdm/core/test/url_request.cpp @@ -13,6 +13,7 @@ namespace wvcdm { namespace { +const int kMaxConnectAttempts = 3; const int kReadBufferSize = 1024; const int kConnectTimeoutMs = 15000; const int kWriteTimeoutMs = 12000; @@ -79,12 +80,14 @@ UrlRequest::UrlRequest(const std::string& url) UrlRequest::~UrlRequest() {} void UrlRequest::Reconnect() { - socket_.CloseSocket(); - if (socket_.Connect(kConnectTimeoutMs)) { - is_connected_ = true; - } else { - LOGE("failed to connect to %s, port=%d", socket_.domain_name().c_str(), - socket_.port()); + for(uint32_t i = 0; i < kMaxConnectAttempts && !is_connected_; ++i) { + socket_.CloseSocket(); + if (socket_.Connect(kConnectTimeoutMs)) { + is_connected_ = true; + } else { + LOGE("failed to connect to %s, port=%d", socket_.domain_name().c_str(), + socket_.port()); + } } }