CSharp-Cloudfiles ignores Cloudversion for unspecified AccountName

While building a demo app on Internap’s XIPCloud, I saw unexpected URLs sent by the CSharp-Cloudfiles library.  I changed the code to pass “v1.0” via the Cloudversion argument of UserCredential’s constructor (which is a questionable location in the first place).  Fiddler showed that the URL didn’t change at all.  Regardless of passing is a valid value (e.g., “v1.0”) for the Cloudversion argument or just an empty string, the resulting header always looks like:

GET https://auth.storage.santa-clara.internapcloudl.net/ HTTP/1.1

Why isn’t the Cloudversion appended?  By grokking thru com.mosso.cloudfiles.domain.request.GetAuthentication I found this code:

var uri = string.IsNullOrEmpty(_userCredentials.AccountName) ? _userCredentials.AuthUrl : new Uri(_userCredentials.AuthUrl + “/”
+ _userCredentials.Cloudversion.Encode() + “/”      + _userCredentials.AccountName.Encode() + “/auth”);

This code only includes the provided Cloudversion value when a valid AccountName has also been provided. These values seem orthogonal to me; the resulting URL should include the Cloudversion appropriately when is is provided. Since there don’t seem to be multiple cloud versions available, nor accounts available, it’s not currently a huge problem. But it’s going to bite someone eventually.

This site uses Akismet to reduce spam. Learn how your comment data is processed.