Automatically pick port 443 for HTTPS
This commit is contained in:
committed by
Hamish Morrison
parent
4e607e1aae
commit
f00edeb7e3
@@ -23,6 +23,7 @@ class BAbstractSocket;
|
|||||||
class BUrlProtocolHttp : public BUrlProtocol {
|
class BUrlProtocolHttp : public BUrlProtocol {
|
||||||
public:
|
public:
|
||||||
BUrlProtocolHttp(BUrl& url, bool ssl = false,
|
BUrlProtocolHttp(BUrl& url, bool ssl = false,
|
||||||
|
const char *protocolName = "HTTP",
|
||||||
BUrlProtocolListener* listener = NULL,
|
BUrlProtocolListener* listener = NULL,
|
||||||
BUrlContext* context = NULL,
|
BUrlContext* context = NULL,
|
||||||
BUrlResult* result = NULL);
|
BUrlResult* result = NULL);
|
||||||
@@ -62,6 +63,7 @@ private:
|
|||||||
private:
|
private:
|
||||||
BAbstractSocket* fSocket;
|
BAbstractSocket* fSocket;
|
||||||
BNetworkAddress fRemoteAddr;
|
BNetworkAddress fRemoteAddr;
|
||||||
|
bool fSSL;
|
||||||
|
|
||||||
int8 fRequestMethod;
|
int8 fRequestMethod;
|
||||||
int8 fHttpVersion;
|
int8 fHttpVersion;
|
||||||
|
|||||||
@@ -32,10 +32,11 @@ static const char* kHttpProtocolThreadStrStatus[
|
|||||||
|
|
||||||
|
|
||||||
BUrlProtocolHttp::BUrlProtocolHttp(BUrl& url, bool ssl,
|
BUrlProtocolHttp::BUrlProtocolHttp(BUrl& url, bool ssl,
|
||||||
BUrlProtocolListener* listener, BUrlContext* context,
|
const char *protocolName, BUrlProtocolListener* listener,
|
||||||
BUrlResult* result)
|
BUrlContext* context, BUrlResult* result)
|
||||||
:
|
:
|
||||||
BUrlProtocol(url, listener, context, result, "BUrlProtocol.HTTP", "HTTP"),
|
BUrlProtocol(url, listener, context, result, "BUrlProtocol.HTTP", protocolName),
|
||||||
|
fSSL(ssl),
|
||||||
fRequestMethod(B_HTTP_GET),
|
fRequestMethod(B_HTTP_GET),
|
||||||
fHttpVersion(B_HTTP_11)
|
fHttpVersion(B_HTTP_11)
|
||||||
{
|
{
|
||||||
@@ -337,9 +338,13 @@ BUrlProtocolHttp::_ResolveHostName()
|
|||||||
|
|
||||||
if (fUrl.HasPort())
|
if (fUrl.HasPort())
|
||||||
fRemoteAddr = BNetworkAddress(fUrl.Host(), fUrl.Port());
|
fRemoteAddr = BNetworkAddress(fUrl.Host(), fUrl.Port());
|
||||||
else
|
else {
|
||||||
fRemoteAddr = BNetworkAddress(fUrl.Host(), 80);
|
if (fSSL)
|
||||||
|
fRemoteAddr = BNetworkAddress(fUrl.Host(), 443);
|
||||||
|
else
|
||||||
|
fRemoteAddr = BNetworkAddress(fUrl.Host(), 80);
|
||||||
|
}
|
||||||
|
|
||||||
if (fRemoteAddr.InitCheck() != B_OK)
|
if (fRemoteAddr.InitCheck() != B_OK)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|||||||
@@ -136,13 +136,13 @@ BUrlRequest::Identify()
|
|||||||
fUrlProtocol = NULL;
|
fUrlProtocol = NULL;
|
||||||
|
|
||||||
if (fUrl.Protocol() == "http") {
|
if (fUrl.Protocol() == "http") {
|
||||||
fUrlProtocol = new(std::nothrow) BUrlProtocolHttp(fUrl, false,
|
fUrlProtocol = new(std::nothrow) BUrlProtocolHttp(fUrl, false, "HTTP",
|
||||||
fListener, fContext,
|
fListener, fContext,
|
||||||
&fResult);
|
&fResult);
|
||||||
fReady = true;
|
fReady = true;
|
||||||
return B_OK;
|
return B_OK;
|
||||||
} else if (fUrl.Protocol() == "https") {
|
} else if (fUrl.Protocol() == "https") {
|
||||||
fUrlProtocol = new(std::nothrow) BUrlProtocolHttp(fUrl, true,
|
fUrlProtocol = new(std::nothrow) BUrlProtocolHttp(fUrl, true, "HTTPS",
|
||||||
fListener, fContext,
|
fListener, fContext,
|
||||||
&fResult);
|
&fResult);
|
||||||
fReady = true;
|
fReady = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user