Automatically pick port 443 for HTTPS

This commit is contained in:
Niels Sascha Reedijk
2013-02-07 18:06:45 +00:00
committed by Hamish Morrison
parent 4e607e1aae
commit f00edeb7e3
3 changed files with 15 additions and 8 deletions
+2
View File
@@ -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;
+11 -6
View File
@@ -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;
+2 -2
View File
@@ -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;