// // MBIMHTTPUtilities.c // kordophoned // // Created by James Magahern on 11/16/18. // Copyright © 2018 James Magahern. All rights reserved. // #include "MBIMHTTPUtilities.h" static NSDateFormatter* _dateFormatterRFC822 = nil; static NSDateFormatter* _dateFormatterISO8601 = nil; static dispatch_queue_t _dateFormatterQueue = NULL; __attribute__((constructor)) static void __InitializeDateFormatter() { _dateFormatterQueue = dispatch_queue_create("dateFormatter", DISPATCH_QUEUE_SERIAL); _dateFormatterRFC822 = [[NSDateFormatter alloc] init]; _dateFormatterRFC822.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; _dateFormatterRFC822.dateFormat = @"EEE',' dd MMM yyyy HH':'mm':'ss 'GMT'"; _dateFormatterRFC822.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; _dateFormatterISO8601 = [[NSDateFormatter alloc] init]; _dateFormatterISO8601.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; _dateFormatterISO8601.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss'+00:00'"; _dateFormatterISO8601.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; } NSString* MBIMWebServerFormatRFC822(NSDate *date) { __block NSString *string = nil; dispatch_sync(_dateFormatterQueue, ^{ string = [_dateFormatterRFC822 stringFromDate:date]; }); return string; } NSString* MBIMWebServerFormatISO8601(NSDate *date) { __block NSString *string = nil; dispatch_sync(_dateFormatterQueue, ^{ string = [_dateFormatterISO8601 stringFromDate:date]; }); return string; }