diff --git a/examples/objective-c/helloworld/main.m b/examples/objective-c/helloworld/main.m index f390b5a0f9b19aed0fd27d0aa2de3f7e4c7a1cff..b67380812b4dc6da2ef63ad4839ba1188731ddfe 100644 --- a/examples/objective-c/helloworld/main.m +++ b/examples/objective-c/helloworld/main.m @@ -43,7 +43,7 @@ static NSString * const kHostAddress = @"localhost:50051"; int main(int argc, char * argv[]) { @autoreleasepool { [GRPCCall useInsecureConnectionsForHost:kHostAddress]; - [GRPCCall usePrimaryUserAgent:@"HelloWorld/1.0" forHost:kHostAddress]; + [GRPCCall setUserAgentPrefix:@"HelloWorld/1.0"]; HLWGreeter *client = [[HLWGreeter alloc] initWithHost:kHostAddress]; diff --git a/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h b/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h index 11b2babbe72f302ecf9dd8da34a19246ac8debbd..045d31caf1aa77017c64030d7da4dcff9fe11eb7 100644 --- a/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h +++ b/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h @@ -33,20 +33,15 @@ #import "GRPCCall.h" /** - * Methods to configure GRPC channel options for specific hosts. + * Methods to configure GRPC channel options. */ @interface GRPCCall (ChannelArg) /** - * Use the provided @c primaryUserAgent at the beginning of the HTTP User Agent string for the - * provided @c host. + * Use the provided @c userAgentPrefix at the beginning of the HTTP User Agent string for all calls. */ -+ (void)usePrimaryUserAgent:(NSString *)primaryUserAgent forHost:(NSString *)host; ++ (void)setUserAgentPrefix:(NSString *)userAgentPrefix; -/** - * Use the provided @c secondaryUserAgent at the end of the HTTP User Agent string for the - * provided @c host. - */ -+ (void)useSecondaryUserAgent:(NSString *)secondaryUserAgent forHost:(NSString *)host; ++ (NSString *)useUserAgentPrefix; @end diff --git a/src/objective-c/GRPCClient/GRPCCall+ChannelArg.m b/src/objective-c/GRPCClient/GRPCCall+ChannelArg.m index 159e12c7e859d11c8d0d9686652544fee94d933f..a6a61188fa08fd0906c57699ae8a700ad6e46935 100644 --- a/src/objective-c/GRPCClient/GRPCCall+ChannelArg.m +++ b/src/objective-c/GRPCClient/GRPCCall+ChannelArg.m @@ -37,22 +37,18 @@ @implementation GRPCCall (ChannelArg) -+ (void)usePrimaryUserAgent:(NSString *)primaryUserAgent forHost:(NSString *)host { - if (!primaryUserAgent || !host) { - [NSException raise:NSInvalidArgumentException - format:@"primaryUserAgent and host must be provided."]; +static NSString *_userAgentPrefix; + ++ (void)setUserAgentPrefix:(NSString *)userAgentPrefix { + @synchronized(self) { + _userAgentPrefix = userAgentPrefix; } - GRPCHost *hostConfig = [GRPCHost hostWithAddress:host]; - hostConfig.primaryUserAgent = primaryUserAgent; } -+ (void)useSecondaryUserAgent:(NSString *)secondaryUserAgent forHost:(NSString *)host { - if (!secondaryUserAgent || !host) { - [NSException raise:NSInvalidArgumentException - format:@"secondaryUserAgent and host must be provided."]; ++ (NSString *)useUserAgentPrefix { + @synchronized(self) { + return _userAgentPrefix; } - GRPCHost *hostConfig = [GRPCHost hostWithAddress:host]; - hostConfig.secondaryUserAgent = secondaryUserAgent; } @end diff --git a/src/objective-c/GRPCClient/private/GRPCChannel.h b/src/objective-c/GRPCClient/private/GRPCChannel.h index 3e277b0f1a3ab3e346c291b7ffbf0a7c11118f67..01a6cfd2ec94a4a955f3c9611e6e68a0a47244cc 100644 --- a/src/objective-c/GRPCClient/private/GRPCChannel.h +++ b/src/objective-c/GRPCClient/private/GRPCChannel.h @@ -42,8 +42,8 @@ struct grpc_channel_credentials; * Each separate instance of this class represents at least one TCP connection to the provided host. */ @interface GRPCChannel : NSObject + @property(nonatomic, readonly, nonnull) struct grpc_channel *unmanagedChannel; -@property(nonatomic, readonly, getter=isSecure) BOOL secure; - (nullable instancetype)init NS_UNAVAILABLE; diff --git a/src/objective-c/GRPCClient/private/GRPCHost.h b/src/objective-c/GRPCClient/private/GRPCHost.h index 673ed9060ef5af6db12afc7f0b55c86dd1acdfa5..6b4f98746d0caa4382d89885ac6194029d151e60 100644 --- a/src/objective-c/GRPCClient/private/GRPCHost.h +++ b/src/objective-c/GRPCClient/private/GRPCHost.h @@ -39,8 +39,6 @@ struct grpc_call; @interface GRPCHost : NSObject @property(nonatomic, readonly) NSString *address; -@property(nonatomic, copy) NSString *primaryUserAgent; -@property(nonatomic, copy) NSString *secondaryUserAgent; /** 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 5a21df523f209198bdd6a8cf94d94d579987a6f6..9d5d1a16cbd347b29864b9062c4238a627e5c945 100644 --- a/src/objective-c/GRPCClient/private/GRPCHost.m +++ b/src/objective-c/GRPCClient/private/GRPCHost.m @@ -34,6 +34,7 @@ #import "GRPCHost.h" #include <grpc/grpc.h> +#import <GRPCClient/GRPCCall+ChannelArg.h> #import "GRPCChannel.h" #import "GRPCCompletionQueue.h" @@ -108,11 +109,9 @@ if (!_channel) { NSMutableDictionary *args = [NSMutableDictionary dictionary]; - if (_primaryUserAgent) { - args[@GRPC_ARG_PRIMARY_USER_AGENT_STRING] = _primaryUserAgent; - } - if (_secondaryUserAgent) { - args[@GRPC_ARG_SECONDARY_USER_AGENT_STRING] = _secondaryUserAgent; + NSString *userAgentPrefix = [[GRPCCall useUserAgentPrefix] copy]; + if (userAgentPrefix) { + args[@GRPC_ARG_PRIMARY_USER_AGENT_STRING] = userAgentPrefix; } if (_secure) {