Skip to content
This repository has been archived by the owner on May 5, 2023. It is now read-only.

Commit

Permalink
Improving port defaulting code.
Browse files Browse the repository at this point in the history
  • Loading branch information
Andre Rodrigues committed Oct 14, 2012
1 parent 89d4261 commit 4090ee1
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 60 deletions.
26 changes: 2 additions & 24 deletions lib/services/core/servicebussettings.js
Expand Up @@ -48,32 +48,10 @@ var validKeys = [
*/ */
function ServiceBusSettings(serviceBusEndpointUri, wrapEndpointUri, namespace, wrapName, wrapPassword) { function ServiceBusSettings(serviceBusEndpointUri, wrapEndpointUri, namespace, wrapName, wrapPassword) {
this._namespace = namespace; this._namespace = namespace;

this._serviceBusEndpointUri = serviceBusEndpointUri;
var parsedServiceBusEndpointUri = url.parse(serviceBusEndpointUri);
if (parsedServiceBusEndpointUri.protocol === 'https:' &&
!parsedServiceBusEndpointUri.port) {
parsedServiceBusEndpointUri.port = 443;
}

this._serviceBusEndpointUri = url.format({
protocol: parsedServiceBusEndpointUri.protocol,
port: parsedServiceBusEndpointUri.port,
hostname: parsedServiceBusEndpointUri.hostname
});


if (wrapEndpointUri) { if (wrapEndpointUri) {
var parsedWrapEndpointUri = url.parse(wrapEndpointUri); this._wrapEndpointUri = wrapEndpointUri;
if (parsedWrapEndpointUri.protocol === 'https:' &&
!parsedWrapEndpointUri.port) {
parsedWrapEndpointUri.port = 443;
}

this._wrapEndpointUri = url.format({
protocol: parsedWrapEndpointUri.protocol,
port: parsedWrapEndpointUri.port,
hostname: parsedWrapEndpointUri.hostname,
path: parsedWrapEndpointUri.path
});
} else { } else {
this._wrapEndpointUri = 'https://' + namespace + '-sb.accesscontrol.windows.net:443/WRAPv0.9'; this._wrapEndpointUri = 'https://' + namespace + '-sb.accesscontrol.windows.net:443/WRAPv0.9';
} }
Expand Down
17 changes: 10 additions & 7 deletions lib/services/core/serviceclient.js
Expand Up @@ -108,7 +108,15 @@ function ServiceClient(host, authenticationProvider) {
if (host) { if (host) {
var parsedHost = ServiceClient._parseHost(host); var parsedHost = ServiceClient._parseHost(host);
this.host = parsedHost.hostname; this.host = parsedHost.hostname;
this.port = parsedHost.port;
if (parsedHost.port) {
this.port = parsedHost.port;
} else if (parsedHost.protocol === 'https:') {
this.port = 443;
} else {
this.port = 80;
}

if (!this.protocol) { if (!this.protocol) {
this.protocol = parsedHost.protocol + '//'; this.protocol = parsedHost.protocol + '//';
} }
Expand Down Expand Up @@ -385,12 +393,7 @@ ServiceClient._parseHost = function (host) {
fullHost = ServiceClient.DEFAULT_PROTOCOL + fullHost; fullHost = ServiceClient.DEFAULT_PROTOCOL + fullHost;
} }


var parsedUrl = url.parse(fullHost); return url.parse(fullHost);
if (!parsedUrl.port) {
parsedUrl.port = ServiceClient.DEFAULT_PORT;
}

return parsedUrl;
}; };


/* /*
Expand Down
7 changes: 1 addition & 6 deletions lib/services/core/storageserviceclient.js
Expand Up @@ -117,12 +117,7 @@ StorageServiceClient._getStorageSettingsExplicitOrEnvironment = function (storag


if (host) { if (host) {
var parsedHost = ServiceClient._parseHost(host); var parsedHost = ServiceClient._parseHost(host);
if (parsedHost.protocol === 'https:' && var parsedHostUrl = url.format(parsedHost);
!parsedHost.port) {
parsedHost.port = 443;
}

var parsedHostUrl = url.format({ protocol: parsedHost.protocol, port: parsedHost.port, hostname: parsedHost.hostname });
if (parsedHostUrl === url.format(ServiceClient._parseHost(ServiceClient.DEVSTORE_BLOB_HOST)) || if (parsedHostUrl === url.format(ServiceClient._parseHost(ServiceClient.DEVSTORE_BLOB_HOST)) ||
parsedHostUrl === url.format(ServiceClient._parseHost(ServiceClient.DEVSTORE_TABLE_HOST)) || parsedHostUrl === url.format(ServiceClient._parseHost(ServiceClient.DEVSTORE_TABLE_HOST)) ||
parsedHostUrl === url.format(ServiceClient._parseHost(ServiceClient.DEVSTORE_QUEUE_HOST))) { parsedHostUrl === url.format(ServiceClient._parseHost(ServiceClient.DEVSTORE_QUEUE_HOST))) {
Expand Down
8 changes: 2 additions & 6 deletions lib/services/core/storageservicesettings.js
Expand Up @@ -71,6 +71,7 @@ var validKeys = [
function StorageServiceSettings(name, key, blobEndpointUri, queueEndpointUri, tableEndpointUri, usePathStyleUri) { function StorageServiceSettings(name, key, blobEndpointUri, queueEndpointUri, tableEndpointUri, usePathStyleUri) {
this._name = name; this._name = name;
this._key = key; this._key = key;

this._blobEndpointUri = blobEndpointUri; this._blobEndpointUri = blobEndpointUri;
this._queueEndpointUri = queueEndpointUri; this._queueEndpointUri = queueEndpointUri;
this._tableEndpointUri = tableEndpointUri; this._tableEndpointUri = tableEndpointUri;
Expand Down Expand Up @@ -144,12 +145,7 @@ StorageServiceSettings._getDefaultServiceEndpoint = function (settings, dns) {
settings settings
); );


var port = '80'; return url.format({ protocol: scheme, hostname: accountName + '.' + dns });
if (scheme.toLowerCase() === 'https') {
port = '443';
}

return url.format({ protocol: scheme, hostname: accountName + '.' + dns, port: port });
}; };




Expand Down
4 changes: 2 additions & 2 deletions test/services/core/servicebussettings-tests.js
Expand Up @@ -37,7 +37,7 @@ suite('servicebussettings-tests', function () {


// Assert // Assert
actual._namespace.should.equal(expectedNamespace); actual._namespace.should.equal(expectedNamespace);
actual._serviceBusEndpointUri.should.equal(expectedServiceBusEndpoint + ':443'); actual._serviceBusEndpointUri.should.equal(expectedServiceBusEndpoint);
actual._wrapName.should.equal(expectedWrapName); actual._wrapName.should.equal(expectedWrapName);
actual._wrapPassword.should.equal(expectedWrapPassword); actual._wrapPassword.should.equal(expectedWrapPassword);
actual._wrapEndpointUri.should.equal(expectedWrapEndpointUri); actual._wrapEndpointUri.should.equal(expectedWrapEndpointUri);
Expand Down Expand Up @@ -78,7 +78,7 @@ suite('servicebussettings-tests', function () {


// Assert // Assert
actual._namespace.should.equal(expectedNamespace); actual._namespace.should.equal(expectedNamespace);
actual._serviceBusEndpointUri.should.equal(expectedServiceBusEndpoint + ':443'); actual._serviceBusEndpointUri.should.equal(expectedServiceBusEndpoint);
actual._wrapName.should.equal(expectedWrapName); actual._wrapName.should.equal(expectedWrapName);
actual._wrapPassword.should.equal(expectedWrapPassword); actual._wrapPassword.should.equal(expectedWrapPassword);
actual._wrapEndpointUri.should.equal(expectedWrapEndpointUri); actual._wrapEndpointUri.should.equal(expectedWrapEndpointUri);
Expand Down
26 changes: 13 additions & 13 deletions test/services/core/storageservicesettings-tests.js
Expand Up @@ -105,9 +105,9 @@ suite('storageservicesettings-tests', function () {
// Assert // Assert
actual._name.should.equal(expectedName); actual._name.should.equal(expectedName);
actual._key.should.equal(expectedKey); actual._key.should.equal(expectedKey);
actual._blobEndpointUri.should.equal(expectedBlobEndpoint + ':443'); actual._blobEndpointUri.should.equal(expectedBlobEndpoint);
actual._queueEndpointUri.should.equal(expectedQueueEndpoint + ':443'); actual._queueEndpointUri.should.equal(expectedQueueEndpoint);
actual._tableEndpointUri.should.equal(expectedTableEndpoint + ':443'); actual._tableEndpointUri.should.equal(expectedTableEndpoint);
}); });


test('testCreateFromConnectionStringWithTableEndpointSpecified', function () { test('testCreateFromConnectionStringWithTableEndpointSpecified', function () {
Expand All @@ -126,8 +126,8 @@ suite('storageservicesettings-tests', function () {
// Assert // Assert
actual._name.should.equal(expectedName); actual._name.should.equal(expectedName);
actual._key.should.equal(expectedKey); actual._key.should.equal(expectedKey);
actual._blobEndpointUri.should.equal(expectedBlobEndpoint + ':443'); actual._blobEndpointUri.should.equal(expectedBlobEndpoint);
actual._queueEndpointUri.should.equal(expectedQueueEndpoint + ':443'); actual._queueEndpointUri.should.equal(expectedQueueEndpoint);
actual._tableEndpointUri.should.equal(expectedTableEndpoint); actual._tableEndpointUri.should.equal(expectedTableEndpoint);
}); });


Expand All @@ -148,8 +148,8 @@ suite('storageservicesettings-tests', function () {
actual._name.should.equal(expectedName); actual._name.should.equal(expectedName);
actual._key.should.equal(expectedKey); actual._key.should.equal(expectedKey);
actual._blobEndpointUri.should.equal(expectedBlobEndpoint); actual._blobEndpointUri.should.equal(expectedBlobEndpoint);
actual._queueEndpointUri.should.equal(expectedQueueEndpoint + ':443'); actual._queueEndpointUri.should.equal(expectedQueueEndpoint);
actual._tableEndpointUri.should.equal(expectedTableEndpoint + ':443'); actual._tableEndpointUri.should.equal(expectedTableEndpoint);
}); });


test('testCreateFromConnectionStringWithQueueEndpointSpecified', function () { test('testCreateFromConnectionStringWithQueueEndpointSpecified', function () {
Expand All @@ -168,9 +168,9 @@ suite('storageservicesettings-tests', function () {
// Assert // Assert
actual._name.should.equal(expectedName); actual._name.should.equal(expectedName);
actual._key.should.equal(expectedKey); actual._key.should.equal(expectedKey);
actual._blobEndpointUri.should.equal(expectedBlobEndpoint + ':443'); actual._blobEndpointUri.should.equal(expectedBlobEndpoint);
actual._queueEndpointUri.should.equal(expectedQueueEndpoint); actual._queueEndpointUri.should.equal(expectedQueueEndpoint);
actual._tableEndpointUri.should.equal(expectedTableEndpoint + ':443'); actual._tableEndpointUri.should.equal(expectedTableEndpoint);
}); });


test('testCreateFromConnectionStringWithQueueAndBlobEndpointSpecified', function () { test('testCreateFromConnectionStringWithQueueAndBlobEndpointSpecified', function () {
Expand All @@ -191,7 +191,7 @@ suite('storageservicesettings-tests', function () {
actual._key.should.equal(expectedKey); actual._key.should.equal(expectedKey);
actual._blobEndpointUri.should.equal(expectedBlobEndpoint); actual._blobEndpointUri.should.equal(expectedBlobEndpoint);
actual._queueEndpointUri.should.equal(expectedQueueEndpoint); actual._queueEndpointUri.should.equal(expectedQueueEndpoint);
actual._tableEndpointUri.should.equal(expectedTableEndpoint + ':443'); actual._tableEndpointUri.should.equal(expectedTableEndpoint);
}); });


test('testCreateFromConnectionStringWithAutomaticMissingProtocolFail', function () { test('testCreateFromConnectionStringWithAutomaticMissingProtocolFail', function () {
Expand Down Expand Up @@ -292,9 +292,9 @@ suite('storageservicesettings-tests', function () {
// Assert // Assert
actual._name.should.equal(expectedName); actual._name.should.equal(expectedName);
actual._key.should.equal(expectedKey); actual._key.should.equal(expectedKey);
actual._blobEndpointUri.should.equal(expectedBlobEndpoint + ':443'); actual._blobEndpointUri.should.equal(expectedBlobEndpoint);
actual._queueEndpointUri.should.equal(expectedQueueEndpoint + ':443'); actual._queueEndpointUri.should.equal(expectedQueueEndpoint);
actual._tableEndpointUri.should.equal(expectedTableEndpoint + ':443'); actual._tableEndpointUri.should.equal(expectedTableEndpoint);
}); });


test('getDevelopmentStorageAccount', function () { test('getDevelopmentStorageAccount', function () {
Expand Down
4 changes: 2 additions & 2 deletions test/services/serviceBus/servicebusservice-tests.js
Expand Up @@ -1630,7 +1630,7 @@ suite('servicebusservice-tests', function () {
assert.equal(err, null); assert.equal(err, null);


assert.equal(serviceBusService.host, process.env[ServiceClient.EnvironmentVariables.AZURE_SERVICEBUS_NAMESPACE] + '.servicebus.windows.net'); assert.equal(serviceBusService.host, process.env[ServiceClient.EnvironmentVariables.AZURE_SERVICEBUS_NAMESPACE] + '.servicebus.windows.net');
assert.equal(serviceBusService.port, '80'); assert.equal(serviceBusService.port, 80);
assert.equal(serviceBusService.authenticationProvider.issuer, 'owner'); assert.equal(serviceBusService.authenticationProvider.issuer, 'owner');
assert.equal(serviceBusService.authenticationProvider.accessKey, expectedKey); assert.equal(serviceBusService.authenticationProvider.accessKey, expectedKey);
assert.equal(serviceBusService.authenticationProvider.acsHost, 'https://' + process.env[ServiceClient.EnvironmentVariables.AZURE_SERVICEBUS_NAMESPACE] + '-sb.accesscontrol.windows.net:443'); assert.equal(serviceBusService.authenticationProvider.acsHost, 'https://' + process.env[ServiceClient.EnvironmentVariables.AZURE_SERVICEBUS_NAMESPACE] + '-sb.accesscontrol.windows.net:443');
Expand All @@ -1649,7 +1649,7 @@ suite('servicebusservice-tests', function () {
assert.equal(err, null); assert.equal(err, null);


assert.equal(serviceBusService.host, process.env[ServiceClient.EnvironmentVariables.AZURE_SERVICEBUS_NAMESPACE] + '.servicebus.windows.net'); assert.equal(serviceBusService.host, process.env[ServiceClient.EnvironmentVariables.AZURE_SERVICEBUS_NAMESPACE] + '.servicebus.windows.net');
assert.equal(serviceBusService.port, '443'); assert.equal(serviceBusService.port, 443);
assert.equal(serviceBusService.authenticationProvider.issuer, 'owner'); assert.equal(serviceBusService.authenticationProvider.issuer, 'owner');
assert.equal(serviceBusService.authenticationProvider.accessKey, expectedKey); assert.equal(serviceBusService.authenticationProvider.accessKey, expectedKey);
assert.equal(serviceBusService.authenticationProvider.acsHost, 'https://' + process.env[ServiceClient.EnvironmentVariables.AZURE_SERVICEBUS_NAMESPACE] + '-sb.accesscontrol.windows.net:443'); assert.equal(serviceBusService.authenticationProvider.acsHost, 'https://' + process.env[ServiceClient.EnvironmentVariables.AZURE_SERVICEBUS_NAMESPACE] + '-sb.accesscontrol.windows.net:443');
Expand Down

0 comments on commit 4090ee1

Please sign in to comment.