|
|
|
@ -40,6 +40,10 @@ |
|
|
|
|
#import "GRPCCompletionQueue.h" |
|
|
|
|
#import "NSDictionary+GRPC.h" |
|
|
|
|
|
|
|
|
|
// TODO(jcanizales): Generate the version in a standalone header, from templates. Like |
|
|
|
|
// templates/src/core/surface/version.c.template . |
|
|
|
|
#define GRPC_OBJC_VERSION_STRING @"0.13.0" |
|
|
|
|
|
|
|
|
|
@interface GRPCHost () |
|
|
|
|
// TODO(mlumish): Investigate whether caching channels with strong links is a good idea. |
|
|
|
|
@property(nonatomic, strong) GRPCChannel *channel; |
|
|
|
@ -109,9 +113,14 @@ |
|
|
|
|
|
|
|
|
|
if (!_channel) { |
|
|
|
|
NSMutableDictionary *args = [NSMutableDictionary dictionary]; |
|
|
|
|
|
|
|
|
|
// TODO(jcanizales): Add OS and device information (see |
|
|
|
|
// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#user-agents ). |
|
|
|
|
NSString *userAgent = @"grpc-objc/" GRPC_OBJC_VERSION_STRING; |
|
|
|
|
if (_userAgentPrefix) { |
|
|
|
|
args[@GRPC_ARG_PRIMARY_USER_AGENT_STRING] = _userAgentPrefix; |
|
|
|
|
userAgent = [@[_userAgentPrefix, userAgent] componentsJoinedByString:@" "]; |
|
|
|
|
} |
|
|
|
|
args[@GRPC_ARG_PRIMARY_USER_AGENT_STRING] = userAgent; |
|
|
|
|
|
|
|
|
|
if (_secure) { |
|
|
|
|
if (_hostNameOverride) { |
|
|
|
|