Add OS and program version to s/w update URL

The server previously grabbed this from the user agent string but this is more fragile and doesn’t work with caching.
This commit is contained in:
Allan Odgaard
2013-06-23 12:32:09 +07:00
parent 6ec5bf2697
commit eae48c1a66

View File

@@ -25,6 +25,7 @@
#import <network/tbz.h>
#import <ns/ns.h>
#import <oak/debug.h>
#import <oak/compat.h>
#import <oak/oak.h>
#import <scm/scm.h>
#import <text/types.h>
@@ -249,12 +250,13 @@ BOOL HasDocumentWindow (NSArray* windows)
[self newDocument:self];
SoftwareUpdate* swUpdate = [SoftwareUpdate sharedInstance];
NSString* parms = [NSString stringWithFormat:@"v=%@&os=%zu.%zu.%zu", [[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], oak::os_major(), oak::os_minor(), oak::os_patch()];
[swUpdate setSignee:key_chain_t::key_t("org.textmate.duff", "Allan Odgaard", "-----BEGIN PUBLIC KEY-----\nMIIBtjCCASsGByqGSM44BAEwggEeAoGBAPIE9PpXPK3y2eBDJ0dnR/D8xR1TiT9m\n8DnPXYqkxwlqmjSShmJEmxYycnbliv2JpojYF4ikBUPJPuerlZfOvUBC99ERAgz7\nN1HYHfzFIxVo1oTKWurFJ1OOOsfg8AQDBDHnKpS1VnwVoDuvO05gK8jjQs9E5LcH\ne/opThzSrI7/AhUAy02E9H7EOwRyRNLofdtPxpa10o0CgYBKDfcBscidAoH4pkHR\nIOEGTCYl3G2Pd1yrblCp0nCCUEBCnvmrWVSXUTVa2/AyOZUTN9uZSC/Kq9XYgqwj\nhgzqa8h/a8yD+ao4q8WovwGeb6Iso3WlPl8waz6EAPR/nlUTnJ4jzr9t6iSH9owS\nvAmWrgeboia0CI2AH++liCDvigOBhAACgYAFWO66xFvmF2tVIB+4E7CwhrSi2uIk\ndeBrpmNcZZ+AVFy1RXJelNe/cZ1aXBYskn/57xigklpkfHR6DGqpEbm6KC/47Jfy\ny5GEx+F/eBWEePi90XnLinytjmXRmS2FNqX6D15XNG1xJfjociA8bzC7s4gfeTUd\nlpQkBq2z71yitA==\n-----END PUBLIC KEY-----\n")];
[swUpdate setChannels:[NSDictionary dictionaryWithObjectsAndKeys:
[NSURL URLWithString:REST_API @"/releases/release"], kSoftwareUpdateChannelRelease,
[NSURL URLWithString:REST_API @"/releases/beta"], kSoftwareUpdateChannelBeta,
[NSURL URLWithString:REST_API @"/releases/nightly"], kSoftwareUpdateChannelNightly,
nil]];
[swUpdate setChannels:@{
kSoftwareUpdateChannelRelease : [NSURL URLWithString:[NSString stringWithFormat:REST_API @"/releases/release?%@", parms]],
kSoftwareUpdateChannelBeta : [NSURL URLWithString:[NSString stringWithFormat:REST_API @"/releases/beta?%@", parms]],
kSoftwareUpdateChannelNightly : [NSURL URLWithString:[NSString stringWithFormat:REST_API @"/releases/nightly?%@", parms]],
}];
[self userDefaultsDidChange:nil]; // setup mate/rmate server
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userDefaultsDidChange:) name:NSUserDefaultsDidChangeNotification object:[NSUserDefaults standardUserDefaults]];