From 20b79e702db4cb811c67a1d9d199c0a462927fc5 Mon Sep 17 00:00:00 2001 From: Kristopher Wuollett Date: Wed, 3 Feb 2016 21:38:44 -0500 Subject: Updated user agent to be a host-level setting --- src/objective-c/GRPCClient/GRPCCall+ChannelArg.h | 7 +++---- src/objective-c/GRPCClient/GRPCCall+ChannelArg.m | 15 ++++++--------- src/objective-c/GRPCClient/private/GRPCHost.h | 1 + src/objective-c/GRPCClient/private/GRPCHost.m | 5 ++--- 4 files changed, 12 insertions(+), 16 deletions(-) (limited to 'src/objective-c') diff --git a/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h b/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h index ec1557df7f..bd6b064f16 100644 --- a/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h +++ b/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h @@ -38,10 +38,9 @@ @interface GRPCCall (ChannelArg) /** - * Use the provided @c userAgentPrefix at the beginning of the HTTP User Agent string for all calls. + * Use the provided @c userAgentPrefix at the beginning of the HTTP User Agent string for all calls + * to the specified @c host. */ -+ (void)setUserAgentPrefix:(NSString *)userAgentPrefix; - -+ (NSString *)userAgentPrefix; ++ (void)setUserAgentPrefix:(NSString *)userAgentPrefix forHost:(NSString *)host; @end diff --git a/src/objective-c/GRPCClient/GRPCCall+ChannelArg.m b/src/objective-c/GRPCClient/GRPCCall+ChannelArg.m index 32244c3d31..f2821f6abc 100644 --- a/src/objective-c/GRPCClient/GRPCCall+ChannelArg.m +++ b/src/objective-c/GRPCClient/GRPCCall+ChannelArg.m @@ -39,16 +39,13 @@ static NSString *_userAgentPrefix; -+ (void)setUserAgentPrefix:(NSString *)userAgentPrefix { - @synchronized(self) { - _userAgentPrefix = userAgentPrefix; - } -} - -+ (NSString *)userAgentPrefix { - @synchronized(self) { - return _userAgentPrefix; ++ (void)setUserAgentPrefix:(NSString *)userAgentPrefix forHost:(NSString *)host { + if (!host) { + [NSException raise:NSInvalidArgumentException + format:@"host and userAgentPrefix must be provided."]; } + GRPCHost *hostConfig = [GRPCHost hostWithAddress:host]; + hostConfig.userAgentPrefix = userAgentPrefix; } @end diff --git a/src/objective-c/GRPCClient/private/GRPCHost.h b/src/objective-c/GRPCClient/private/GRPCHost.h index 6b4f98746d..69a115e88c 100644 --- a/src/objective-c/GRPCClient/private/GRPCHost.h +++ b/src/objective-c/GRPCClient/private/GRPCHost.h @@ -39,6 +39,7 @@ struct grpc_call; @interface GRPCHost : NSObject @property(nonatomic, readonly) NSString *address; +@property(nonatomic, copy) NSString *userAgentPrefix; /** The following properties should only be modified for testing: */ diff --git a/src/objective-c/GRPCClient/private/GRPCHost.m b/src/objective-c/GRPCClient/private/GRPCHost.m index 8fb9d91722..5b1ca16e12 100644 --- a/src/objective-c/GRPCClient/private/GRPCHost.m +++ b/src/objective-c/GRPCClient/private/GRPCHost.m @@ -109,9 +109,8 @@ if (!_channel) { NSMutableDictionary *args = [NSMutableDictionary dictionary]; - NSString *userAgentPrefix = [[GRPCCall userAgentPrefix] copy]; - if (userAgentPrefix) { - args[@GRPC_ARG_PRIMARY_USER_AGENT_STRING] = userAgentPrefix; + if (_userAgentPrefix) { + args[@GRPC_ARG_PRIMARY_USER_AGENT_STRING] = _userAgentPrefix; } if (_secure) { -- cgit v1.2.3